Django中的自定义标记

1 投票
4 回答
1085 浏览
提问于 2025-04-15 11:57

有没有人能给我一些建议,或者推荐一些资料,教我怎么在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/

希望这能帮助到和我有相同问题的人!

撰写回答