当作为部分包含时如何从页脚获取页面标题?
How to get page title from footer when it’s included as a partial?
我有一个博客页面并尝试将页脚添加为部分页脚,但是来自 footer.md 的博客页面的标题显示不正确
我将此代码发送到 base.html.twig:
{% include 'partials/footer.html.twig' %}
pages/footer/default.md
---
title: Footer
routable: false
visible: false
process:
markdown: true
twig: true
twig_first: true
---
<h1>{{ page.title }}</h1>
partials/footer.hml.twig:
<section id="footer" class="section bg-gray">
<section class="container {{ grid_size }}">
{% set footer_content = pages.find('/footer').content %}
{% if footer_content %}
{{ footer_content }}
{% else %}
<p><a href="http://getgrav.org">Grav</a> was <i class="fa fa-code"></i> with <i class="fa fa-heart-o pulse "></i> by <a href="https://trilby.media">Trilby Media</a>.</p>
{% endif %}
</section>
</section>
无论博客页面的标题是什么,我总是将页脚的标题作为页脚的标题,即 Footer
是否可以有博客页面的标题?
页面是预先解析的,而不是在使用 {% set content = pages.find('/footer') %}
在 Twig 中调用时解析的。
在解析期间,上下文是页面本身,因此其 Markdown 中的 {{ page.title }}
将始终引用当前页面对象。因此,您的示例中的值 <h1>Footer</h1>
。
但是,可以使用 Grav 函数 evaluate_twig
在 Twig 内部解析页面对象的 Markdown。请参阅 Twig Filters & Functions
上的 Grav 文档
例如:
'/pages/footer/default.md'
---
title: Footer
routable: false
visible: false
# process: <-- not needed because we use raw markdown
# markdown: true
# twig: true
# twig_first: true
---
<h1>{{ page.title }}</h1>
里面的片段'footer.html.twig'
{% set rawMarkdown = pages.find('/footer').rawMarkdown %}
{{ evaluate_twig(rawMarkdown) }}
使用'Blog Site'骨架浏览'localhost/blog/focus-and-blur'时的结果
我有一个博客页面并尝试将页脚添加为部分页脚,但是来自 footer.md 的博客页面的标题显示不正确
我将此代码发送到 base.html.twig:
{% include 'partials/footer.html.twig' %}
pages/footer/default.md
---
title: Footer
routable: false
visible: false
process:
markdown: true
twig: true
twig_first: true
---
<h1>{{ page.title }}</h1>
partials/footer.hml.twig:
<section id="footer" class="section bg-gray">
<section class="container {{ grid_size }}">
{% set footer_content = pages.find('/footer').content %}
{% if footer_content %}
{{ footer_content }}
{% else %}
<p><a href="http://getgrav.org">Grav</a> was <i class="fa fa-code"></i> with <i class="fa fa-heart-o pulse "></i> by <a href="https://trilby.media">Trilby Media</a>.</p>
{% endif %}
</section>
</section>
无论博客页面的标题是什么,我总是将页脚的标题作为页脚的标题,即 Footer
是否可以有博客页面的标题?
页面是预先解析的,而不是在使用 {% set content = pages.find('/footer') %}
在 Twig 中调用时解析的。
在解析期间,上下文是页面本身,因此其 Markdown 中的 {{ page.title }}
将始终引用当前页面对象。因此,您的示例中的值 <h1>Footer</h1>
。
但是,可以使用 Grav 函数 evaluate_twig
在 Twig 内部解析页面对象的 Markdown。请参阅 Twig Filters & Functions
例如:
'/pages/footer/default.md'
--- title: Footer routable: false visible: false # process: <-- not needed because we use raw markdown # markdown: true # twig: true # twig_first: true --- <h1>{{ page.title }}</h1>
里面的片段'footer.html.twig'
{% set rawMarkdown = pages.find('/footer').rawMarkdown %} {{ evaluate_twig(rawMarkdown) }}
使用'Blog Site'骨架浏览'localhost/blog/focus-and-blur'时的结果