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