Jekyll 博客高亮代码生成无效的 html
Posted
技术标签:
【中文标题】Jekyll 博客高亮代码生成无效的 html【英文标题】:Jekyll blog highligth code produce invalid html 【发布时间】:2015-07-16 10:31:09 【问题描述】:使用 Jekyll,我有这个文件:
#_posts/2015-06-20-post.textile
blablabla:
% highlight bash %
$ ruby example_blocks_1.rb
[0, 2, 4, 6]
hello world
hello world
hello world
hello world
hello world
hello world
% endhighlight %
bla bla bla
这是生成的html:
<p>blablabla:</p>
<p><div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="gp">$ </span>ruby example_blocks_1.rb
<span class="o">[</span>0, 2, 4, 6]
hello world
hello world
hello world
hello world
hello world
hello world</code></pre></div></p>
<p>blablabla</p>
如果您将 html 放入这样的验证器中:https://validator.w3.org/nu/ 你可以看到:
Error: No p element in scope but a p end tag seen.
好像html不正确,可以参考这里:http://www.w3.org/TR/html401/struct/text.html#h-9.3.1 事实上 p 标签不能包含块级标签
Jekyll 为我生成 html,但我无法修复该行为。这似乎是一个错误。
这是我的_config.yml
markdown: kramdown
highlighter: rouge
你能帮帮我吗?
【问题讨论】:
由于方括号在 Markdown 中具有特殊含义,因此转义它应该会有所帮助:\[0, 2, 4, 6\]
。
对不起,但对我不起作用
@user1066183 我相信您可以通过为 [0,2,4,6] 和最后一个 hello world 之间的所有内容添加一个制表符或 4 个空格来解决这个问题?这告诉markdown它是一个代码块。这台机器上没有 jekyll,所以试一试
@matrixanomaly 谢谢我已经解决了解析代码中的所有空白。看我的回答。谢谢。
【参考方案1】:
已解决。问题是
之后的空白例子:
% endhighlight %
在最后一个 % 之前有 2 个空格,在最后一个 之后还有其他空格(我们看不到它们,但它们存在)
【讨论】:
以上是关于Jekyll 博客高亮代码生成无效的 html的主要内容,如果未能解决你的问题,请参考以下文章