2013-08-26 38 views
-1

我正在使用Editorial用markdown寫我的wordpress博客文章。從HTML中刪除空行,除了在<code></code>塊

markdown解析器完美地輸出HTML代碼,Editorial嵌入式查看器顯示帶有特定格式和樣式的結果。
但是,當我將HTML粘貼到Wordpress手機編輯器中時,它顯示的文本格式不正確,顯示的空行太多。

例如:

# Header 
Hello world, **this is Markdown!** 

Other markdown paragraph!. 

被解析到:

<h1>Header</h1> 

<p>Hello world, <strong>this is Markdown!</strong></p> 

<p>Other markdown paragraph!. </p> 

這是觀衆表現爲:

enter image description here

這是我所期待的。

WordPress的移動應用程序,而另一方面,顯示HTML代碼:

enter image description here

正如你所看到的,有太多的空行。

我認爲CSS的Wordpress的具有被配置爲把上述一個空行,和一個空行波紋管段落和標題的餘量。 但我無法修改該CSS,所以我的蠻力解決方案用於刪除HTML代碼段落之間的空行。這工作正常,但過程是乏味的。

所以我想用編輯的強大工具來構建一個自動化過程的工作流程。
目標是編寫一個Python腳本,它需要生成的HTML並擦除空行,注意不要擦除位於代碼塊的空行,這些代碼都是源代碼示例。

我在想使用正則表達式來尋找空行並放棄代碼塊的解決方案,但我對Python及其庫很新穎,所以我嘗試過的代碼片段沒有工作。

任何人都可以爲我提供一個如何實現這個目標的例子,或者是一個自己編寫它的一般基準線嗎?

感謝。

PD:在沒有任何示例的情況下發布這樣的問題/我嘗試過的代碼是一個非常糟糕的主意,我知道,但是我的python代碼是沒有任何意義的noob-messy-一堆代碼,所以我決定不發佈它。

回答

2

讓我們假設你已經加載HTML文本(HTML):

HTML = """ 
html 
html 

html 

code-start 
code 
code 

code 
code-end 

""" 

new_html = "" 
is_code = False 
for line in HTML.split('\n'): 
    # disable empty line remover when code starts 
    if line == 'code-start': 
     is_code = True 
    # check for empty line/is_code 
    if is_code or line != '': 
     new_html += line+'\n' 
    # enable empty line remover when code ends 
    if line == 'code-end': 
     is_code = False 

print new_html   

當然,你必須更換代碼開始代碼高端與有效的HTML標籤。

這只是一個快速和骯髒的方法,但應該幫助你。

+0

謝謝!這工作。這是最終的工作流程:http://editorial-app.appspot.com/workflow/5791918017478656/gpytDf5xaJQ – Manu343726