从 wagtail 的富文本字段中删除 <p> 标签
Remove <p> tag from wagtail's richtext field
当您在 Wagtail Admin 的 Wagtail 富文本编辑器中输入没有任何样式(例如粗体、ul、斜体)的文本时,该文本(发布后)显示 'coated' 或嵌入 <p>
标签。文本也保存在数据库中,文本内容周围带有 <p>
标签。
但是我想在没有 <p>
标签的情况下访问文本。请问我该怎么做?从我所做的研究来看,很明显 wagtail 已将其设为默认行为 [并且出于明显的一般用例原因],但是,如果也可以在没有边界的情况下访问文本,那就太好了 <p>
标签。
我想访问模板中的内容,以便从前端查看。拥有 <p>
标签对我的 CSS 有很大的伤害,而反对 wagtail 的默认设计就像在黑暗中打猎
我试过 StreamFields
和 StructBlocks
。内容仍然有 <p>
标签。似乎没有办法摆脱 <p>
标签并访问所需的信息。
谢谢,希望得到好评。
如果您不是特别需要富文本功能,那么使用 RAWHtmlBlock
可能更合适。例如:
body = StreamField([
('raw', RawHTMLBlock()),
])
将输出:
<div class="block-raw">Your unmodified content</div>
如果您只需要删除 <p>
而保留其他标记,您可以考虑注册一个 RewriteHandler
来去除 <p>
标签以进行渲染。看
Rich text internals
另一种粗略的方法是定义一个自定义块模板,在呈现 {{ value }} 之前去除 <p>
s。
# models.py
body = StreamField([
('bare', RichTextBlock(template='blocks/bare.html'))
])
# templates/blocks/bare.html
<script>
/* Do something with {{ value }} */
document.write(new_value);
</script>
当您在 Wagtail Admin 的 Wagtail 富文本编辑器中输入没有任何样式(例如粗体、ul、斜体)的文本时,该文本(发布后)显示 'coated' 或嵌入 <p>
标签。文本也保存在数据库中,文本内容周围带有 <p>
标签。
但是我想在没有 <p>
标签的情况下访问文本。请问我该怎么做?从我所做的研究来看,很明显 wagtail 已将其设为默认行为 [并且出于明显的一般用例原因],但是,如果也可以在没有边界的情况下访问文本,那就太好了 <p>
标签。
我想访问模板中的内容,以便从前端查看。拥有 <p>
标签对我的 CSS 有很大的伤害,而反对 wagtail 的默认设计就像在黑暗中打猎
我试过 StreamFields
和 StructBlocks
。内容仍然有 <p>
标签。似乎没有办法摆脱 <p>
标签并访问所需的信息。
谢谢,希望得到好评。
如果您不是特别需要富文本功能,那么使用 RAWHtmlBlock
可能更合适。例如:
body = StreamField([
('raw', RawHTMLBlock()),
])
将输出:
<div class="block-raw">Your unmodified content</div>
如果您只需要删除 <p>
而保留其他标记,您可以考虑注册一个 RewriteHandler
来去除 <p>
标签以进行渲染。看
Rich text internals
另一种粗略的方法是定义一个自定义块模板,在呈现 {{ value }} 之前去除 <p>
s。
# models.py
body = StreamField([
('bare', RichTextBlock(template='blocks/bare.html'))
])
# templates/blocks/bare.html
<script>
/* Do something with {{ value }} */
document.write(new_value);
</script>