我使用的是Twig的 markdown_to_html 滤镜,效果非常好。
然而,在某些用例中,我希望它生成HTML,但不包含段落标记。
例如,在此降价内容中:
Hello, this is **some Markdown**
我希望导出的HTML为:
Hello, this is <strong>some Markdown</strong>
但目前的结果是:
<p>Hello, this is <strong>some Markdown</strong></p>
我调查了过滤器的来源,并没有看到任何选项这样做。
有没有办法做到这一点,或者我应该创建自己的细枝过滤器?
如果可能的话,我宁愿避免使用striptags过滤器,因为我不想列出所有我允许使用的标签(除非有一个反向striptags,您可以在其中指定要删除的标签?)
2条答案
按热度按时间q3qa4bjr1#
看起来你正在使用
league/commonmark
,它有一个"Inlines Only" extension来实现这个目的!它将避免输出块级元素,如段落,标题等-只有像强调和链接这样的东西会被呈现为HTML。要使用它,请按如下方式构建Markdown转换器:
这将比使用正则表达式解析HTML更可靠。
(我是
league/commonmark
的维护者,很乐意回答您在评论中可能提出的任何后续问题)ehxuflar2#
我更新了我的过滤器,遵循Colin O'Dells answer。这样,它更健壮,并且它将允许在未来使用或创建更多的CommonMark扩展。
它在模板中的名称如下: