降价换行符代码块(Markdown Line Breaks in Code Blocks)

2019-09-17 00:45发布

用隆重的接待,当我有类似的东西在我的降价以下,它不尊重任何换行符或缩进。 我试过两个空间在线路末端。 代码之间额外的线路。 似乎没有任何工作。

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

```

我懂了:

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

以下是隆重的接待设置:

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上?

更新 -和源的样子:

<pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
                &lt;hash&gt;
                &lt;money&gt;3&lt;/money&gt;
                &lt;/hash&gt;  
                </code></pre>

Answer 1:

尝试包裹在降价结果find_and_preserve Haml的帮手

# Assuming a setup like this:
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
code_snippet = "    <xml>\n      <tag/>\n    </xml>"

# This should prevent undesirable spaces within code blocks:
find_and_preserve(markdown.render(code_snippet)).html_safe

当您缠绕与渲染调用find_and_preserve Haml的帮手,内的所有新行<pre>在降价输出标签逃脱相当于HTML实体,然后Haml的自动缩进将忽略它们。



Answer 2:

解析的结果具有内部换行<pre>块对我来说:

require 'redcarpet'
md = Redcarpet::Markdown.new(Redcarpet::Render::HTML, fenced_code_blocks:true)

puts md.render("```xml\n<foo>\n</foo>\n```")
#=> <pre><code class="xml">&lt;foo&gt;
#=> &lt;/foo&gt;
#=> </code></pre>
  1. 确认您看到在输出HTML类似的包装
  2. 设置你的CSS使用中的预格式化<pre>块:

     pre { white-space:pre } 


Answer 3:

在GitHub上,所有我需要做的是换我缩进/格式化文本<pre></pre>标签。



Answer 4:

试试这个脚本来隔离无论什么东西在你的应用程序或隆重的接待。

我无法重现您遇到(有隆重的接待-2.1.1宝石)的问题。 要把它放到一个文件中,然后运行它( ruby redcarpet_test.rb ):

require 'rubygems'
require 'redcarpet'

md = %Q{...
```xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
   <money>3</money>
</hash>
```
...}

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

与适当的结果:

<p>...
<code>xml
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;hash&gt;
   &lt;money&gt;3&lt;/money&gt;
&lt;/hash&gt;
</code>
...</p>


文章来源: Markdown Line Breaks in Code Blocks