在杰基尔HTML嵌入降价(Embedding Markdown in Jekyll HTML)

2019-08-21 04:22发布

在使用杰基尔我想窝在降价HTML文件。 有没有办法实现类似于下面的东西?

# index.html

---
layout: default
---


<p>[Stack Overflow](http://www.stackoverflow.com)</p>

注:我知道,我能做到这一点,而不是。

# index.html

---
layout: default
---


<p><a href="http://www.stackoverflow.com">Stack Overflow</a></p>

Answer 1:

这里是你如何定义一个降价块具有杰基尔插件 :

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 %}

编辑 :见@克里斯蒂安的答案更好的解决方案! 如果您使用Kramdown(这是很可能的情况下,因为使用的是化身),你可以使用它的功能,使内降价div的有markdown="1"属性。



Answer 2:

如果您是基于使用Kramdown, 他们的文档 ,你可以这样做:

<div markdown="1">
   My text with **markdown** syntax
</div>

而这样一来,内文div呈现为降价。

确保使用.md.markdown扩展名的文件,如.html文件不会被发送到Kramdown进行处理!



Answer 3:

@晴天-juneja,检查出的液体扩展筛选称为markdownify

https://github.com/mojombo/jekyll/wiki/liquid-extensions#markdownify

使用这样的:

<p>{{ '[Stack Overflow](http://www.stackoverflow.com)' | markdownify }}</p>

把单或双引号的字符串输出标签内。

对我的作品的哲基尔1.0.0beta3



Answer 4:

看看保罗爱尔兰的主旨的JS代码可以解释你的网页的部分从降价到HTML。



Answer 5:

由于当前杰奇3.6.2生活可以更简单了很多有以下两种选择:

<div>
{{ "## Yes, this renders as markdown" | markdownify }}
</div>

注意降价属性:

<div markdown="1">
## some markdown
inside some html. `snippet` _italic_ **bold**
</div>


文章来源: Embedding Markdown in Jekyll HTML