2012年8月6日 星期一

筆記:利用 Python 將 Markdown 文件轉成 Mou Style HTML


近期手邊的 API Server 在規劃自動生成 Doc 的功能
而 Survey 許多標記格式以後,最後由極輕量化的 Markdown 勝出
雖然平常在 Mac 下使用 Mou 進行 Markdown 的撰寫是一件輕鬆愉快的事情
但是我希望自動生成出來的 Markdown Doc 轉換成 HTML Doc 的過程不要使用到 Mou
因此 Python 的 markdown module 派上了用場:
import markdown
html = markdown.markdown(your_text_string)


理論上,只要這樣子使用並且注意 your_text-string 的編碼
就可以解決問題了 …
不過很「恰巧」的是,由於 Mou 支援簡易表格對 HTML 的轉換
而我也不小心使用了如下的語法:
First Header | Second Header | Third Header
:----------- | :-----------: | -----------:
Left         | Center        | Right
Left         | Center        | Right
以產生這樣的 HTML:
First Header Second Header Third Header
Left Center Right
Left Center Right


markdown module 並不支援簡易表格的轉換
因此我只好去找看看是否有其他使用不同 engine 的 module
最後我找到 snudown module 可以支援簡易表格:
import snudown
output = snudown.markdown(input)
不過他的小問題是對於 <pre> <code> 的支援有點問題
(畢竟是 for reddit )
儘管如此,我們還是可以僅只是把有關簡易表格的部分交給 snudown module 來處理
其他部分由 markdown module 或是更加容易上手的 markdown2 module 來處理

最後,我希望使用 Python 轉換出來的 HTML 格式能夠盡可能的與 Mou 外觀一致
所以我去偷看了 Mou 所使用的 CSS file (可從 Preferences -> CSS -> Edit 開啟檔案)
我選擇了 github 的 Style 作為參考依據
如此一來就可以在遠端的主機全自動化的生成我想要使用的文件啦!

備註:本文即為由 markdown 撰寫而成

沒有留言:

張貼留言