Installation

  • To install django-markupmirror, use pip (or easy_install or simply python setup.py install from source) and add 'markupmirror' to the INSTALLED_APPS in your Django project.

    $ pip install django-markupmirror
    
    INSTALLED_APPS = (
        ...
        'markupmirror',
        ...
    )
  • In your settings.py specify at least MARKUPMIRROR_DEFAULT_MARKUP_TYPE which is 'plaintext' by default.

  • For the markup HTML-preview, you’ll need to add markupmirror’s URLs in your URLconf. In your urls.py add:

    import markupmirror.urls
    
    urlpatterns = patterns('',
        (r'^markupmirror/', include(markupmirror.urls.preview)),
    )
    

Requirements

django-markupmirror depends on:

  • Django 1.4+ (for now tested with 1.4 only), obviously.
  • FeinCMS 1.5+ (for now tested with 1.5.3 and 1.6.2 only), if you want to use the page content-type.
  • Markdown 2.1+, if you want to use the MarkdownMarkup converter.
  • Docutils 0.8+, if you want to use the ReStructuredTextMarkup converter.
  • Textile 2.1+, if you want to use the TextileMarkup converter.

The three latter will be available automatically if the respective dependencies are met.

Settings & Configuration

Use the configuration variables below in your settings.py to customize the behaviour of django-markupmirror:

markupmirror.settings.MARKUPMIRROR_DEFAULT_MARKUP_TYPE

Defines any of the default markup-types as default for fields where no markup_type or default_markup_type has been set explicitly.

Defaults to plaintext.

markupmirror.settings.MARKUPMIRROR_IGNORE_DEFAULT_TYPES

Whether to ignore the default markup types before they are registered

markupmirror.settings.MARKUPMIRROR_MARKUP_TYPES

Dictionary of key to markup type.

Where markup type is either an subclass of BaseMarkup or a dot seperated import path to a subclass of BaseMarkup.

These will be merged on top of the default markup types.

Defaults to:

MARKUPMIRROR_MARKUP_TYPES = {
    'html': 'markupmirror.markup.HtmlMarkup',
    'plain': 'markupmirror.markup.PlainTextMarkup',
    'textile': 'markupmirror.markup.TextileMarkup',
    'markdown': 'markupmirror.markup.MarkdownMarkup',
    'restructuredText': 'markupmirror.markup.ReStructuredTextMarkup',
}
markupmirror.settings.MARKUPMIRROR_MARKDOWN_EXTENSIONS

Defines the extensions to load for Markdown. Markdown’s package documentation contains a list of available extensions.

Defaults to ['extra', 'headerid(level=2)'].

markupmirror.settings.MARKUPMIRROR_MARKDOWN_OUTPUT_FORMAT

Defines the output format for Markdown. One of HTML4, XHTML and HTML5.

Defaults to HTML5.

markupmirror.settings.MARKUPMIRROR_TEXTILE_SETTINGS

Dictionary of arguments passed directly to the Textile converter defined in textile.functions.textile.

The converter’s default function signature is: head_offset=0, html_type='xhtml', auto_link=False, encoding=None, output=None.

Defaults to:

MARKUPMIRROR_TEXTILE_SETTINGS = {
    'encoding': 'utf-8',
    'output': 'utf-8'
}
markupmirror.settings.MARKUPMIRROR_CODEMIRROR_SETTINGS

Basic settings passed to all CodeMirror editor instances for initialization. Check the CodeMirror documentation on configuration settings for details.

Defaults to:

MARKUPMIRROR_CODEMIRROR_SETTINGS = {
    'indentUnit': 4,
    'lineNumbers': True,
    'lineWrapping': True,
    'path': settings.STATIC_URL + 'markupmirror/',
}