一个提供模板标签以使用Markdown(使用python-markdown2处理器)的Django应用程序
项目描述
一个小的Django应用程序,提供模板标签以使用Markdown,使用python-markdown2库。
名字中的“deux”是什么意思?
这个项目的明显名字应该是django-markdown2
。然而,已经有了一个同名项目,名字混淆对任何人都没有帮助。此外,我在学校里学习了12年的法语沉浸式课程:不妨派上用场。
那么为什么还要创建另一个项目呢?
因为我想做点稍微不同的事情。Django-markdown2的markdown
过滤器将"extras"作为参数 -- 唯一的例外是将"safe"转换为python-markdown2的safe_mode
参数。这对于快速使用来说很方便。我的用例更常见:在Django模板中使用大量markdown
过滤器和块,并使用相同的python-markdown2选项集。
安装
选择以下最适合您的一个
-
从PyPI安装最新版本
pip install django-markdown-deux
或者,如果您使用ActivePython
pypm install django-markdown-deux
这些应该会安装依赖的
python-markdown2
包。 -
获取源码树的git克隆版本
git clone git://github.com/trentm/django-markdown-deux.git
您可能需要一个特定的标签
cd django-markdown-deux git tag -l # list available tags git checkout $tagname
然后您需要在您的PYTHONPATH上创建“lib”子目录
python setup.py install # or 'export PYTHONPATH=`pwd`/lib:$PYTHONPATH'
git clone git@github.com:trentm/python-markdown2.git cd python-markdown2 python setup.py install # or 'export PYTHONPATH=`pwd`/python-markdown2/lib'
Django项目设置
-
将
markdown_deux
添加到项目"settings.py"中的INSTALLED_APPS
。 -
可选地设置一些
MARKDOWN_DEUX_*
设置。请参阅下文的"设置"部分。
用法
markdown_deux
功能通常有一个可选的"style"参数。这是对python-markdown2
处理器的选项集的名称。如果未提供参数,将使用"默认"样式。有关更多信息,请参阅下文的MARKDOWN_DEUX_STYLES
设置。
markdown
模板过滤器
{% load markdown_deux_tags %}
...
{{ myvar|markdown:"STYLE" }} {# convert `myvar` to HTML using the "STYLE" style #}
{{ myvar|markdown }} {# same as `{{ myvar|markdown:"default"}}` #}
markdown
模板块标签
{% load markdown_deux_tags %}
...
{% markdown STYLE %} {# can omit "STYLE" to use the "default" style #}
This is some **cool**
[Markdown](http://daringfireball.net/projects/markdown/)
text here.
{% endmarkdown %}
markdown_allowed
模板标签
在模板中
{% markdown_allowed %}
将输出一个简短的HTML文本,表示Markdown语法允许。这对于放置在接受Markdown语法的表单元素下方很有用。您还可以将其用作类似表单字段的help_text
,如下所示
# myapp/forms.py
from markdown_deux.templatetags.markdown_deux_tags import markdown_allowed
class MyForm(forms.Form):
#...
description = forms.CharField(
label="Description (required)",
widget=forms.Textarea(attrs={"rows": 5}),
help_text=_secondary_span("A brief description of your thing.<br/> "
+ markdown_allowed()),
required=True)
markdown_cheatsheet
标签
{% markdown_cheatsheet %}
输出HTML,列出了Markdown的一些更常见功能。
在您的Python代码中使用markdown_deux.markdown(TEXT, STYLE)
上面的markdown
过滤器和块标签最终使用这个markdown_deux.markdown(...)
函数。您可能会发现,在Python代码中(例如在视图中,在模型的.save()
方法中)进行Markdown处理很有用。
设置
此应用程序的所有设置都是可选的。
MARKDOWN_DEUX_STYLES
设置
将样式名称映射到python-markdown2的markdown2.markdown(text, **kwargs)
的关键字参数字典。例如,默认设置实际上相当于
MARKDOWN_DEUX_STYLES = {
"default": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
},
}
即仅定义了"默认"样式,它仅使用code-friendly extra并转义给定的Markdown中的原始HTML(为了安全起见)。
以下是如何添加自己的样式并保留默认样式的方法
# settings.py
from markdown_deux.conf.settings import MARKDOWN_DEUX_DEFAULT_STYLE
MARKDOWN_DEUX_STYLES = {
"default": MARKDOWN_DEUX_DEFAULT_STYLE,
"trusted": {
"extras": {
"code-friendly": None,
},
# Allow raw HTML (WARNING: don't use this for user-generated
# Markdown for your site!).
"safe_mode": False,
},
# Here is what http://code.activestate.com/recipes/ currently uses.
"recipe": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
"link_patterns": [
# Transform "Recipe 123" in a link.
(re.compile(r"recipe\s+#?(\d+)\b", re.I),
r"http://code.activestate.com/recipes/\1/"),
],
"extras": {
"code-friendly": None,
"pyshell": None,
"demote-headers": 3,
"link-patterns": None,
# `class` attribute put on `pre` tags to enable using
# <http://code.google.com/p/google-code-prettify/> for syntax
# highlighting.
"html-classes": {"pre": "prettyprint"},
"cuddled-lists": None,
"footnotes": None,
"header-ids": None,
},
"safe_mode": "escape",
}
}
MARKDOWN_DEUX_HELP_URL
设置
指向完整Markdown语法的默认URL的链接。此链接仅出现在markdown_allowed
和markdown_cheatsheet
模板标签的输出中。
默认值为http://daringfireball.net/projects/markdown/syntax,这是Markdown语法的官方参考。然而,如果您的网站使用具有特定调整的Markdown,您可能更喜欢使用自己的覆盖。例如,ActiveState Code使用
MARKDOWN_DEUX_HELP_URL = "/help/markdown/"
项目详情
django-markdown-deux-1.0.6.zip 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1f7b4da6b4dd1a9a84e3da90887d356f8afdd9a1e7d6468c081b8ac50a7980b1 |
|
MD5 | f9f0bbcf420902b95489a9b0860d9988 |
|
BLAKE2b-256 | 26af3ed785b661e4545709ba1618926bb33bd585d1fd2faa42a548756743e874 |