Django文本格式化,标记?Markdown?
我很想用Django来为自己创建一个小旅行博客。我选择Django而不是Wordpress有几个原因。首先,我想掌控所有细节,最终做出一个看起来不像Wordpress博客的东西;其次,我想为我去的每个地方都创建一个博客,而Wordpress并不直接支持这种需求。
问题是,当我在国外的时候,我希望能写博客时,至少能自动为我生成段落标签,并处理很多小的HTML格式问题,这些是Wordpress会帮你做的。我想知道像这样的常见工作流程是什么?我不想要像TinyMCE那样复杂的东西,但也希望能比每次都手动输入每个HTML标签要简单一些。
谢谢你的帮助。
4 个回答
我想到两种方法,第一种是在你的模板中某些部分关闭自动转义。
第二种是使用 django.contrib.markup
,这个工具提供了对 Textile、Markdown 和 reStructured Text 的过滤器。使用这些,你需要分别安装 PyTextile、Python-markdown 或 doc-utils。
编辑
刚刚注意到 django.contrib.markup
在 Django 1.5 中已经不再推荐使用了,主要是因为与第三方库有关的安全问题。不过,如果你信任输入(也就是说,你信任所有用户),你可以从 Django 1.4 中复制 django.contrib.markup
。
如果你不想使用任何富文本编辑器,我个人推荐使用reStructuredText配合Sphinx:http://sphinx-doc.org/
这是一种非常完整的标记语言,扩展功能可以支持几乎所有的需求。整个Python的文档都是用reStructuredText写的,现在通过Sphinx生成的输出是HTML格式。
一个类似的项目示例是:http://tinkerer.me/
有很多选择可以考虑。Markdown(http://code.google.com/p/python-markdown2/)是一个很明显的选择。
不过你也可以看看https://github.com/syrusakbary/pyjade,它提供了一个更简单的结构。我觉得Markdown更宽容一些,使用起来也更简单。