pelican增加自定义jinja template filters

💡 原文中文,约1100字,阅读约需3分钟。
📝

内容提要

本文讨论了如何在Pelican中自定义Jinja模板过滤器,以实现标签云的随机排序。通过修改Jinja源码,添加随机排序功能,并在Pelican配置文件中引入自定义过滤器,成功生成HTML文件。

🎯

关键要点

  • Pelican中自定义Jinja模板过滤器的方法未在官方文档中明确说明。

  • 为了实现标签云的随机排序,决定直接修改Jinja源码,添加随机排序功能。

  • 在Pelican社区找到了解决方案,通过设置JINJA_FILTERS来添加自定义过滤器。

  • 创建了一个名为jinja_filters.py的模块,定义了shuffle函数用于随机打乱列表或元组。

  • 在Pelican配置文件中引入自定义过滤器,并成功生成HTML文件。

延伸问答

如何在Pelican中自定义Jinja模板过滤器?

可以通过创建一个名为jinja_filters.py的模块,定义自定义过滤器,并在Pelican配置文件中引入该模块来实现。

为什么要在Pelican中实现标签云的随机排序?

为了使标签云看起来更随机和有趣,而不是使用默认的简单排序。

在Pelican中如何添加随机排序功能?

可以通过修改Jinja源码,添加一个shuffle函数来实现随机排序功能。

JINJA_FILTERS在Pelican中有什么作用?

JINJA_FILTERS用于在Pelican中注册自定义的Jinja模板过滤器,使其在模板中可用。

如何在Pelican配置文件中引入自定义过滤器?

在配置文件中添加from jinja_filters import shuffle,并将shuffle函数添加到JINJA_FILTERS字典中。

修改Jinja源码是否有风险?

是的,直接修改源码可能会导致维护困难和不必要的心理负担,因此建议使用自定义过滤器的方式。

➡️

继续阅读