Django-Markdown v. 0.9.7
Django markdown is django application that allows use markdown wysiwyg in flatpages, admin forms and other forms. Documentaton available at readthedocs or github.
Contents
Requirements
- django >= 2.0, <3.0
- markdown >= 2.6.11
Installation
Django markdown should be installed using pip:
pip install django-markdown-app
Version compatibility
Django version | django-markdown-app |
---|---|
2.0 - 2.2 | 0.9.7 |
2.0 - 2.1 | 0.9.6 |
1.8 or later | 0.9.3.1 |
prior to 1.8 | 0.8.5.1 |
Setup
Note
'django_markdown' require 'django.contrib.staticfiles' in INSTALLED_APPS
Add 'django_markdown' to INSTALLED_APPS
INSTALLED_APPS += ( 'django_markdown', )
Add django_markdown urls to base urls
path('markdown/', include( 'django_markdown.urls')),
Use django_markdown
Models:
from django_markdown.models import MarkdownField class MyModel(models.Model): content = MarkdownField()
Custom forms:
from django_markdown.fields import MarkdownFormField from django_markdown.widgets import MarkdownWidget class MyCustomForm(forms.Form): content = forms.CharField(widget=MarkdownWidget()) content2 = MarkdownFormField()
Custom admins:
from django_markdown.admin import MarkdownModelAdmin admin.site.register(MyModel, MarkdownModelAdmin)
Admin Overrides: (If you don't want to subclass package ModelAdmin's)
from django.contrib import admin class YourModelAdmin(admin.ModelAdmin): formfield_overrides = {MarkdownField: {'widget': AdminMarkdownWidget}}
Flatpages:
# in your project main urls from django_markdown import flatpages ... # Django admin admin.autodiscover() flatpages.register() urlpatterns += [ path(r'admin/', admin.site.urls), ]
Template tags:
<textarea name="test" id="new"></textarea> {% markdown_editor "#new" %} {% markdown_media %}
Settings
MARKDOWN_EDITOR_SETTINGS - holds the extra parameters set to be passed to textarea.markItUp()
MARKDOWN_EDITOR_SKIN - skin option, default value is markitup
Example: settings.py
MARKDOWN_EDITOR_SKIN = 'simple'
MARKDOWN_EXTENSIONS - optional list of extensions passed to Markdown.
Officially supported extensions could be found at https://python-markdown.github.io/extensions/#officially-supported-extensions
Example: settings.py
MARKDOWN_EXTENSIONS = ['extra']
MARKDOWN_EXTENSION_CONFIGS - configure extensions
MARKDOWN_PREVIEW_TEMPLATE - template for preview a markdown. By default django_markdown/preview.css
MARKDOWN_STYLE - path to preview styles. By default django_markdown/preview.css
MARKDOWN_SET_PATH - path to folder with sets. By default django_markdown/sets
MARKDOWN_SET_NAME - name for current set. By default markdown.
MARKDOWN_PROTECT_PREVIEW - protect preview url for staff only
Examples
Execute make run in sources directory. Open http://127.0.0.1:8000 in your browser. For admin access use 'root:root' credentials.
Changes
Make sure you've read the changes document if you are upgrading from previous version.
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/sv0/django-markdown-app/issues
Contributing
Development of django-markdown happens at github: https://github.com/sv0/django-markdown-app
All changes should include tests, pass flake8 and pass build on the TravisCI
Contributors
- klen (Kirill Klenov)
- yavorskiy (Sergii Iavorskyi)
- contributors (Other contributors)
License
Licensed under a GNU lesser general public license.
Copyright
Copyright (c) 2011 Kirill Klenov (horneds@gmail.com)
- Markitup:
- (c) 2008 Jay Salvat http://markitup.jaysalvat.com/