1

我正在使用 Harp 静态站点生成器,到处都有这个博客示例,例如: http: //kennethormandy.com/journal/start-a-blog-with-harp

我在问是否有一种方法可以为所有文章设置默认的玉模板/部分,而不是为每篇文章定义一个,这对我来说似乎很不方便?

例如我的应用程序的大纲

/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
...

有没有一种简单的方法可以做到这一点?

4

1 回答 1

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.jadeabout.md使用_layout.jade项目根目录中的文件。文章目录中的任何内容(在本例中为article1.jade和)article2.md都将使用_layout.jade同一目录中的 。

这是 Harp 内置的一个功能,适用于 Jade 和 EJS。如果您将 Jade 用于一切,您还可以使用 Jade 特定的功能,例如blockextends。在同一个文档页面上也有一个例子。

于 2017-04-12T20:55:28.363 回答