代码块中的Markdown换行符

使用Redcarpet,当我在我的降价中包含以下内容时,它不会考虑任何换行符或缩进。 我在线的末尾尝试了两个空格。 代码之间的额外行。 似乎没什么用。

```xml   3  ``` 

我知道了:

   3  

以下是Redcarpet设置:

 Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true, :fenced_code_blocks => true, :no_intra_emphasis => true, :lax_html_blocks => true) 

我需要做些什么来使线条正确断开并保留缩进,就像这里或GitHub一样?

更新 – 源代码如下:

 
<?xml version="1.0" encoding="UTF-8"?> <hash> <money>3</money> </hash> 

尝试将markdown结果包装在find_and_preserve Haml助手中

 # Assuming a setup like this: markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML) code_snippet = " \n \n " # This should prevent undesirable spaces within code blocks: find_and_preserve(markdown.render(code_snippet)).html_safe 

使用find_and_preserve Haml助手包装render调用时,markdown输出中


标记内的所有换行都会使用等效的HTML实体进行转义,然后Haml自动缩进将忽略它们。

解析的结果在我的


块中有换行符:

 require 'redcarpet' md = Redcarpet::Markdown.new(Redcarpet::Render::HTML, fenced_code_blocks:true) puts md.render("```xml\n\n\n```") #=> 
<foo> #=> </foo> #=> 

  1. 确认您在输出HTML中看到类似的包装器
  2. 设置CSS以在

    
    

    块中使用预格式化:

     pre { white-space:pre } 

在Github上,我需要做的就是用


标签包装我的缩进/格式化文本。

尝试使用此脚本来隔离它是应用程序还是redcarpet中的内容。

我无法重现你所拥有的问题(使用redcarpet-2.1.1 gem)。 把它放到一个文件中,然后运行它( ruby redcarpet_test.rb ):

 require 'rubygems' require 'redcarpet' md = %Q{... ```xml   3  ``` ...} r = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true, :fenced_code_blocks => true, :no_intra_emphasis => true, :lax_html_blocks => true) puts r.render md 

结果恰如其分地:

 

... xml <?xml version="1.0" encoding="UTF-8"?> <hash> <money>3</money> </hash> ...