当前年份,“现在”在 Pelican 模板中未定义

问题描述 投票:0回答:1

我正在尝试在 Pelican 网站的页脚中显示当前年份。我的理解是Pelican使用Jinja2模板。

在我的footer.html中我使用:

<span>{{ now().year }}</span>

我在我的 base.html 中使用它作为

{% include 'footer.html' %}

但是当我生成页面时出现错误

未定义错误:“现在”未定义

我找不到原因。

有什么技巧/设置/插件我需要使用这个吗?

jinja2 pelican
1个回答
0
投票

Pelican 为 Jinja 提供了一个

strftime
额外的过滤器,其工作原理与 Python 的
strftime
完全一样。

以下是这一发现的来源:

  1. 来自他们的代码库的这一行
  2. 以及本页文档

也就是说,您需要一个

datetime
对象来使用此过滤器。

后者可以通过修改配置文件pelicanconf.py,添加这两行来获得

from datetime import datetime
NOW = datetime.now()

## Mind that:
##   All the setting identifiers must be set in all-caps, 
##   otherwise they will not be processed.
## @see https://docs.getpelican.com/en/latest/settings.html#settings

现在,在您的模板中,您可以开始使用这个新创建的

NOW
变量并应用
strftime
格式
,这意味着您想要
%Y
表示年份:

{{ NOW | strftime('%Y') }}
© www.soinside.com 2019 - 2024. All rights reserved.