如何在markdown代码块中同时包含高亮显示和文字html标记?

时间:2015-12-30 08:02:59

标签: markdown

有没有办法能够标记/突出显示一段文字,并且在同一个区块内还有文字<html>标签?我想在这里实现像Listing 3.3这样的东西。它不适用于受防护的代码块,因为使用<mark>突出显示文本无效,并且它也不适用于<pre><code>,因为<html>内的<pre><code>标记不会按字面解释标签。我正在使用带有GFM的MacDown。

1 个答案:

答案 0 :(得分:0)

嗯,似乎Macdown uses已成为其Markdown解析器。关于它,似乎没有documentation。因此,我将提供适用于大多数实施的通用答案。

如果你想在同一个代码块中混合使用HTML和原始HTML,你需要构建自己的扩展来实现你想要的功能,或者自己手动构建代码块。建立自己的扩展是超出这个答案的,所以让我们关注后者。

首先,您需要将代码块包装在<pre><code>标记中,并确保不要缩进块的第一行,以便解析器将其视为原始HTML。

其次,将HTML包含在&#34;突出显示&#34; (或者你想做的任何事情),手动创建HTML标签以包装代码块的各个部分。

最后,要在代码块中显示文字HTML,您需要手动转义HTML(或者使用工具为您转义它)。

将三者合并在一起,然后插入Markdown文档。例如,要复制示例,请指向:

<pre><code><span class="hll">HTTP/1.1 302 Moved Temporarily</span>
Cache-Control: no-cache
Content-Type: text/html; charset=utf-8
Location: http://quiet-waters-1228.herokuapp.com/hello
Server: thin 1.6.1 codename Death Proof
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: e9785070-173c-4e8a-bbf5-1686806cbd6b
X-Runtime: 0.007276
X-Ua-Compatible: chrome=1
X-Xss-Protection: 1; mode=block
transfer-encoding: chunked
Connection: keep-alive

&lt;html&gt;
  &lt;body&gt;
    You are being
    &lt;a href="http://quiet-waters-1228.herokuapp.com/hello"&gt;redirected&lt;/a&gt;.
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>

请注意,第一行包含在<span>中,并将一个类指定为样式挂钩。它只需要一些CSS。另请注意,块中稍后的文字HTML将使用&gt;&lt;进行手动转义,以替换尖括号。以上内容将呈现为:

HTTP/1.1 302 Moved Temporarily
Cache-Control: no-cache
Content-Type: text/html; charset=utf-8
Location: http://quiet-waters-1228.herokuapp.com/hello
Server: thin 1.6.1 codename Death Proof
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: e9785070-173c-4e8a-bbf5-1686806cbd6b
X-Runtime: 0.007276
X-Ua-Compatible: chrome=1
X-Xss-Protection: 1; mode=block
transfer-encoding: chunked
Connection: keep-alive

<html>
  <body>
    You are being
    <a href="http://quiet-waters-1228.herokuapp.com/hello">redirected</a>.
  </body>
</html>

当然,您需要为class="hll"添加适当的CSS才能正常工作,我们不会在这里找到。应该在你自己的网站上工作,你可以提供自己的CSS。