Rules
新しいアイテムを動的に生成するために、ファイルで前処理ブロックを使用できます。これは、単一の新しいアイテムが追加される前処理ブロックの例です。
preprocess do
items << Nanoc::Item.new(
"some content here",
{ :attributes => 'here', :awesomeness => 5000 },
"/identifier/of/this/item")
end
タグごとにページが必要な場合は、最初にすべてのタグを収集する必要があります。重複したくないので、セットでこれを行っています:
require 'set'
tags = Set.new
items.each do |item|
item[:tags].each { |t| tags.add(t.downcase) }
end
最後に、すべてのタグをループして、それらのアイテムを生成します。
tags.each do |tag|
items << Nanoc::Item.new(
"",
{ :tag => tag },
"/tags/#{tag}/")
end
これで、/ tags / * /の特定のコンパイルルールを作成できるようになりました。これにより、「タグ」レイアウトを使用してレンダリングされ、:tag属性の値を取得し、このタグを持つすべてのアイテムを検索して、リスト。そのレイアウトは次のようになります。
<h1><%= @item[:tag] %></h1>
<ul>
<% items_with_tag(@item[:tag]).each do |i| %>
<li><%= link_to i[:title], i %></li>
<% end %>
</ul>
そして、それは、大まかに言えば、あなたが望むものでなければなりません!