Octopress - Liquid テンプレート内での Liquid タグをエスケープ!
Updated:
Octopress は、jekyll を使って静的なブログを簡単に構築できるようにしたフレームワークです。
そして、jekyll は Liquid という Ruby のテンプレートエンジンを採用しています。
たとえば、Octopress の記事内でソースコードを表示させたい場合、{% codeblock %} と {% endcodeblock %} の Liquid タグで囲んで記述します。
しかし、ソースコード内に Liquid タグが含まれる場合は、generate するとそのタグも展開されてしまします。
以下、Liquid テンプレート内の Liquid タグをエスケープする方法についての記録です。
1. 対応方法
ソースコード内の {% this %} をエスケープする場合、 {{ "%{ this " }}%} とする。
ソースコード内の {{ this }} をエスケープする場合、 {{ "{{ this " }}}} とする。
要は、開始タグの前に {{ " を、終了タグの前に " }} を付加するということ。
【2013.06.09 追記】
実際は、開始タグのみエスケープすれば、終了タグはエスケープする必要はなかった。
2. 参考サイト
少し面倒に感じますが、これでソースコード内に Liquid タグが存在しても問題なく表示させることが可能になります。
(Liquid タグが存在するソースコードを表示させる機会もそんなに無いとは思いますが)
以上。
Comments