Вам необходимо выйти из синтаксиса шаблона с помощью {% raw %}
и {% endraw %}
.
Jekyll передает вашу Markdown через систему шаблонов Liquid , прежде чем она будет проанализирована как Markdown. Это позволяет вам определять переменные в ваших документах, которые Liquid будет обменивать на контент. Теперь завершенный документ передается в анализатор Markdown для преобразования в HTML.
Хотя это полезно, когда вы хотите включить переменные в документ, это может раздражать, если вы хотите включить шаблон, подобный синтаксису, в качестве примеров кода в Markdown. Легко предположить, что поскольку синтаксис шаблона находится в блоке кода или в диапазоне, он будет проигнорирован. Однако Liquid не знает синтаксиса Markdown и не может определить разницу между фактическими переменными шаблона и примерами кода.
В вашем конкретном случае Liquid выдает ошибку, настаивающую на том, что {{a}
должно быть {{a}}
. Конечно, это не правильно. {{a}
- это просто пример кода в вашей уценке. Но Jekyll никогда не попадает в анализатор Markdown, потому что он зацикливается на том, что Liquid считает ошибкой синтаксиса шаблона. Следовательно, вам нужно использовать механизм экранирования Liquid , чтобы сообщить Liquid игнорировать примеры кода:
{% raw %}
If the `str` contains more `a` than `b` / there are unmatched pairs,
the first match that was closed will be used. For example, `{{a}`
will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
{% endraw %}
Оборачивая весь абзац в теги {% raw %}
и {% endraw %}
, мы говорим Liquid игнорировать содержимое и пропускать его без изменений. Liquid удалит необработанные теги, а анализатор Markdown получит нужный вам контент.