我在 nanoc 规则中使用以下测试来编译多个目录中的各种内容(包括部分内容),方法是将它们与其同名布局匹配。
现在我已将索引文件添加到每个内容目录,但这些需要默认布局。如果我在 'index.md' 文件中的元数据中添加一个名为 'index:' 的项目,这显然可以正常工作......</p>
---
title: 'This page title'
index: 'y'
---
…但是检查if @item[:index]
似乎有点笨拙,所以我一直在尝试(好吧,到处乱搞)找到一种方法从元数据中省略“索引:”并通过 nanoc 代表名称或标识符进行测试 - 请参阅注释掉的if
语句下面的代码:
layouts = ['layoutone','layouttwo','layoutetc']
layouts.each do |dir|
compile "/#{dir}/*" do
# if item.identifier == "/#{dir}/index/"
# if item.identifier =~ %r{/\w/index/}
# if @item.rep_named(:index)
if @item[:index]
filter :kramdown
layout "default"
elsif @item[:inc]
filter :erb
filter :kramdown
layout "#{dir}"
else
filter :kramdown
layout "#{dir}"
end
end
end
我注释掉的行中的语法/逻辑有什么问题?
编辑:
我在这里错过了令人眼花缭乱的明显:只需在与创建和/content/dir_name.md
相同的级别添加,并将规则应用于这些文件。/content/dir_name/*
/dir_name/index.html
/dir_name/*.html
/content/dir_name.md