使用pug(jade)有选择地为指定文件夹中的文章生成目录

时间:2017-03-07 19:30:11

标签: pug block extend partial harp

我正在使用带有jade支持的竖琴版本0.21.0来开发Windows 7上的静态站点。下面的竖琴文档链接显示了使用_layout.ejs进行嵌套布局的示例以及如何创建博客帖子列表:

https://harpjs.com/docs/development/layout

https://harpjs.com/recipes/blog-posts-list

仅当当前页面位于包含多个文章的组文件夹中时,我才想在侧面容器中放置文章链接。如下所示。

_layout.jade
index.jade
+ group1
    article1
+ group2
  _data.json
  article1
  article2

_layout.jade

head
  title= title
  meta(name='description', content='#{ description }')
body
  #wrap
    #side
      p(align='center')
      img(src=sideimg, width='259', height='387', alt=imgtag)
      != partial("_toc.jade")
    #main
      != yield
    #footer

_data.json

 {
 "article1": {
   "pagetitle": "Article 1 Title",
   "sideimg"  : "/img/freebird.png",
   "imgtag"   : "bird flying under Sun"
 },
 "article2": {
   "pagetitle": "Article 2 Title",
   "sideimg"  : "/img/freebird.png",
   "imgtag"   : "bird flying under Sun"
 }
 }

_toc.jade伪代码(什么是正确的玉语法?)

if current page is in group1 folder then 
  do nothing
if current page is in group2 folder then
  for each article in group2 folder
    ul
      li
         insert #{ pagetitle } as link in side container

我有两个问题。

  1. 如果可以使用jade partial完成,那么_toc.jade中jade代码的语法是什么?

  2. 如果可以使用块完成并在jade中扩展,那么该方法中的代码是什么?

1 个答案:

答案 0 :(得分:1)

竖琴文档包含有关线索的配方,我曾使用_toc.jade方法解决自己的问题。

_toc.jade(此代码适用于原始问题的上下文)

if current.path[0] == 'group2'
  for group2, pagetitle in public.group2._data
    a(href="/group2/#{ pagetitle }") 
      p.i= group2.pagetitle