Harp js + blog示例:有没有办法为文章设置默认部分?

时间:2017-02-11 13:39:22

标签: javascript node.js harp

我正在使用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
...

有一种简单的方法吗?

1 个答案:

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

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