Вложение Markdown в Jekyll HTML
Я пытаюсь вставить уценку в файл HTML при использовании Jekyll. Есть ли способ достичь чего-то вроде следующего?
# index.html
---
layout: default
---
<p>[Stack Overflow](http://www.stackoverflow.com)</p>
Примечание. Я знаю, что я мог бы сделать это вместо этого.
# index.html
---
layout: default
---
<p><a href="#" onclick="location.href='http://www.stackoverflow.com'; return false;">Stack Overflow</a></p>
Ответы
Ответ 1
Здесь вы можете определить блок уценки с Jekyll plugin:
module Jekyll
class MarkdownBlock < Liquid::Block
def initialize(tag_name, text, tokens)
super
end
require "kramdown"
def render(context)
content = super
"#{Kramdown::Document.new(content).to_html}"
end
end
end
Liquid::Template.register_tag('markdown', Jekyll::MarkdownBlock)
(Чтобы установить этот фрагмент как плагин, поместите его в файл *.rb
в директорию _plugins
исходного корня исходного сайта)
Затем используйте его следующим образом:
{% markdown %}
[Stack Overflow](http://www.stackoverflow.com)
{% endmarkdown %}
EDIT: см. ответ @Cristian для лучшего решения! Если вы используете Kramdown (что, скорее всего, так, как вы используете Jekyll), вы можете использовать его для рендеринга уценки внутри div
с атрибутом markdown="1"
.
Ответ 2
Если вы используете Kramdown на основе своего документа, вы можете сделать это:
<div markdown="1">
My text with **markdown** syntax
</div>
И таким образом текст внутри div
отображается как уценка.
Обязательно используйте расширение .md
или .markdown
для файла, так как .html
файлы не отправляются в Kramdown для обработки!
Ответ 3
@sunny-juneja, проверьте Liquid Extension Filter с именем markdownify
:
https://github.com/mojombo/jekyll/wiki/liquid-extensions#markdownify
Используйте его следующим образом:
<p>{{ '[Stack Overflow](http://www.stackoverflow.com)' | markdownify }}</p>
Поместите одиночные или двойные кавычки вокруг вашей строки внутри тега Output.
Работает для меня на Jekyll 1.0.0beta3
Ответ 4
Взгляните на Paul Irish Gist для JS-кода, который может интерпретировать разделы вашей страницы от Markdown до HTML.
Ответ 5
Как и в текущем Jekyll 3.6.2, жизнь может быть намного проще с двумя следующими вариантами:
![введите описание изображения здесь]()
<div>
{{ "## Yes, this renders as markdown" | markdownify }}
</div>
обратите внимание на атрибут markdown:
<div markdown="1">
## some markdown
inside some html. `snippet` _italic_ **bold**
</div>