帖子

时间:2015-05-14 09:12:23

标签: markdown jekyll github-pages kramdown

我有一个Jekyll网站,使用Kramdown解析器在Markdown中编写帖子。

我想在帖子中添加一些原始HTML。但是,当我尝试添加HTML时,它会将其解析为markdown(例如,将<更改为&lt;)。

我试过了:

  • 在自己的段落中添加HTML。
  • 包含.html文件。
  • markdown="0"添加到HTML代码中(也尝试了1)。
  • 使用上述所有内容进行缩进(并以三重反向打包)。
  • 使用原始代码

我的例子:

Some **markdown** `here`

<iframe src="asd"></iframe>

More *markdown*.

iframe应该输出为HTML,而不是解析文本。

我正在使用Github页面,因此Jekyll扩展不是可选的。

2 个答案:

答案 0 :(得分:10)

HTML被忽略,因为某些标签attr没有引号。例如,width=500应为width="500"

不需要其他任何东西。 HTML是在它自己的段落中没有缩进并且它被解析。

答案 1 :(得分:6)

对于其他人作为参考,为了确保Kramdown不处理/解析RAW HTML,可以添加属性markdown="0"。这将确保Kramdown解析器不会触及HTML标记块。

示例:

Input Markdown: - hello

Output HTML:

          <ul>
           <li>hello</li>
          </ul>

使用属性markdown = "0"

Input markdown: <div markdown = "0"> - hello </div>

Output HTML: <div markdown = "0"> - hello </div>

来自Kramdown documentation(提示:使用您的浏览器查找关键字&#39; raw&#39;跳转到相关部分):

  

如果HTML标记的属性为markdown =&#34; 0&#34;,则标记将被解析为原始HTML块。

     

如果HTML标记的属性为markdown =&#34; 1&#34;,则为默认值   使用此标记中解析语法的机制。

     

如果HTML标记有属性markdown =&#34; block&#34;,那么内容为   标记被解析为块级元素。

     

如果HTML标记的属性为markdown =&#34; span&#34;,则其内容为   标签被解析为跨度级元素。

此外,所有常规XML标记都被解析为原始HTML块。