【问题标题】:How to disable indented code blocks in Kramdown for use in Jekyll如何在 Kramdown 中禁用缩进代码块以在 Jekyll 中使用
【发布时间】:2017-02-02 16:58:15
【问题描述】:

我想完全禁用 Jekyll 中使用的 Kramdown 的缩进代码块。我习惯使用反引号方法。我禁用缩进代码块的主要原因是我在典型的post.md 中使用了相当多的 html,我在下面提供了一个示例:

<div class="notice--danger" markdown="1">
  <details>
    <summary>
      <svg class="icon"><use xlink:href="#icon-youtube-square"></use></svg>
    </summary>
    <div markdown="1">
      <figure>
        <iframe width="560" height="315" src="https://www.youtube.com/embed/VIDEO_ID?playsinline=1" frameborder="0"></iframe>
      </figure>
    </div>
  </details>
</div>

问题在于,启用缩进代码块后,它会被作为代码块捕获。有一个现有的解决方法,即不缩进上述任何代码,在这种情况下,这将按预期呈现。但出于多种原因,我想正确格式化代码(最佳实践,主要是这样我可以在 atom、vim 等编辑器中折叠代码)

有没有办法做到这一点。我发现了另外两个帖子,说可能有一种方法可以删除 kramdown 的缩进代码块功能并将其加载到我的 Jekyll 中。但那些帖子只是表明这是可能的。

如果可能的话,我想这样做。另外,这是我的config.yml 中的 kramdown 特定部分:

markdown                 : kramdown
kramdown:
  toc_levels             : 1..3
  input                  : GFM
  hard_wrap              : false
  auto_ids               : true
  entity_output          : as_char
  smart_quotes           : lsquo,rsquo,ldquo,rdquo
  enable_coderay         : false

谢谢。

【问题讨论】:

    标签: jekyll kramdown


    【解决方案1】:

    您可以使用 markdown 标签属性禁用 kramdown 解析。

    <div markdown="0">
       <p>No kramdown parsing here</p>
    </div>
    

    必读:https://kramdown.gettalong.org/syntax.html#html-blocks

    【讨论】:

      【解决方案2】:

      来自 Kramdown 的作者:

      缩进的代码块是 Markdown 语法的一部分,所以 kramdown GFM 解析器正在使用它们。如果你不想要它们,最简单的 方法是创建一个基于 kramdown(或 GFM)的自定义解析器 解析器并删除缩进的代码块解析例程。看一看 在 https://github.com/gettalong/kramdown/blob/master/lib/kramdown/parser/markdown.rb 看看如何创建这样一个自定义解析器。

      来源:Ability to disable indented code blocks

      【讨论】:

        猜你喜欢
        • 2014-04-13
        • 1970-01-01
        • 2017-11-25
        • 1970-01-01
        • 2016-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-02
        相关资源
        最近更新 更多