middlemn v4 では resources と collection というのが導入されたらしいのですが、公式ドキュメントを見てもいまいち分かりにくいです。どうやらわざわざextension で manipulate_resource_list() を使わなくても手軽にリソース操作ができるっぽいですね。
resources を使ってみる。
とりあえず、すべてのリソースに ‘foo’ というローカル変数を使えるようにしてみます。config.rb に
|
|
と書くだけで、*.html.erb で
|
|
と使えるようです。確かに便利ですね。v3ではこれをするのには Middleman::Extension から派生させたクラスを作って manipulate_resource_list() を書いてそのクラスを Middleman::Extensions に register して activate して、、、という手順を踏まなければなりませんでしたから。
collection を使ってみる
ドキュメントのタグの例題が分かりにくいので、ここでは、「見てほしい記事に mitene: 100 とかフロントマターにつけて大きい順に表示する」というのをやってみたいと思います。
config.rb:
|
|
というふうに、collection() を使って、あるシンボルに対して、resources から始まるチェーンから作られたオブジェクトを紐付けしてあげます。そうすると mitene.html.erb でそのシンボルを使って、
|
|
というふうに、集めておいたオブジェクトを呼び出せるようです。
また、config.rb:
|
|
とハッシュにしてあげて
|
|
と受け取ることも出来ます。
ちょっとリソースに手を加えたり、特定の条件のリソースを集めておいてテンプレートで使うということが手軽にできそうな感じです。
また分かり次第追記していきます。