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 タグが存在するソースコードを表示させる機会もそんなに無いとは思いますが)

以上。





 

Sponsored Link

 

Comments