我正在使用maruku(ruby)解析一些标记格式的文本。我在格式化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”测试了我的降价输入,它按我的预期呈现(即,一个块中的两行代码,都在同一级别缩进)。但对于马鲁库来说,这是铺位。
我也试过用rdiscount,但我得到了同样的效果。我用Maruku是因为我需要定义列表。
如何格式化它:
这是正常线路
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!");

最佳答案

原来这不是马鲁库的问题,而是哈姆的问题。
当谈到空格和保留它时,haml很挑剔。该解决方案需要在渲染时使用= preserve @my_html_string
例如,给定layout.haml

!!! 5
%html
    %body
        = yield

index.haml
%article
    = preserve @my_html_fragment_with_pre_and_code

然后它会正确地呈现给我。

09-07 22:01