Middleman(+ middleman-blog)のテンプレートで使える変数まとめ

リニューアルだ!、ということでMiddlemanでのブログ構築をやっています。テンプレートで使える変数についてリファレンス的なものが欲しかったのでまとめておきます。(ここに載ってないけど便利な変数があるよ、というものがあったらぜひコメントなどでお知らせください!)

※ この記事では、Middlemanのテンプレートで使える 変数 についてまとめています。ヘルパー関数については、Middlemanのドキュメント[英語]にまとまっています。基本的に引数なしで呼び出せるものであれば、定義がメソッドであっても変数として扱っています。

Middlemanデフォルトのもの

current_page

現在のページに関する情報(Middleman::Sitemap::Resource)。current_resourceという別名が定義されています。 [rubydoc]

current_path

現在のページのパス(urlが http://example.com/hoge/huga であれば、 /hoge/hugaの部分)。 [rubydoc]

data

ローカルデータを参照できます。[rubydoc]

environment

現在の開発環境を示す文字列。 [rubydoc]

development?

現在の環境が開発環境であればtrue、そうでなければfalse。 [rubydoc]

build?

現在の環境が静的サイトのビルドモードであればtrue、そうでなければfalse。 [rubydoc]

sitemap

サイトマップ。 [rubydoc]

config

設定にアクセスできます。settingsという別名が定義されています。 [rubydoc]

middleman-blog拡張に含まれるもの

middleman-blog拡張をプロジェクトにインストールすることで使えるようになる変数です。middleman-blogの詳細についてはこちらで。ヘルパー関数についてはこちらにまとまっています。

blog

BlogDataを返します。 [rubydoc]

current_article

現在のブログ記事に関する情報。ベースはMiddleman::Sitemap::Resourceですが、BlogArticleのメソッドがミックスインされています。 [rubydoc]

page_articles

現在のページに含まれる記事(current_articleと同様のもの)の配列を返します。 [rubydoc]

is_blog_article?

現在処理中のテンプレートがブログ記事であればtrueそうでなければfalse。 [rubydoc]

ページネーション

middleman-blogにはページネーションの機能がついています。

paginate

現在処理中のテンプレートに対してページネーションが有効になっていればtrue、無効であればfalseを返します。config.paginatetrueになっており、Frontmatterにpageable: trueが設定されていればページネーションが有効になります。以下の変数はページネーションが有効になっていないと設定されませんので、if paginate; SOMETHING; endのようなブロックで囲んで使うのが良いと思います。 [rubydoc]

next_page

次のページに関する情報をMiddleman::Sitemap::Resourceの形で返します。 次のページがなければnilになります。

prev_page

前のページに関する情報をMiddleman::Sitemap::Resourceの形で返します。 前のページがなければnilになります。

page_number

現在のページのページ番号です。

num_pages

全てのページの数です。

per_page

1ページに含まれる項目の数です。

page_start

現在のページの最初の項目を示す数(起点1のインデックス)です。

page_end

現在のページの最後の項目を示す数(起点1のインデックス)です。