WEB・アプリ開発

Middlemanでwrap_layoutがドキュメント通りに動かない件

ドキュメント通りにしてもhtmlが何も出力されないという問題

公式ドキュメントのこの部分によると、Nested Layoutを使いたい場合は下のようにすると書いてありますが、これだと動きません。htmlが何も出力されず白い画面となります。


これはMiddlemanが依存するPadrinoに変更があったためと言われています。
middleman/middleman#1269

バージョンは以下の通りです。

  • middleman (3.4.0)
  • padrino-helpers (0.12.5)

erbに”=”を加えてもダメ

上記のissue内で、slimでいうところの-ではなく=を使うようになったとあったので、1行目に=を加えてみました。


すると、下のようなエラーが発生します。


エラーの全量ログはこちら

スポンサーリンク

slimで”=”にすると動いた!

このissueのコメントによると、erbはまだ=に対応できていないからとのことです。
slimやhamlは対応済みなので、slimで以下のようにすると動きました。

無理やりerbでも動かす方法

どうしてもerbが使いたい人は、きれいなコードとは言えませんが以下のようにすると動きます。

まとめ

Middlemanは、Railsのhelperの使い勝手に似せるためかPadrinoというライブラリーに大きく依存しています。なので、Padrinoの仕様変更でわりと影響をうけそうです。
この件については、ドキュメントで説明しておけばよい話だと思うので、ドキュメントのほうにissueをたてました。

middleman/middleman-guides#535