【问题标题】:Jekyll: Fenced code blocks with line numbersJekyll:带有行号的围栏代码块
【发布时间】:2014-08-05 07:20:10
【问题描述】:

我正在尝试使用 Jekyll 将行号添加到 markdown 中的围栏代码块。

我尝试同时使用kramdownredcarpet 并将line_numbers: true 添加到_config.yml 文件(在正确的渲染器配置块下),但我似乎无法获得代码块上的行号。

解决方案: 原来我所要做的就是切换回kramdown(默认降价渲染器)并以{% highlight <language> linenos %}开始代码块,代码块得到行号。

【问题讨论】:

    标签: markdown jekyll


    【解决方案1】:

    我使用了this great post。它对我有用。至于行号使用,

    {% highlight <language> linenos %}
         <code>
     {% endhighlight %}
    

    在我的博客上查看an example,看看这是不是你想要的。

    【讨论】:

    • 谢谢!您的回答为我指明了正确的方向。事实证明,问题并没有那么复杂。我需要做的就是切换回kramdown 并以{% highlight &lt;language&gt; linenos %} 开始代码块。
    • @mbanzon 很酷。只是好奇,不是同样适用于红地毯吗?
    • 使用 redcarpet 我用三个“连字符”开始块(就像在 SO 和 GitHub 上一样),并使用以下语言/语法(没有空格)。之后我尝试放置的任何东西都没有奏效。
    • @mbanzon 使用与解决方案中相同的语法也应该适用于recarpet。另外不要忘记在_config.yml 中添加pygments: true
    • 我明白了你的意思(在稍微修改之后)-我很高兴行号现在可以工作-如果我将来遇到任何其他问题,将决定使用哪个渲染器-谢谢你们的意见;-)
    【解决方案2】:

    因为我爱上了pandoc,我建议你使用 pandoc markdown 编译器:

    添加潘多克

    安装pandoc 编译器,例如在 debian 上通过sudo apt install pandoc

    将此添加到您的_config.yaml

    markdown: Pandoc
    gems:
      - jekyll-pandoc
    

    然后将jekyll-pandoc gem 添加到您的 Gemfile:

    group :jekyll_plugins do
        # here are your other gems
        gem "jekyll-pandoc"
    end
    

    如果您遇到问题,请参阅我最后提供的官方资源。

    使用 Pandoc 行号

    当您成功设置jekyll-pandoc 后,您可以像这样简单地使用它:

    ~~~~ {.java .numberLines startFrom="1"}
    class MyClassPresentedWithLineNumbersViaPandoc {
      void lineNumberedFunction() {};
    }
    ~~~~
    

    这将启用java 代码突出显示和从1 开始计数的行号。

    有关默认外观的示例,请查看at this listing in my blog

    官方资源

    jekyll-pandoc

    pandoc

    【讨论】:

      【解决方案3】:

      我更喜欢代码围栏```~~~而不是{% highlight %},因为markdown预览器可以处理它,而且我习惯于写它更自然。

      代码围栏也可以使用该语言。例如。 ```java 将启动一个 java 代码块。

      我使用jekyll v4.2 和kramdown 与荧光笔rouge

      我的配置文件_config.yml

      kramdown:
        syntax_highlighter: rouge
        syntax_highlighter_opts:
          block:
            line_numbers: true
      

      魔法是syntax_highlighter_opts -> block -> line_numbers: true。

      &lt;span&gt; 元素也有一个选项,但我从未尝试过。

      kramdown:
        syntax_highlighter: rouge
        syntax_highlighter_opts:
          block:
            line_numbers: true
          span:
            line_numbers: true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-25
        • 1970-01-01
        • 1970-01-01
        • 2013-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多