python - 如何使用 Pelican 实现与内容文件夹中的档案或页面相同的行为?
问题描述
我希望 Pelican 使用页面或文章文件夹生成内容的方式相同,这些内容被构造为/pages/
路径下的页面作为文件我想如果我想要例如与调用products
的其他文件夹具有相同的行为,我想如何做同样的事情为了鹈鹕生成/products/<file>.hml
。
content
products
product1.md
product2.md
articles
article1.md
article2.md
pages
about.md
index.md
应该很容易(我认为)说 Pelican 我想处理内容中的另一个文件夹,但我找不到方法。
任何想法?也许一些鹈鹕插件?
我已经看到了这个答案:Python Pelican:如何按类别分隔内容?但并不完全是 Ï 想要的,因为他正在谈论 pages 文件夹中的子文件夹。
谢谢!
解决方案
在弄乱可用选项之后,您的场景中阻力最小的路径似乎是PATH_METADATA
在您的配置文件中设置。以下是您可以具体拥有的内容:
# In pelicanconf.py
PATH_METADATA= '(?P<path_no_ext>.*)\..*'
ARTICLE_URL = '{path_no_ext}.html'
ARTICLE_SAVE_AS = '{path_no_ext}.html'
这将重新创建目录content
内部的结构,output
如下所示:
. (output folder)
├── about.html
├── archives.html
├── index.html
├── etc.
├── products
│ └── article-filename.html
│ └── article2-filename.html
├── articles
│ ├── article3-filename.html
│ └── article4-filename.html
├── pages
│ ├── article5-filename.html
│ └── article6-filename.html
推荐阅读
- c - 如何将子进程的返回值返回给使用 exec 创建的父进程?
- javascript - javascript项目的firebase初始化代码是否需要在每个网页上运行?
- java - 尝试制作 altcase。Char 被取消引用,我该如何解决这个问题?
- c# - 将 16k 行的表数据写入文件超时
- testing - 如何从 clj 运行 Clojure 测试(而不是从 lein 既不启动)?
- php - Laravel Redis 会话驱动 - Redis 会话不一致
- node.js - javascript promise 的两个 return 语句在这里意味着什么?
- typescript - 看源码发现都是index.d.ts?
- vue.js - 如何在Vue中调用没有HTML标签的全局组件?
- spring-boot - 当我在 Chrome 中打开一个网站页面时,为什么会有多个 TCP 连接到服务器?