Skip to main content

Django field and widget for editing markup content (PlainText, HTML,Markdown, reStructuredText, Textile) using the CodeMirror editor withlive preview.

Project description

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.


on Read the Docs:

Code and issues

on bitbucket:


on PyPi:


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

  • In your 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 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 import Page
    from markupmirror.feincms.models import 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.


0.1c1 - 2012-08-25

  • A few documentation fixes. Thanks Paolo Dina.

0.1b2 - 2012-05-08

  • Fixed problem with initializing the editor in FeinCMS when adding new content blocks.

0.1b1 - 2012-05-08

  • Textarea to editor conversion and live preview now also works for standard models, in collapsed fieldsets, added inlines and when switching tabs in FeinCMS pages.

0.1a2 - 2012-05-03

  • Added jQuery plugin for CodeMirror initialization and preview updating. Thanks to Gustav Pursche!

  • Improved usage and installation docs.

0.1a1 - 2012-04-27

  • Initial release including MarkupMirrorField field, MarkupMirrorTextarea and AdminMarkupMirrorTextareaWidget widgets and providing FeinCMS integration with MarkupMirrorContent Page content-type. Supported markup types are plain text, HTML, Mardown, reStructuredText and Textile.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

django-markupmirror-0.2a1.tar.gz (189.2 kB view hashes)

Uploaded source

django-markupmirror-0.1c1.tar.gz (374.5 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page