鹈鹕模板中当前页面的URL的变量

Ben*_*say 6 python jinja2 pelican

我是Pelican的新手.我正在构建我的网站,以便我有两个类别:博客和项目.我有3个菜单按钮:主页,博客和项目.我正在尝试编辑我的base.html模板文件,以便Blog按钮处于活动状态,如果我在其中blog/或其任何子目录中,并且项目按钮处于活动状态,如果我在其中projects/或其任何子目录中.如果我有一个可访问的变量,base.html它给了我当前页面的相对URL,我可以将其拆分/并获取路径中的第一个目录.我一直在搜索,我似乎无法找到当前页面的相对URL的变量.是否有内置变量或者我可以为我正在寻找的定制变量?

小智 9

由于我也是鹈鹕的新手,请采取以下建议.

此变量将为您提供当前文件的名称,如文档中所述:

{{ output_file }}
Run Code Online (Sandbox Code Playgroud)

例如:当生成菜单项为我的网页,我可以检查对页面突出的"save_as"属性确切对应的菜单项:

{% if output_file == p.save_as %}active{% endif %}
Run Code Online (Sandbox Code Playgroud)

但在你的情况下,它应该足以检查当前页面是否是一篇文章(假设"博客"包含你的所有文章)以突出显示博客菜单项.例如,通过检查变量"article"是否存在:

{% if article %}class="active"{% endif %}
Run Code Online (Sandbox Code Playgroud)

如果您的项目由"页面"组成,只需检查这些内容类型的主要变量:

{% if page %}class="active"{% endif %}
Run Code Online (Sandbox Code Playgroud)

对于主页,类别,档案等,可以检查"page_name"的内容:

{% if page_name == 'index' %}class="active"{% endif %}
Run Code Online (Sandbox Code Playgroud)

  • 你无法知道你的答案如何帮助我!我正在寻找如何检查文章和页面是否..你的`if page_name`正是我所需要的! (2认同)