Pelican - 如何删除本地主机上的 .html 扩展名

问题描述

我有一个 pelican 博客,我想从 URL 中删除 .html 扩展名。我在 pelicanconf.py 中添加了以下内容

ARTICLE_URL ='{slug}'
PAGE_URL = '{slug}'

问题是 invoke livereload 不提供没有 html 扩展名的网址。 pelican --autoreload --listen 可以,但它不会在更改时自动刷新我的浏览器。

有什么解决方案可以两全其美?

解决方法

利用 *_URL*_SAVE_AS 配置选项。

例如:

ARTICLE_URL = '{slug}/'
ARTICLE_SAVE_AS = '{slug}/index.html'
PAGE_URL = '{slug}/'
PAGE_SAVE_AS = '{slug}/index.html'

以上确实依赖于这样一个事实,即当您尝试直接浏览目录时,网络服务器将提供“index.html”文件,但这是近乎普遍的行为。

您可以对任何 *_URL 设置执行上述操作。进一步的例子:

CATEGORY_URL = "category/{slug}/"
CATEGORY_SAVE_AS = "category/{slug}/index.html"
CATEGORIES_URL = "category/"
CATEGORIES_SAVE_AS = "category/index.html"