如何在Wintersmith中找到不在自己子目录中的文章?

时间:2014-03-03 17:52:36

标签: blogs wintersmith

在Wintersmith中,默认博客模板会根据内容/文章/< article> /index.md生成帖子。这很好,因为它允许文章中包含图像等相关文件。但实际上,大多数“博客帖子”只是与模板相关的文本内容。必须创建子目录是一个小麻烦,如果在选项卡式编辑器中编辑多个条目,那么所有名为index.md的内容都很烦人。

站点生成器将吐出articles / basic-post.html文件,但不会在生成的索引或归档页面中包含这些文件。如何在不破坏任何东西的情况下让后者工作?

这可能是也可能不是一个简单的问题,但我是Wintersmith的新手,并没有看到如何做到这一点。我不确定它是否像编辑默认的paginator一样微不足道(我不习惯CoffeeScript,也许是时候解决这个问题了:)

在paginator.coffee中:

getArticles = (contents) ->
  # helper that returns a list of articles found in *contents*
  # note that each article is assumed to have its own directory in the articles directory
  articles = contents[options.articles]._.directories.map (item) -> item.index
  articles.sort (a, b) -> b.date - a.date
  return articles

这看起来像是一个地方,但是直接编辑插件似乎是一个坏主意,以便将来可能的更新工作。

Wintersmith真是太棒了。

1 个答案:

答案 0 :(得分:3)

你是对的:问题在于paginator插件。

Wintersmith将不断观察contents文件夹,构建一个ContentTree数组。 该objet数组将包含contents中每个文件和文件夹的描述符。

getArticles只是过滤了这些可能的候选者,您只需要对其进行增强,以便在contents/articles文件夹中获得简单的降价文件。

  getArticles = (contents) ->
    # helper that returns a list of articles found in *contents*
    # include articles with dedicated directory
    articles = contents[options.articles]._.directories.map (item) -> item.index
    # add articles that are in the *contents/articles* folder 
    articles = articles.concat contents[options.articles]._.pages
    articles.sort (a, b) -> b.date - a.date
    return articles