我正在使用Harp静态站点生成器,并且在任何地方都有这个博客示例,请参阅:http://kennethormandy.com/journal/start-a-blog-with-harp
我问是否有办法为所有文章设置默认的玉石模板/部分,而不是为每篇文章定义一个对我来说相当不方便的文章?
E.g。我的应用程序大纲
/public
/articles
_data.json <--- json with my articles
article.jade <--- I would like to have one template for all articles
instead of having to add files:
article1.jade,
article2.jade, ...
/index.jade
/articles/_data.json
{
"article1": {
"title": "Some article"
},
"article2": {
"title": "Another one"
}
// eventually some more articles ...
}
/index.jade
...
ul
each article, slug in public.articles._data
li
a(href="/articles/#{ slug }") #{ article.name } // generated link only works when for each slug (e.g. "article1") a jade file exists
...
有一种简单的方法吗?
答案 0 :(得分:1)
您应该能够在_layout.jade
目录中添加articles/
文件,以获取您所追求的内容:https://harpjs.com/docs/development/layout
以该文档页面上的多个布局示例为基础:
public/
_layout.jade
index.jade
about.md
articles/
_data.json
_layout.jade
article1.jade
article2.md
此处,index.jade
和about.md
将使用项目根目录中的_layout.jade
文件。文章目录中的任何内容(在本例中为article1.jade
和article2.md
)都将使用同一目录中的_layout.jade
。
这是Harp内置的功能,适用于Jade和EJS。如果您将Jade用于所有内容,您还可以使用Jade特定功能,例如block
和extends
。在同一个文档页面上也有一个例子。