Jekyll:行号不是从第一行开始的

时间:2017-12-05 15:09:54

标签: css jekyll blogs rouge

我使用Jekyll创建了我的网站,准确地使用Beatiful-Jekyll主题。 对于语法高亮,我使用了Rouge。当我不显示行号时,一切都很好。当我显示行号时,有时行号不会从第一行代码开始(最后一行,它们在结束前停止一些行)。有时它们与代码一致,有时不符合。

以下是一切正常的例子:

works_fine

下面是一个示例,其中行号与行代码对齐,但缺少第一行和最后一行号(在另一个示例中,前三个和后三行丢失)。

lines_missing

最后一个例子是行号与行号不对齐的地方:

lines_not_aligned

我认为这个问题来自于linenos。要显示行号,我使用

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

因为我在_config.yml文件中尝试了以下配置:

kramdown:
  input: GFM
  syntax_highlighter: rouge

  syntax_highlighter_opts:
    css_class: 'highlight'
    span:
      line_numbers: false
    block:
      line_numbers: true
      start_line: 1

在这种情况下,默认显示的行号正确显示,但使用{%highlight linenos%}显示的行号仍然不好。

default_line_numbering_without_linenos

提前致谢

2 个答案:

答案 0 :(得分:0)

我知道这是一篇过时的文章,但是我很难找到答案,因此将我的发现发布在这里。

TL; DR将minify_html设置为false并使用下面的液体缩小html页面。这在Jekyll 4.0.0版中有效

编辑1。

进一步的调查显示,代码括号内的尾部空格也会引起类似的行为。

text
text

最后一个空行在最小化html的同时中断了pre标签。当捕获输出html并将换行符转换为br并使用br标签分割整个html字符串时,会发生这种情况,因此尾随的空行会丢失。 (可能会使用空格而不是空行,但我没有尝试)

结束编辑1。

我遇到了同样的问题。我的本地“ jekyll服务”服务器很好,但是Gitlab页面像问题中的示例一样显示了它。这使我意识到,在本地运行站点时,通常将“ minify_html”设置为false,结果当我将minify_html设置为true时,本地版本也损坏了。我完全删除了jekyll default minify_html,并使用了下面的代码。

  1. 创建新布局,无论您叫什么名字。
  2. 将以下代码粘贴到其中。
{%- capture to-compress -%}
    {{ content }}
{%- endcapture -%}

{%- assign inside-code-block = false -%}
{%- capture to-remove-br -%}
    {%- assign lines = to-compress | newline_to_br | split: '<br />' -%}
    {%- for line in lines -%}

        {%- if line contains "<code>" -%}
            {%- assign inside-code-block = true -%}
        {%- elsif line contains "</code>" -%}
            {%- assign inside-code-block = false -%}
        {%- endif -%}

        {%- if inside-code-block == true -%}
            {{ line }}
        {%- else -%}
            {{ line | lstrip }}
        {%- endif -%}

    {%- endfor -%}
{%- endcapture -%}
{{ to-remove-br }}
  1. 转到现有布局,然后将刚创建的布局添加到其前件中,如下所示:
    layout: <name of the layout you made>

这段代码是我个人尝试缩小html的实验,它似乎有效。代码会忽略<code>标记内的所有内容,因此markdown语法应该可以正常工作。

当我尝试使https://jch.penibelst.de/布局正常工作时(我无法做到),我有了主意。

液体语法帮助:
-https://shopify.github.io/liquid/basics/whitespace/
-https://github.com/Shopify/liquid/wiki/Liquid-for-Designers

答案 1 :(得分:0)

我刚刚用这些选项遇到了这个问题:

kramdown:
  syntax_highlighter_opts:
    block:
      line_numbers: true

我使用的代码块开头有一个空行。空行是问题所在。因为我想要空行(对于关于代码格式问题的帖子),我发现只需在行上放置一个空格就可以解决对齐问题。