**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.