django-markupmirror Documentation

django-markupmirror is a custom field and widget for editing markup text in Django. It utilizes the CodeMirror JS editor for a richer editing experience.

It uses parts of James Turk’s django-markupfield and adds a nicer widget with live-preview and an extension content-type for FeinCMS.

Documentation
on Read the Docs: http://django-markupmirror.readthedocs.org/
Code and issues
on bitbucket: https://bitbucket.org/fabianbuechler/django-markupmirror
Releases
on PyPi: http://pypi.python.org/pypi/django-markupmirror

Note

django-markupmirror is currently tested with Django 1.4 on Python 2.6 and 2.7 only, but with almost complete test coverage.

Quickstart

  • To install django-markupmirror, use pip and add 'markupmirror' to the INSTALLED_APPS in your Django project.

  • 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)),
    )
    
  • Add one or more markupmirror.fields.MarkupMirrorField s to your models and define markup_type or default_markup_type:

    class ModelWithMarkup(models.Model):
        content = MarkupMirrorField(
            verbose_name="content", markup_type='markdown')
    
  • If you want the FeinCMS content-type model MarkupMirrorContent, you’ll also need to add 'markupmirror.feincms' to your INSTALLED_APPS.

    Also, you need to register the content-type model with FeinCMS’ Page module:

    from feincms.module.page.models import Page
    from markupmirror.feincms.models import MarkupMirrorContent
    
    Page.create_content_type(MarkupMirrorContent)
    

By default, django-markupmirror comes with markup converters for plain text (converts links and linebreaks) and HTML (does nothing). Converters for Markdown, reStructuredText and Textile are also available, but require 3rd-party libraries to be installed. However, you can register your own markup converters.