[英]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><?xml version="1.0" encoding="UTF-8"?>
<hash>
<money>3</money>
</hash>
</code></pre>
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"><foo>
#=> </foo>
#=> </code></pre>
設置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
<?xml version="1.0" encoding="UTF-8"?>
<hash>
<money>3</money>
</hash>
</code>
...</p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.