【发布时间】:2019-01-18 12:31:20
【问题描述】:
在我的网站上,用户可以使用纯文本和 html 混合创建帖子。我无法很好地呈现他们的帖子。
例如,他们可能会写:
This is the first line of the post.
<!-- whitespace 1 -->
<ul>
<li>List item 1.</li>
<!-- whitespace 2 -->
<li>List item 2.</li>
<li>List item 3.</li>
</ul>
<!-- whitespace 3 -->
This is the last line of the post.
我想渲染空白 1 和 3,而不是空白 2。我该怎么做?
我尝试过使用linebreaks 和spaceless 的组合,但无法正常工作。
谢谢
杰克
【问题讨论】:
-
不清楚你真正想要做什么,但你可以使用
regex。类似<!--\s\w+\s[13]\s--> -
为什么不希望空白 2 呈现?因为它在无序列表中?
-
我想强制列表全部显示相同,即在我的网站上均匀分布。
-
如果您在呈现某人的帖子时不使用
linebreaks过滤器,那么纯文本(已分离)会被捆绑在一起。所以你需要使用linebreaks。但是,如果您使用linebreaks并且您的帖子包含 html,则<br>标签会替换 html 标签之间的换行符,这将导致上例中的列表项之间出现难看的间隙。 -
您可以使用此模式获取列表标签
(?s)(?<=<[uo]l>).*(?=<\/[ou]l>)中的所有内容,然后使用另一个正则表达式模式<br>来查看其中是否存在任何
标签。如果他们拒绝输入。
标签: html django django-templates whitespace removing-whitespace