Я работаю с Jekyll и хочу использовать {% include... %}
, чтобы включить фрагмент HTML в файл разметки без обработки HTML-кода далее, то есть обрабатываться процессором уценки, как если бы это был только встроенный HMTL.Запретить HTML, включенную в файл уценки, обрабатываемый далее Jekyll?
Примечание: Я использую redcarpet markdown (а не, например, kramdown).
Может ли это быть обработано с помощью Jekyll-плагина?
Я создал репозиторий GitHub md-include-html со следующими файлами, которые демонстрируют мою проблему.
1. _layouts/default.html
содержит:
<div>
{{ content }}
</div>
2. md-page.md
содержит:
---
layout: default
---
A
{% include_relative html-snippet.html %}
B
3. html-snippet.html
содержит:
</div>
<!-- Some arbitrary HTML for {{ page.path }} -->
<div>
Обратите внимание, что я первый попытке закрыть div, который будет представлен _layouts/default.html
и th en открыть новый div в конце.
Это приводит к _site/md-page.html
:
<div>
<p>A</p>
<p></div>
<!-- Some arbitrary HTML for md-page.md -->
<div></p>
Посмотрите, как мой комментарий был обработан и мое содержание, завернутый в <p>...</p>
.
Кажется, что включение происходит до обработки уценки, и нет способа сказать процессору уценки обрабатывать включенный текст по-разному.
Так что я могу включать уценки в HTML-файл с чем-то вроде этого (см html-page.html
в моем репо):
{% capture snippet_content %}
{% include_relative md-snippet.md %}
{% endcapture %}
{{ snippet_content | markdownify }}
Но я не могу включить HTML в файле уценки.
Я не вижу пути вокруг этого без функции уценки (что-либо, что делается в Liquid, по сути, происходит слишком рано), чтобы временно отключить обработку уценки.
E.g.
A
<markdown-off>{% include_relative html-snippet.html %}</markdown-off>
B
Да, я знаю, что теги не выглядят очень уцененными, но вы понимаете, что я имею в виду.
Будет ли какой-то способ сделать это с помощью Jekyll-плагина? Я посмотрел на те, что были упомянуты в документации plugin page документации Jekyll, но ничего не заметил.
Когда я первоначально отвечал на этот вопрос, я не указано 'уценки: redcarpet' в' _config. yml' в репо, демонстрируя эту проблему. У меня сейчас - поскольку это тип уценки, который я использую в своем реальном проекте. –