WEB・アプリ開発

Middlemanでerbのコードブロックをerbに書く方法

記事内に商品プロモーションを含む場合があります

記事内にerbのコードブロックを書くとエラーが発生

私は記事をMarkdownで書いていますが、より柔軟に変数やロジックを使いたいため、拡張子を.html.md.erbとし、erbで動的に生成したMarkdownがhtmlに変換されるようにしています。

その記事内で以下のコードを書きました。

すると以下のエラーが発生しました。

エラーの全量はこちら

原因

erbのファイルなので、erbのコードが実行されてしまうということです。実行されるべき場所ではないので、エラーが発生します。

解決策

%を2つにするとerbのコードをエスケープ(実行されないように)できます。見た目は意図した通り%1つだけ表示されます。具体的には以下のように書きます。

拡張子が.html.md.erbの場合

拡張子が.html.erbの場合

参考

erbのタグをエスケープするには%% とパーセントを2つ書く。

そして、一つお願いしたいことがあります。

もしこの記事がお役に立てたのなら、下のボタンからSNSでシェアするか、あなたのブログでご紹介頂けないでしょうか?検索エンジンの仕組みで、同じ問題で今困っている方の目に届きやすくなります。もちろん、私としても記事を書くモチベーションになります。

記事への要望やダメ出しを書いて頂いても嬉しいです。定期的にエゴサーチしており、今後の記事で活かさせて頂きます。よろしくお願いいたします!