MarkWiki developer documentation

A simple wiki using Markdown

This documentation is for developer details of MarkWiki. The user documentation is available at pythonhosted.org.

Contributing

MarkWiki should be easy to contribute to. If anything is unclear about how to contribute, please submit an issue on GitHub so that we can fix it!

How

Fork MarkWiki on GitHub and submit a pull request when you’re ready.

Guidelines

  1. Your code should follow PEP 8 style. Please run it through pep8 to check.
  2. Please try to conform with any other conventions seen in the code for consistency (e.g., using ''' for docstrings instead of """).
  3. Docstrings and comments should be grammatical English sentences, including punctuation.
  4. Import order should follow PEP 8 style and be alphabetized within each group.
  5. Make sure your change works against master! (Bonus points for unit tests.)

Dependencies

This page documents information about the dependencies used in MarkWiki.

setup.py

MarkWiki includes some setup_requires dependencies. These are needed to execute the test suite via python setup.py nosetests.

The dependencies included in install_requires are the logical dependencies that MarkWiki requires. This list captures what is needed to run MarkWiki, but not which specific versions.

requirements.txt

The list of dependencies in requirements.txt are the actual versions that MarkWiki was tested with. This list captures extra information about dependencies of dependencies as well.

Rationale

Each dependency serves a certain purpose. The following describes why each tool in setup.py was selected.

  • argparse - Used to provide the argument parsing module for any installation of MarkWiki using Python 2.6.
  • Flask - MarkWiki is a web application built on top of the Flask web application framework. Flask is core to the operation of MarkWiki.
  • Flask-Login - This Flask extension creates the capability to handle logged in users.
  • Flask-WTF - This Flask extension is used for creating HTML forms via WTForms.
  • Frozen-Flask - The ability to generate a static version of a MarkWiki comes from this Flask extension.
  • Markdown - All Markdown pages are transformed into HTML from this dependency.
  • Pygments - Code syntax highlighting is provided by Pygments.
  • Whoosh - This is the search tool used by MarkWiki.

Releases

Version 1.6, Released February 7, 2016

  • Integrate with Git to provide version history for wiki pages.
  • Add the option to re-index the search engine from the command line or the administrator interface.

Version 1.5, Released May 8, 2015

  • Update Bootstrap to 3.3.4.
  • Remove rendering artifact that appeared in Chrome.

Version 1.4, Released April 16, 2015

  • Officially support Python 2.6, 2.7, 3.3, and 3.4.
  • Integrate Mozilla Persona for user authentication.

Version 1.3, Released December 2013

  • Users can search MarkWiki to find wiki pages related to their search.
  • MarkWiki allows self-registration for new users instead of admin only registration.

Version 1.2, Released November 2013

  • MarkWiki has login support. Users can register and log in to make updates.
  • The user interface was updated significantly.
  • MarkWiki is now more mobile friendly.
  • Theme designers and other brave souls can completely customize the user interface.

Version 1.1, Released June 2013

  • Users can explore the entire wiki via breadcrumbs and section pages.
  • Added the ability to freeze a wiki
  • Included the table of contents feature

Version 1.0, Released May 2013

  • Initial release of MarkWiki
  • Support for basic wiki page editing and code highlighting.