An extension to django.contrib.flatpages to provide
- Better support for markdown and other similar markup formats. We provide support for Markdown but you can write your own parser to support rst or creole.
- Optional support for the excellent markItUp jquery editor. This requires the installation
django-markitup
. - Easy inclusion of images in flatpages. Viewing Admin image thumbnails requires the installation of
sorl-thumbnail
. - The inclusion of HTML metatags such as keywords and descriptions in flatpages.
- Content revisions.
Migrating you data to flapages_x should not be difficult since the data which currently in the contrib.Flatpage model (content, titles) is not affected. Your templates will still utilize the {{flatpage.content}} and {{flatpage.body}} context variables. Once you install flatpages_x, the Markdown is actually stored in the related Revisions model. When you save a flatpage, this will be rendered as html via the markdown parser and saved to the Flatpage.content field
Create a virtual environment for your project and activate it:
$ virtualenv mysite-env $ source mysite-env/bin/activate (mysite-env)$
Next install flatpages_x
(mysite-env)$ pip install django-flatpages-x
Add flatpages_x
to your INSTALLED_APPS setting.
Inside your project run:
(mysite-env)$ python manage.py syncdb
Django-flatpages-x comes with support for Markdown You can also associate and display images with your flatpages. To include your images in your content using reference-style image syntax looks like this
![Atl text][image.pk]
Where [image.pk] is the primary key of image the that you want to include. The primary key of the image should is visible in the flatpages Admin form which will now contains an inline image form
If you want to use the excellent markItUp! editor widget. Install django-markItUp:
(mysite-env)$ pip install django-markitup
You need a few configuration steps
Add 'markitup' to your INSTALLED_APPS setting.
Add the following to settings:
MARKITUP_SET = 'markitup/sets/markdown' MARKITUP_SKIN = 'markitup/skins/markitup' MARKITUP_FILTER = ('markdown.markdown', {'safe_mode': True})
You need to use the AJAX-based preview for the admin widget:
url(r'^markitup/', include('markitup.urls'))
in your root URLconf.
If you want view admin image thumbnails install sorl-thumbnail:
(mysite-env)$ pip install sorl-thumbnail
Add
sorl.thumbnail
to yoursettings.INSTALLED_APPS
.Configure your
settings
If you are using the cached database key value store you need to sync the database:
python manage.py syncdb
Django-flatpages-x come with a simple parser that supports Markdown. However,
you can supply your own parser by setting the value for FLATPAGES_X_PARSER
to settings.py. So if you want to use a parser myparser_parser
simply add
the following to you settings
FLATPAGES_X_PARSER= ["flatpages_x.markdown_parser.parse", {}]
See the full documentation for more details.