如何在nanoc中创建“草稿”项目?

时间:2012-01-10 10:54:55

标签: ruby metadata blogs nanoc

我想根据元数据中的状态代码将帖子呈现到不同的文件夹。

例如,如果我的属性为status: draft,我希望将这些项呈现到名为/draft/的文件夹,而status: live将呈现给{{1} }}。然后我可以用密码保护/blog/文件夹,这样我才能查看它。如果根本没有状态,则默认为草稿。

这可能吗?

1 个答案:

答案 0 :(得分:4)

在规则文件中,使用以下命令:

route '*' do
  if item.binary?
    item.identifier.chop + '.' + item[:extension]
  elsif item[:status]
    '/' + item[:status] + item.identifier.chop + '.' + item[:extension]
  else
    item.identifier + 'index.html'
  end
end

这将为您拥有的每个状态创建一个目录。 例如:以

开头的源文件
---
title: file1
status: testing
---

将在/ testing /文件夹中创建。

要在编译后删除剩余文件,可以使用“nanoc prune”(nanoc 3.3.x中的新增内容)。