為了方便寫 Blog,寫了個小程式讀 wiki code 產生 WordPress 吃的格式,順便藉機練習 TDD,沒想到寫了十小時才完成。剛好最近在看虎x龍的動畫,就將它命名為TD-Post (Tiger x Dragon Post) 吧。
緣起
換過多家 WordPress 用的編輯器後,我還是找不到滿意的工具。為縮短寫 Blog 的時間,我決定自己做一個。
寫 Blog 最惱人的事有幾點:
- 得輸入麻煩的 HTML,特別是要匹配結束標籤特別麻煩。而且 HTML code 不易閱讀,改文章時很不方便。
- 加超鏈結很麻煩,常用的幾個超鏈結,得重附貼多次,像 TDD 我就重貼了許多次。
- 無法用自己慣用的編輯器。若能用 Vim 寫 Blog,速度必能大增啊!
功能簡介
對我來說,寫 wiki code 相當方便,所以輸入格式決定用 wiki code。但 wiki 格式有許多種,我比較常用的有 PmWiki、DokuWiki、TWiki,其中以 PmWiki 語法最簡單,但原始碼沒後兩者好讀。最後聽從 York 的建議,採用 Trac 的 wiki 格式。選它的主要原因除好讀好寫外,我特別喜歡它 Preformatted Text 的格式,很適合用來貼程式碼。
接著,針對第二點問題,加上自動補超鏈結的功能,只要寫過一次超鏈結,TD-Post 就會自動記下來,自動補上對應的位置。像在這段裡,因為我在第一段已寫過 TD-Post 的位置, TD-Post 的超鏈結都會自動補上。初步估計,以後寫一篇 Blog 至少可以省十分鐘,所以差不多用個六十次...這幾天的辛勞就.就回本啦。
程式下載
本程式採 BSD License ( 簡單說就是隨便使用 ),歡迎大家玩玩。雖然沒什麼註解,但我照 TDD 流程寫的,測試碼應該很完整。這裡是一些相關資訊:
- 下載:http://code.google.com/p/td-post/downloads/list
- 程式語言:Python
- 程式碼總行數:682 行
- 測式碼:346 行 ( 主要是準備測試的例子 )
- 非測試碼:336 行
- 實作時間:原本預估兩小時完成,卻花了約十小時。大概是一小時查語法、一到兩小時寫測試。其中花最多的時間在解決 list 和 performatted text 的衝突,這部份從開始實作到結束花了三小時才解決。
其它
有原始碼有真相,最後附上本文的原始碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 為了方便寫 Blog,寫了個小程式讀 wiki code 產生 [http://wordpress.org/ WordPress] 吃的格式,順便藉機練習 [http://en.wikipedia.org/wiki/Test-driven_development TDD],沒想到寫了十小時才完成。剛好最近在看[http://zh.wikipedia.org/wiki/虎與龍_(小說) 虎x龍]的動畫,就將它命名為[http://code.google.com/p/td-post/ TD-Post] (Tiger x Dragon Post) 吧。 ==== 緣起 ==== 換過多家 [WordPress] 用的編輯器後,我還是找不到滿意的工具。為縮短寫 Blog 的時間,我決定自己做一個。 寫 Blog 最惱人的事有幾點: 1. 得輸入麻煩的 HTML,特別是要匹配結束標籤特別麻煩。而且 HTML code 不易閱讀,改文章時很不方便。 1. 加超鏈結很麻煩,常用的幾個超鏈結,得重附貼多次,像 [TDD] 我就重貼了許多次。 1. 無法用自己慣用的編輯器。若能用 [http://www.vim.org/ Vim] 寫 Blog,速度必能大增啊! ==== 功能簡介 ==== 對我來說,寫 wiki code 相當方便,所以輸入格式決定用 wiki code。但 wiki 格式有許多種,我比較常用的有 [http://www.pmwiki.org/ PmWiki]、[http://www.dokuwiki.org/ DokuWiki]、[http://twiki.org/ TWiki],其中以 [PmWiki] 語法最簡單,但原始碼沒後兩者好讀。最後聽從 York 的建議,採用 [http://trac.edgewall.org/ Trac] 的 [http://trac.edgewall.org/wiki/WikiFormatting wiki 格式]。選它的主要原因除好讀好寫外,我特別喜歡它 Preformatted Text 的格式,很適合用來貼程式碼。 接著,針對第二點問題,加上自動補超鏈結的功能,只要寫過一次超鏈結,[TD-Post] 就會自動記下來,自動補上對應的位置。像在這段裡,因為我在第一段已寫過 [TD-Post] 的位置, [TD-Post] 的超鏈結都會自動補上。初步估計,以後寫一篇 Blog 至少可以省十分鐘,所以差不多用個六十次...這幾天的辛勞就.就回本啦。 ==== 程式下載 ==== 本程式採 [http://zh.wikipedia.org/w/index.php?title=BSD许可证&variant=zh-tw BSD License] ( 簡單說就是隨便使用 ),歡迎大家玩玩。雖然沒什麼註解,但我照 [TDD] 流程寫的,測試碼應該很完整。這裡是一些相關資訊: * 下載:http://code.google.com/p/td-post/downloads/list * 程式語言:[http://www.python.org/ Python] * 程式碼總行數:682 行 * 測式碼:346 行 ( 主要是準備測試的例子 ) * 非測試碼:336 行 * 實作時間:原本預估兩小時完成,卻花了約十小時。大概是一小時查語法、一到兩小時寫測試。其中花最多的時間在解決 list 和 performatted text 的衝突,這部份從開始實作到結束花了三小時才解決。 ==== 其它 ==== 有原始碼有真相,最後附上本文的原始碼:{{{ #!html _QUINE_ }}} 身為資工人,這段原始碼當然也是自動貼上的啦,不過我沒用像 [http://en.wikipedia.org/wiki/Quine_(computing) Quine] 那樣的技巧,只是單純地取代關鍵字。 |
身為資工人,這段原始碼當然也是自動貼上的啦,不過我沒用像 Quine 那樣的技巧,只是單純地取代關鍵字。
沒有留言:
張貼留言