[Middleman 3] Middleman: 公式サイトで紹介されている機能を確認する

Developers.IO さんの Middleman 記事が分かりやすかったので、こちらを元によく使いそうな機能を確認してきます。

[markdown]

## 主なコマンド

1. プロジェクトフォルダを作成 … `middleman init`
2. 開発用ローカルサーバーを起動 … `middleman server`
3. ファイルをビルド(静的ファイルの出力) … `middleman build`

> [【Middleman】静的サイトジェネレータを使用してみる。 | Developers.IO](http://dev.classmethod.jp/tool/middleman/)

その他。

“`
% middleman –help
Tasks:
middleman build [options] # Builds the static site for deployment
middleman console [options] # Start an interactive console in the con…
middleman extension NAME [options] # Create Middleman extension scaffold NAME
middleman init NAME [options] # Create new project NAME
middleman server [options] # Start the preview server
middleman upgrade # Upgrade installed bundle
middleman version # Show version
“`

## ディレクトリ構造

middleman によって、雛形ファイルが生成されます。

> * [Middleman: 付属するプロジェクトテンプレートと独自テンプレートの追加 | deadwood](https://www.d-wood.com/blog/2014/02/17_5481.html)
> * [【Middleman】でモダンにHTMLファイルを出力してみる。 | Developers.IO](http://dev.classmethod.jp/tool/middleman-build-html/)

## テンプレート

ERB が標準のテンプレートエンジン。
レイアウト機能やパーシャル機能も rails と同じように使えます。

> * [Middleman: テンプレート](http://middlemanapp.com/jp/basics/templates/)

こちらの図解が分かりやすいです。

> * [【Middleman】でモダンにHTMLファイルを出力してみる。 | Developers.IO](http://dev.classmethod.jp/tool/middleman-build-html/)

テンプレートエンジンを切り替えることができます。
例えば Haml の場合。

> * [[ Middleman で超速プロトタイピング ] #00 Haml 再入門 | Developers.IO](http://dev.classmethod.jp/ria/html5/middleman-supersonic-00-haml-relearning/)
> * [[ Middleman で超速プロトタイピング ] #01 Middleman の基礎を一気に学ぶ | Developers.IO](http://dev.classmethod.jp/tool/middleman-supersonic-01-try-middleman/)

Tilt が有効な gem であれば利用できると言うことのよう。

> * [rtomayko/tilt · GitHub](https://github.com/rtomayko/tilt)
> * [Ruby for Newbies: The Tilt Gem – Tuts+ Code Tutorial](http://code.tutsplus.com/tutorials/ruby-for-newbies-the-tilt-gem–net-20027)
> * [BestGems Pickup! 第3回 「tilt」 — ぺけみさお](http://www.xmisao.com/2013/08/15/bestgems-pickup-tilt.html)

## テンプレートヘルパ

> テンプレートヘルパはよくある HTML の作業を簡単にするため, 動的テンプレートの中で使用できるメソッドです。基本的なメソッドのほとんどは Rails のビューヘルパを利用したことのある人にはお馴染みのものです。すべてのヘルパは Padrino フレームワークによって組み込まれています。
>
> [Middleman: テンプレートヘルパ](http://middlemanapp.com/jp/basics/helpers/)

こちらの例が分かりやすい。

> * [[ Middleman で超速プロトタイピング ] #01 Middleman の基礎を一気に学ぶ | Developers.IO](http://dev.classmethod.jp/tool/middleman-supersonic-01-try-middleman/)

* リンクヘルパ
* image_tag – タグヘルパ
* Form ヘルパ
* ダミーテキストヘルパ
* ダミー画像ヘルパ

## Frontmatter(ページ固有変数)

> YAML または JSON フォーマットでテンプレート上部に記述することができるページ固有の変数です。
>
> [Middleman: Frontmatter](http://middlemanapp.com/jp/basics/frontmatter/)

利用するレイアウトファイルを指定したり、ページの head 情報を持たせたり。

> * [【Middleman】でモダンにHTMLファイルを出力してみる。 | Developers.IO](http://dev.classmethod.jp/tool/middleman-build-html/)
> * [[ Middleman で超速プロトタイピング ] #01 Middleman の基礎を一気に学ぶ | Developers.IO](http://dev.classmethod.jp/tool/middleman-supersonic-01-try-middleman/)

## ローカルデータ

YAML または JSON フォーマットで用意した別ファイルのデータを、テンプレートから DB ライクに利用できます。

> * [Middleman: ローカルデータ](http://middlemanapp.com/jp/advanced/local-data/)
> * [【Middleman】の便利な機能をご紹介。 | Developers.IO](http://dev.classmethod.jp/etc/middleman-useful-functions/)

## ファイルサイズ最適化

> * [Middleman: ファイルサイズ最適化](http://middlemanapp.com/jp/advanced/file-size-optimization/)
> * [【Middleman】の便利な機能をご紹介。 | Developers.IO](http://dev.classmethod.jp/etc/middleman-useful-functions/)

* HTMLの圧縮
* CSS・JavaScriptの圧縮
* 画像圧縮
* GZIPで圧縮

## LiveReload

> * [【Middleman】の便利な機能をご紹介。 | Developers.IO](http://dev.classmethod.jp/etc/middleman-useful-functions/)
> * [[ Middleman で超速プロトタイピング ] #02 Middleman の便利機能 7 選 | Developers.IO](http://dev.classmethod.jp/tool/middleman-supersonic-02/)

## その他

その他、こちらで取りあげられていたもの。

> * [[ Middleman で超速プロトタイピング ] #02 Middleman の便利機能 7 選 | Developers.IO](http://dev.classmethod.jp/tool/middleman-supersonic-02/)

* テンプレート – レイアウトを無効にする
* 動的ページを作る
* サイトマップ
* ディレクトリインデックス
* アセットパイプライン
[/markdown]