簡體   English   中英

代碼塊中的Markdown換行符

[英]Markdown Line Breaks in Code Blocks

使用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設置:

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>

嘗試將markdown結果包裝在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幫助器包裝render調用時,markdown輸出中<pre>標記內的所有換行都會使用等效的HTML實體進行轉義,然后Haml自動縮進將忽略它們。

解析的結果在我的<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 } 

在Github上,我需要做的就是用<pre></pre>標簽包裝我的縮進/格式化文本。

嘗試使用此腳本來隔離您的應用程序或redcarpet中的內容。

我無法重現你所擁有的問題(使用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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM