django-markupmirror 0.1c1
Django field and widget for editing markup content (PlainText, HTML,Markdown, reStructuredText, Textile) using the CodeMirror editor withlive preview.
License: BSD License
Keywords: django markup field widget codemirror

**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

.. _CodeMirror: http://codemirror.net/
.. _James Turk's: https://github.com/jamesturk
.. _django-markupfield: https://github.com/jamesturk/django-markupfield
.. _FeinCMS: http://www.feinheit.ch/media/labs/feincms/


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.

.. _pip: http://www.pip-installer.org/
.. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall
.. _Django: http://www.djangoproject.com/
.. _FeinCMS: http://www.feinheit.ch/media/labs/feincms/
.. _Markdown: http://daringfireball.net/projects/markdown/
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
.. _Textile: http://www.textism.com/tools/textile/


Changelog
=========

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.