2011-07-11 64 views
54

我正在製作一個框架,讓開發人員使用reStructuredText描述他們的軟件包。我想將這個reStructuredText解析成HTML,這樣我就可以在GUI中顯示它。解析reStructuredText爲HTML

我熟悉優秀的獅身人面像,但我從未解析過reStructuredText。我想像一個函數需要一串reStructuredText,可能還有幾個附加參數,並返回一串HTML。

所以我看着Docutils,它負責解析reStructuredText。我根本無法理解如何找到這個功能。網絡上的文檔是很重要的。 docutils.parsers.rst模塊中的許多功能似乎都是針對文件名的。我沒有文件名!我只是處理字符串。

我試圖創建一個ParserDocument並使用parse方法,但我剛剛得到關於缺少.tab_width設置的錯誤。

有誰知道如何解析reStructuredText到HTML?

回答

60

嘗試這樣:

>>> from docutils.core import publish_string 
>>> publish_string("*anurag*", writer_name='html') 

publish_string接受一個字符串,並輸出一個字符串,也可以使用publish_parts將HTML文檔的特定部分如

>>> from docutils.core import publish_parts 
>>> print publish_parts("*anurag*", writer_name='html')['html_body'] 
<p><em>anurag</em></p> 
+5

你的第二個建議是更有效的:「body」正是我想要的。 –

+2

您應鏈接到文檔(http://docutils.sourceforge.net/docs/api/publisher.html#publish-parts-details)!而且,FWIW,這裏是一些相關的代碼片段:http://code.activestate.com/recipes/193890-using-rest-restructuredtext-to-create-html-snippet/ –