mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Octopress - Liquid テンプレート内での Liquid タグをエスケープ!

[ ブログ ] [ Octopress, Ruby, jekyll ]

こんばんは。

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