这是降价,对吧?
# Title
## Subtitle
### Subsubtitle
您可以在 Twig 中使用 获取页面 Markdown 的 HTML 版本{{ page.content }}
,如Grav 的文档中所述。所以你应该得到这样的东西:
<h1>Title</h1>
<h2>Subtitle</h2>
<h3>Subsubtitle</h3>
您可以使用split
和raw
过滤器来提取这些标签的内容。我也在使用default
过滤器,以便在提取标签内容失败时不会出现错误:
Title is:
{{ page.content|split('<h1>')[1]|default|raw|split('</h1>')[0] }}
Subtitle is:
{{ page.content|split('<h2>')[1]|default|raw|split('</h2>')[0] }}
Subsubtitle is:
{{ page.content|split('<h3>')[1]|default|raw|split('</h3>')[0] }}
或者因为 Grav 似乎提供了一个regex_replace
过滤器,你也可以使用它:
Title is:
{{ page.content|regex_replace('~.*<h1>(.*)</h1>.*~s', '$1') }}
Subtitle is:
{{ page.content|regex_replace('~.*<h2>(.*)</h2>.*~s', '$1') }}
Subsubtitle is:
{{ page.content|regex_replace('~.*<h3>(.*)</h3>.*~s', '$1') }}
相反,如果你有这个:
- Title
- Subtitle
- Subsubtitle
您可以再次使用split
,default
和raw
过滤器:
Title is:
{{ page.content|split('<li>')[1]|default|raw|split('</li>')[0] }}
Subtitle is:
{{ page.content|split('<li>')[2]|default|raw|split('</li>')[0] }}
Subsubtitle is:
{{ page.content|split('<li>')[3]|default|raw|split('</li>')[0] }}
不是很漂亮。:-) 如果标题可以包含 HTML(例如## Hello **world**!
→ <h2>Hello <strong>world</strong>!</h2>
)或特殊字符,您可能需要附加|raw
到已经很长的魔法咒语。