Подтвердить что ты не робот

Вложение 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>
4b9b3361

Ответ 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>