Markdown 解析标记时保留HTML实体

Markdown 解析标记时保留HTML实体,markdown,jekyll,kramdown,Markdown,Jekyll,Kramdown,我已经用尽了我的研究,尝试了很多方法都没有效果,我希望我忽略了一些简单的解决方案: 我正在使用一个Jekyll站点为电子邮件生成HTML文件,并且需要为特殊字符使用HTML实体(例如em破折号和智能引号),以避免不正确的符号解释(由于复杂性,内容类型/字符集有时会从电子邮件头中剥离,我在这里将不进行讨论。) 我的问题是,解析我的标记似乎会在输出为HTML时将所有编写的HTML实体转换为特殊字符,并且我无法使用常见方法进行转义。当我键入时转换为markdown以生成右卷曲引号,它将转换为my HT

我已经用尽了我的研究,尝试了很多方法都没有效果,我希望我忽略了一些简单的解决方案:

我正在使用一个Jekyll站点为电子邮件生成HTML文件,并且需要为特殊字符使用HTML实体(例如em破折号和智能引号),以避免不正确的符号解释(由于复杂性,内容类型/字符集有时会从电子邮件头中剥离,我在这里将不进行讨论。)

我的问题是,解析我的标记似乎会在输出为HTML时将所有编写的HTML实体转换为特殊字符,并且我无法使用常见方法进行转义。当我键入
转换为markdown以生成右卷曲引号,它将转换为my HTML中的
符号(而不是在my HTML中保留
)。如果我尝试用反勾号将其转义,它将不会在HTML中转换
,但会将其放置在
标记中,从而使其呈现为
而不是
。有没有一种方法可以为特殊字符保留键入的HTML实体,或者更好的是,在解析时将特殊字符转换为HTML实体(在HTML中)

我正在使用Kramdown markdown解析器和Jekyll。我甚至在Kramdown中将
实体输出
选项指定为
:作为输入
,但没有成功。非常感谢您的帮助

如文件所述:

因此,让我们试试这些选项:

$ kramdown --version
1.11.1 
$ kramdown
‘foo’
<p>‘foo’</p>
$ kramdown --entity-output=as_input
&lsquo;foo&rsquo;
<p>&lsquo;foo&rsquo;</p>
$ kramdown --entity-output=symbolic
&lsquo;foo&rsquo;
<p>&lsquo;foo&rsquo;</p>
$ kramdown --entity-output=numeric
&lsquo;foo&rsquo;
<p>&#8216;foo&#8217;</p>
$ kramdown --entity-output=as_char
&lsquo;foo&rsquo;
<p>‘foo’</p>
$ ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
$kramdown--版本
1.11.1 
$kramdown
&现状;foo&rsquo;
“福”

$kramdown——实体输出=作为输入 &现状;foo&rsquo; &现状;foo&rsquo

$kramdown--实体输出=符号 &现状;foo&rsquo; &现状;foo&rsquo

$kramdown--实体输出=数字 &现状;foo&rsquo; ‘;富’

$kramdown--实体输出=作为字符 &现状;foo&rsquo; “福”

$ruby——版本 ruby 1.9.3p484(2013-11-22修订版43786)[x86_64-linux]

注意,我有Kramdown版本1.11和Ruby版本1.9。如果您有早期版本,则可能无法正常工作。

在您的_config.yml中,您可以配置kramdown,使html实体保持在代码中编写的状态:

kramdown:
  entity_output: :as_input

看。

大概是这样吧?(可能需要一些轻微的调整,因为我在那里或github页面上看到的所有示例也转换为<和>,但我想这可能是一个起点。)谢谢,今天再次尝试实体输出的kramdown选项似乎正在按照文档中的说明工作。可能是打字错误,非常感谢您确认这是正确的方法!谢谢,我想我的部分问题可能是第二个缺失的冒号。干杯
kramdown:
  entity_output: :as_input