Django中的自定义标记
有没有人能给我一些建议,或者推荐一些资料,教我怎么在Django中使用textile或Markdown创建自定义标记?(或者我想错了?)
举个例子:我想把下面这些标记转换成其他格式(外面的括号表示它们是一组标签):
[
[联系人]
* 联系人 #1
* 联系人 #2
* 联系人 #3
[好友请求]
* 何塞
]
我希望把它们转换成:
<div class="tabs">
<ul>
<li class="tab">Contacts</li>
<li>Contact #1</li>
(etc.. etc..)
</ul>
</div>
或者说,使用正则表达式更适合我的需求吗?
4 个回答
1
Django自带了一个功能模块,这个模块可以用来处理不同的标记语言,比如textile和markdown,帮助你更好地展示数据。
想了解更多信息,可以查看相关文档。
3
内置的markup应用使用了一种叫做过滤器的模板标签,可以用来处理文本格式,比如 textile、markdown 和 restructuredtext。如果你想要的不是这些,还有另一个选择,就是使用一个叫做 'markup' 的字段。例如:
class TownHallUpdate(models.Model):
content = models.TextField()
content_html = models.TextField(editable=False)
def save(self, **kwargs):
self.content_html = textile.textile(sanitize_html(self.content))
super(TownHallUpdate, self).save(**kwargs)
这是来自 James Tauber 和 Brian Rosner 的django patterns 演讲中的例子。
0
看起来最好的办法还是使用正则表达式,自己创建一个过滤器。
这里有一些对我有帮助的链接:
http://showmedo.com/videos/video?name=1100010&fromSeriesID=110
http://www.smashingmagazine.com/2009/05/06/introduction-to-advanced-regular-expressions/
希望这能帮助到和我有相同问题的人!