好的......我有一个项目,我正在使用Jekyll进行播客项目。我选择通过YAML Front Matter项目列出showotes中的主机:
hosts:
- Name A
- Name B
- Name C
使用这段代码
<li> <strong>Hosts:</strong>
<ul>
{% for host in page.hosts %}
<li>{{ host }}
{% endfor %}
</ul>
我收到了正确的清单
<ul>
<li> <strong>Hosts:</strong>
<ul>
<li>Name A </li>
<li>Name B </li>
<li>Name C </li>
</ul>
</ul>
但是,我想通过
来降低这一点<li> <strong>Hosts:</strong>
<ul>
{% for host in page.hosts %}
<li>{{ host | markdownify }}
{% endfor %}
</ul>
但是杰基尔回来了:
<ul>
<li> <strong>Hosts:</strong>
<ul>
<li><p>Name A </p></li>
<li><p>Name B </p></li>
<li><p>Name C </p></li>
</ul>
</ul>
是否有任何方法禁止Jekyll将<p>
标记添加到列表项中?实际上,如果我想添加任何丰富的格式,我需要将HTML直接放入项目中,但我想通过Markdown'ing Front Matter文本添加它。有什么建议吗?
PS:我的网站托管在Github Pages
答案 0 :(得分:14)
您可以像这样使用remove filter:
inAppBrowser
答案 1 :(得分:0)
嗯...这是一个很老的问题,但仍然是现实的。
您可以像以前David Jacquel answered一样使用| remove: '<p>' | remove: '</p>'
。但是它将删除文本中的每个<p>
标签。
但是,如果仅在只有一个<p>
节点的情况下,要删除<p>
标签包裹,则需要更复杂的解决方案。
没有外部插件和过滤器的方法很少。
这是我的解决方案:
{%- assign arr = yourTextVar | markdownify | strip | split: "<p>" -%}
{%- if arr.size > 2 -%}
{{ arr | join: "<p>" | prepend: "<p>" }}
{%- else -%}
{{ arr[1] | remove: "</p>" }}
{%- endif -%}
它将在空的<p>
标记上拆分文本,并将忽略诸如<p id="my-id">
之类的内容
答案 2 :(得分:0)
使用 md.renderInline() 去除 <p>
标签