這些天使用 Windows Live Writer (文後簡稱 WLW) 發了幾篇文章,覺得實在是不錯用,不過就是有些功能不太合手,再加上 WLW 有提供 API 供使用者開發 Plguin,所以就找了一下資料,動手練習撰寫了一個 Plugin。
解釋如何製做前先描述一下這個練習的 Plugin 其中一項所需要達成的效果,
- 在 WLW 編輯框內反白一列文字 。
- 點選我們撰寫的 Plugin,按下「確定」。
- 回到 WLW 編輯框,出現螢光筆的效果。
簡單說就是以上這三步,速寫時個人習慣使用 VB 語法,所以下列的程式碼以 VB.net 呈現。
- 引用 -
打開 VS 建立一個 類別庫 (ClassLibrary) 專案,把安裝 WLW 目錄下的 WindowsLive.Writer.Api.dll 加入參考之中。
-類別-
這個範例中產生一個類別名 FluorescentPen 並繼承 ContentSource,由於我們只是單純的處理字串並產生 html 碼,所以選擇 ContentSource 即可,不用到 SmartContentSource。
再來幫類別加上兩個屬性 WriterPlugin 及 InsertabllContentSource,
- WriterPluin 中設定了 Guid、PluginName、Plugin 所用圖示檔。圖示檔利用專案內加入的圖片,將其設定為內嵌資源。
- InsertabllContentSource 中設定了於 WLW 中顯示的 Plugin 名稱。
覆寫 CreateContent 函數,秀出一個表單,將反白的文字傳給表單處理,並傳回 html碼。要點在參數 content,content 傳進此函數時字串內容即是反白的文字,而將 html 傳出至 WLW 也是利用此參數,不過帶入的反白文字是包含 html 標籤的網頁原始碼,所以就看後續動作是否需將這些標籤處理掉。
- 表單 -
表單的部分就與一般撰寫 WinForm 相同,這列出其中處理螢光筆效果按鈕的程式碼,將處理完畢的 html 存入變數供 CreateContent 取用。
- 建置 -
建置完畢後,將產出的 .dll 放至安裝 WLW 目錄下的 Plugins 目錄中即可讓 WLW 於開啟時載入使用。
大至上利用 ContentSource 撰寫 WLW Plugin 的整個流程就是這個樣子。
1 意見:
也可以在專案屬性的建置後事件命令列填入
XCOPY /D /Y /R "$(TargetPath)" "C:\Program Files\Windows Live\Writer\Plugins\"
這樣就會直接放到 Pulgins 的目錄下了。
張貼留言