Не знаю, как закрыть переменную в файле MD

У меня проблема с моим проектом GitHub. Я пытаюсь разместить его на сайте trustworthy.netlify.com, но возникает ошибка построения страницы:

Your site is having problems building: The variable {{a} on line 50 in functions/node_modules/balanced-match/README.md was not properly closed with }}. For more information, see https://help.github.com/articles/page-build-failed-tag-not-properly-terminated/.

Я думал, что могу просто добавить "}}" после {a}, но это строка кода, на которую она ссылается:

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', '}']`.

Я недостаточно знаю язык разметки или GitHub, чтобы знать, где добавить "}}", или даже если должен, и я не хочу случайно вызвать огромные проблемы с моим сайтом. Что я должен делать?


1
928
1

Ответ:

Решено

Вам нужно избежать синтаксиса шаблона с помощью {% raw %} и {% endraw %}.

Jekyll проходит ваш Markdown через систему шаблонов Жидкость, прежде чем он будет проанализирован как Markdown. Это позволяет вам определять переменные в ваших документах, которые Liquid будет заменять содержимым. Теперь готовый документ передается парсеру Markdown для преобразования в HTML.

Хотя это полезно, когда вы хотите включить переменные в документ, это может раздражать, когда вы хотите включить шаблон, подобный синтаксису, в качестве образцов кода в свой Markdown. Легко предположить, что, поскольку синтаксис шаблона находится в блоке кода или диапазоне, он будет проигнорирован. Однако Liquid не знает синтаксиса Markdown и не может отличить фактические переменные шаблона от образцов кода.

В вашем конкретном случае Liquid выдает ошибку, настаивая на том, что {{a} должен быть {{a}}. Конечно, это не так. {{a} - это просто образец кода в вашем Markdown. Но 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 получит желаемый контент.