在我的Zola (使用Tera模板引擎)网站上,我有这样一个标题:
<title>{% block title %}{% endblock %} - Newbyte's blog</title>这会生成如下内容:
<title>Birds around the world - Newbyte's blog</title>但是,如果我没有在子模板中指定标题,它将生成以下内容:
<title> - Newbyte's blog</title>如果没有指定的标题,我想省略“-”部分,如果只生成以下内容
<title>Newbyte's blog</title>在Tera模板引擎中有任何方法可以实现这一点吗?我试过这样做,但似乎行不通。它从不生成“-”部分:
<title>{% block title %}{% if title %} - {% endif %}{% endblock %}Newbyte's blog</title>发布于 2022-11-26 14:42:03
我知道,在jinja2中,您可以通过调用self.block_name()来检查块是否为空,但是id在zola上不起作用。
但是,我知道如何实现你想要的(标题)。
首先,用config.toml在title键上定义页面的标题(如果愿意的话,也可以定义另一个)。
然后,将下面的模板放在根html上。
{% if page and page.title %}
{% set title = page.title ~ ' - ' ~ config.title %}
{% else %}
{% set title = config.title %}
{% endif %}
<title>
{{ title }}
</title>基本上,它检查当前页面(例如,post )是否其呈现中有一个在前端定义的标题。如果是这样的话,它将一个名为title的变量设置为{page.title} - {config.title}。
如果它没有这个变量,它将使用在您的config.toml上定义的标题
然后,它在<title>标记中使用该变量。
请注意,这意味着您只需要将页面标题设置在标记文件的前面,而不需要使用块标题。
https://stackoverflow.com/questions/72960566
复制相似问题