我有一个TextField
的模型,用户可以使用HTML填充。现在我希望Django呈现动态的内容和#34;,这样当使用<h>
标签时,django会自动将其添加到列表中。如果嵌套列表也可以加分。
我已经考虑过使用包含标签,但我不确定具体细节。任何帮助将非常感激。
答案 0 :(得分:0)
我从来没有这样做过......但这就是我开始的方式。
首先要做的事情 - 让用户添加HTML。可能安装tinyMCE,使用tinyMCE的HTML字段。用户可以使用tinyMCE的WYSIWUG复制和粘贴HTML或添加HTML内容。
你可能在想 - 我会写一些正则表达式来找到相关的h1-6标签。问题在于parsing html with regex is a nightmare,不应该使用regex。
接下来您可能需要render the html。可能quite a few ways要做到这一点。
然后浏览渲染的html并拉出所有h1-6标签或者你想要的任何东西。
您可能想要编辑html并将TOC添加到列表顶部 - 或者将其保存为单独的html片段,您可以在渲染时将其插入到主html文档中。
如果生成TOC听起来像是太多的工作......它可能是。我相信您可以找到自动提取h1标头并链接到内容的解决方案。这是jquery plugin就是这样做的。有点谷歌搜索可以在这里找到生成TOC的最简单的方法可能是有序的 - 似乎这是很常见的事情。