Не знаю, как закрыть переменную в файле MD - PullRequest
0 голосов
/ 07 ноября 2018

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

У вашего сайта проблемы со сборкой: переменная {{a} в строке 50 в functions / node_modules / balance-match / README.md не была правильно закрыта с}}. Для получения дополнительной информации см. 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 Ответ

0 голосов
/ 07 ноября 2018

Вам необходимо выйти из синтаксиса шаблона с помощью {% 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 получит нужный вам контент.

...