3

我正在使用 Maruku (Ruby) 来解析一些 Markdown 格式的文本。尝试格式化code这样的块时遇到问题:

This is a normal line
# pretend this line is empty
    printf("First line of code is OK");
    printf("Second line of code (or any line thereafter) appears indented by an extra level, which is incorrect!");

所以我的第一行代码(我在我的 md 文件中缩进了 4 个空格(或一个制表符),正如我所期望的那样呈现。但是,我的第二行代码(缩进完全相同的空格数)最终在生成 HTML 时缩进了额外的 4 个空格。

输出如下所示:

This is a normal line
<pre><code>printf("First line of code is OK");
      printf("Second line of code (or any line thereafter) appears indented by an extra level, which is incorrect!");</code></pre>

我已经用 Gruber 的“Dingus”测试了我的 Markdown 输入,它按我的预期呈现(也就是说,两行代码都在一个块中,都在同一级别缩进)。但是对于Maruku,它是铺位的。

我也尝试过使用 RDiscount,但效果相同。我使用 Maruku 是因为我需要定义列表。

SO如何格式化它:

这是一条正常线

printf("First line of code is OK\n");
printf("Second line of code (or any line thereafter) appears indented by an extra level, which is incorrect!");
4

1 回答 1

7

事实证明,这不是 Maruku 问题,而是 HAML 问题。

当涉及到空白和保留它时,HAML 很挑剔。= preserve @my_html_string渲染时需要使用该解决方案。

例如,给定layout.haml

!!! 5
%html
    %body
        = yield

index.haml

%article
    = preserve @my_html_fragment_with_pre_and_code

然后它会为我正确渲染。

于 2011-06-13T18:39:03.093 回答