2012-08-30 70 views
1

我是一名初學者程序員,我一直試圖在我的web應用程序中使用python markdown庫。一切工作正常,除了nl2br擴展。Python Markdown nl2br擴展

當我嘗試使用md.convert(文本)將文本文件轉換爲html時,它看不到將換行符轉換爲<br>

例如,我在轉換前,該文本是:

Puerto Rico 

=========== 

------------------------------ 

### Game Rules 





hello world! 

我轉換後,我得到:

<h1>Puerto Rico</h1> 
<hr /> 
<h3>Game Rules</h3> 
<p>hello world!</p> 

我的理解是,空白空間被 '\ n' 代表並應轉換爲<br>,但我沒有得到該結果。這裏是我的代碼:

import markdown 
md = markdown.Markdown(safe_mode='escape',extensions=['nl2br']) 
html = md.convert(text) 

請讓我知道如果你有任何想法或可以點我在正確的方向。謝謝。

+0

我基本上得到了與這個mardown編輯器相同的響應/輸出。它不包括輸出中的換行符。 [hashify.me](http://hashify.me/IyBUaXRsZQ==) –

回答

1

嘗試增加兩個或多個空格在一行的末尾插入<br/>標籤

實施例:

hello 
world 

導致

<p>hello <br> 
world</p> 

注意,有兩個空間後這個詞你好。這僅適用於在行尾有兩個空格之前有一些文本的情況。但這與您的nl2br擴展無關,這是降價標準。

我的建議是,如果你沒有明確地做這種轉換,就不要這樣做。使用段落別名<p> -tags是分離文本區域的更簡潔的方式。

如果您只是想你<h3>頭條新聞之後,有更多的空間,然後爲它定義一些CSS:

h3 { margin-bottom: 4em; } 

圖片,如果你有<br>標籤都有效的所有500個維基頁面和後您的頭條新聞後間距你認爲這是20px太多的空間。然後,您必須手動修改所有頁面,並在每個頁面上刪除兩個<br>標籤。否則,你只需在一個css文件中編輯一行。

+0

感謝您的建議。我嘗試過,但它給了我相同的html輸出。 –

+0

以示例更新我的答案 – apparat

+0

感謝您對它進行調查。現在,我會使用你的建議和修改與CSS。我的腦袋在試圖弄清楚nl2br擴展方面太多了。 :( –