Как избежать тегов жидких шаблонов?


Ответы:


122

Для будущих искателей есть это способ избежать без плагинов, используйте код ниже:

{{ "{% this " }}%}

и для тегов, чтобы избежать {{ this }}использования:

{{ "{{ this " }}}}

Для этого также есть плагин jekyll, который значительно упрощает работу: https://gist.github.com/1020852

Необработанный тег для jekyll. Предотвращает разбор текста между {% raw%} и {% endraw%}

Справка


1
Отлично, спасибо за ссылку. По какой-то причине я не смог найти это в жидких документах.
Аттила О.

9
Вам больше не нужен плагин {% raw %}, для меня он работает из коробки, и теперь он в документации
fregante

можно ли экранировать код с помощью "" вместо {% в jekyll?
Jas

3
Первая пара предложения не работают для меня, но с использованием rawсделали: {% raw %}{{ this }}{% endraw %}.
Евгений Брикман 06

это сработало, спасибо ... см. реальный пример здесь g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati

121

можно отключить движок обработки жидкости с помощью rawтега:

{% raw  %}
{% this %}
{% endraw %}

будет отображать

{% this %}

Я считаю, что раньше это был плагин . Тем временем он попал в основной движок?
Аттила О.

5
Похоже, rawтег был добавлен год назад в основной движок. См. Github.com/Shopify/liquid/commit/master/lib/liquid/tags/raw.rb
Этьен

2
Однако этот побег не поддерживается Github.
leiming

2
@LeiMing Похоже, что это сейчас (вероятно, с мая 2013 года )
atomicules

3
Подтверждено, что он работает на страницах GitHub. rawТег введен в жидкости 2.3.0 и GitHub Pages в настоящее время используется версия 2.5.5 .
Enrico Campidoglio

14

Вы можете избежать жидких тегов в сообщениях Jekyll, используя {% raw%} {% endraw%} т.е.

{% raw %}
  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}

{% endraw %}

будет производить

  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}

13

Кстати:

Если вы хотите отображать {{ "{% this " }}%}в Jekyll, вы можете написать такой код:

{{ "{{ " }}"{{ "{% this" }} " }}{{ "}}%}

Чтобы избежать {{ "{{ this " }}}}использования:

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}

28
Ха-ха-ха-ха-ха-а-а-а-а-а-а.
RobW

10

Есть еще один вариант: использовать коды специальных символов HTML для замены фигурных скобок соответствующими кодами:

  • замените каждый { на & # 123;
  • замените each } на & # 125;

Для получения дополнительных сведений об этом решении см .: http://www.tikalk.com/devops/curly_brances_workaround/


4

Я нашел всемогущий способ отображать любой текст в фигурных скобках. Вы можете присвоить переменной простой текст и отобразить его.

{% assign var = "{{ sth }}" %}
{{ var }}

Спасибо! Полезно, чтобы избежать двойных или одинарных кавычек
JumpLink

1

Как уже упоминалось здесь , plain {% raw %}и {% endraw %}является вторым лучшим решением, поскольку они показаны, если вы посмотрите Markdown на обычном github.com.

Лучше всего поместить {% raw %}и {% endraw %}в HTML-комментарии:

<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->

Из-за комментариев HTML он рассматривается Github как комментарий. На страницах Github необработанные теги предотвратят анализ фигурных скобок между тегами.


Мне нравится этот метод, потому что он почему-то не портит мои отрывки.
Corstian Boerman

0

Я пытался {% raw %}что - то {% endraw %},

и {{ "{% this " }}%}. Но они оба не работают.

наконец, мой рабочий ответ {{ "{%" xxx }} something }}.

Мой код:

{{ "{%" }} extends 'xadmin/base_site.html' %}
{{ "{%" }} block nav_form %}
    <h3>{{ "{{" }} title }}</h3>
    {{ "{%" }} for i in context1 %}
        <p>{{ "{{" }} i }}</p>
    {{ "{%" }} endfor %}
{{ "{%" }} endblock %}

Результат:

{% extends 'xadmin/base_site.html' %}
{% block nav_form %}
    <h3>{{ title }}</h3>
    {% for i in context1 %}
        <p>{{ i }}</p>
    {% endfor %}
{% endblock %}

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.