Python 根据Pelican中的文件名自动生成标题 1.总结

Python 根据Pelican中的文件名自动生成标题 1.总结,python,jinja2,regex-group,re,pelican,Python,Jinja2,Regex Group,Re,Pelican,我无法根据文章/页面的文件名自动生成正确的标题 例如,我无法从Kira-destine.md文章中自动生成Kira-destine 2.论证 ,自动化。如果我能自动写的话,我不想每次都手动为每篇文章和每页写标题 例外-包含单词的文件,其中包含连字符-“众所周知”,“说英语”。在这种情况下,我必须在文章的元数据中明确指定标题。但在我的文章中,带有连字符的单词在文件名中很少见 3.MCVE 3.1. 数据 您可以在Pelican调试的存储库中看到它 pelicanconf.py: 麦克维。 作者='

我无法根据文章/页面的文件名自动生成正确的标题

例如,我无法从Kira-destine.md文章中自动生成Kira-destine

2.论证 ,自动化。如果我能自动写的话,我不想每次都手动为每篇文章和每页写标题

例外-包含单词的文件,其中包含连字符-“众所周知”,“说英语”。在这种情况下,我必须在文章的元数据中明确指定标题。但在我的文章中,带有连字符的单词在文件名中很少见

3.MCVE 3.1. 数据 您可以在Pelican调试的存储库中看到它

pelicanconf.py:

麦克维。 作者='Sasha Chernykh' SITENAME='Sashapelicandebuging' SITEURL='。' 路径='content' 时区='欧洲/莫斯科' 默认值_LANG='en' [信息]保存slug时使用文章名: https://docs.getpelican.com/en/stable/settings.htmlurl-settings SLUGIFY_SOURCE='basename' [信息]保留文章文件名的大小写 slagify\u PRESERVE\u CASE=True [信息]从文章文件名获取标题: https://docs.getpelican.com/en/stable/settings.htmlmetadata https://github.com/getpelican/pelican/issues/2107 https://github.com/getpelican/pelican/commit/2e82a53cdf3f1f9d66557850cc2811479d5bb645 文件名\元数据=“?P.*” Kira-destine.md:

另一个鹈鹕文件生成的

base.html的简化部分:

:

KIRA_默认文件名_正则表达式='?P.' FILENAME\u METADATA=KIRA\u DEFAULT\u FILENAME\u REGEX.replace-, 它不起作用

5.不要提供 5.1. 在模板中使用Jinja2过滤器 5.1.1. 建议 在模板文件中,如下所示:

<title>{{ article.title|replace('-', " ") }}</title>
5.1.2. 为什么不好 Pelican插件,例如,仍将使用article.title。不需要的数据作为Kira女神,而不是Kira女神仍将传递给插件

5.2. 在降价中使用空格 5.2.1. 建议 例如,将文件命名为Kira-destine.md,而不是Kira-destine.md

5.2.2. 为什么不好 文件名中的空白是一种糟糕的做法-,。

pelican似乎没有提供一种实现您所需的方法。 FILENAME\u元数据regex只能从文件名中选择一个名称,但不能用空格替换

所以我认为目前最好的方法是在每个文件中手动指定title标签

<title>{{ article.title }}</title>
pelican content -s pelicanconf.py --fatal warnings --verbose
grep -E "<title>.*</title>" output/Kira-Goddess.html
<title>{{ article.title }}</title>
<title>{{ article.title|replace('-', " ") }}</title>