Вставляем liquid-синтаксис в codeblock в Octopress
Активные пользователи Octopress рано или поздно сталкиваются с задачей вставки кусков кода, содержащих liquid-синтаксис, в элемент codeblock
, например, для отображения таких кусков кода в markdown-заметках. Для того, чтобы успешно это сделать, необходимо прибегнуть к трюку: надо обернуть текст, вставляемый в codeblock
в liquid-теги raw
и endraw
следующим образом: [% codeblock %] [% raw %] ... Ваш код ... [% endraw %] [% endcodeblock %]
. В данном примере надо заменить [ ]
на { }
.
В качестве примера приведу свой кусочек кода из предыдущей заметки о руссификации дат в Octopress, в котором мне пришлось применить данный трюк:
{% capture category %}{{ post.categories | size }}{% endcapture %}
<h1><a href="{{ root_url }}{{ post.url }}">{{post.title}}</a></h1>
<time datetime="{{ post.date | datetime | date_to_xmlschema }}" pubdate>{{ post.date | date_ru: "<span class='day'>%d</span> <span class='month'>%b</span> <span class='year'>%Y</span>"}}</time>
{% if category != '0' %}
<footer>
<span class="categories">Опубликовано в {{ post.categories | category_links }}</span>
</footer>
{% endif %}
Метод подглядел у Джима Правеца.