在Pelican网址中使用小写月份名称

时间:2015-12-13 21:09:35

标签: python string-formatting pelican

我正在使用静态网站生成器Pelican。我已将ARTICLE_URL设置配置为在网址中包含年份和月份。

例如

ARTICLE_URL = 'posts/{date:%Y}/{date:%b}/{slug}/'

我的帖子网址会像

/posts/2015/Dec/my-new-post/

我希望这个月是低级的,即

/posts/2015/dec/my-new-post/

有没有简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,并通过制作一个小的Pelican plugin来解决该问题,该问题将小写的月份名称添加为内容元数据变量。

这里是插件:

from pelican import signals

def add_lowercase_month_to_metadata(content):
    if "date" in content.metadata:
        content.metadata["lowercase_month"] = content.metadata["date"].strftime("%B").lower()
        content.metadata["lowercase_month_short"] = content.metadata["date"].strftime("%b").lower()

def register():
    signals.content_object_init.connect(add_lowercase_month_to_metadata)

激活后,您可以在lowercase_monthlowercase_month_short中使用新的小写月份名称变量(ARTICLE_URLARTICLE_SAVE_AS):

ARTICLE_URL = '/{date:%Y}/{lowercase_month_short}/{date:%d}/{slug}'
ARTICLE_SAVE_AS = '{date:%Y}/{lowercase_month_short}/{date:%d}/{slug}/index.html'

答案 1 :(得分:0)

尝试使用此代替:

ARTICLE_URL = 'posts/{date:%Y}/{date:%b | lower }/{slug}/'