9

使用 Redcarpet,当我在降价中包含以下内容时,它不尊重任何换行符或缩进。我在行尾尝试了两个空格。代码之间的额外行。似乎没有任何效果。

```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>
4

4 回答 4

5

尝试将降价结果包装在find_and_preserveHaml 帮助器中

# 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_preserveHaml 帮助程序包装渲染调用时,markdown 输出中标记内的所有换行符<pre>都将使用等效的 HTML 实体进行转义,然后 Haml 自动缩进将忽略它们。

于 2012-05-08T18:59:13.083 回答
4

<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. <pre>将您的 CSS 设置为在块中使用预格式化:

    pre { white-space:pre }
    
于 2012-05-03T20:28:05.500 回答
3

在 Github 上,我需要做的就是用<pre></pre>标签包装我的缩进/格式化文本。

于 2013-08-13T16:05:53.860 回答
0

试试这个脚本来隔离它是在你的应用程序中还是在红地毯上。

我无法重现您遇到的问题(使用 redcarpet-2.1.1 gem)。把它放到一个文件中,然后运行它(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>
于 2012-05-03T19:58:45.407 回答