Windows Live Writer插件开发
WLW(windows live writer)是我在博客園發(fā)博客必用的博客編寫工具。它的插件編寫就是WindowsLive.Writer.Api接口的使用,接口API文檔在MSDN上有 。如果你有時(shí)間,可以按照文檔的教程一步步學(xué)習(xí)。
這里就照著一個(gè)插件的實(shí)現(xiàn)步驟進(jìn)行記錄:
需求說明
開發(fā)準(zhǔn)備
開發(fā)步驟
參考文章
需求說明
需求:將文章中的<h1></h1>標(biāo)題自動(dòng)生成目錄,并插入到文章頭部去。(一個(gè)目錄生成器)
原先的文章源碼比如是這樣的:
插件處理后文章源碼就變?yōu)?#xff1a;
插件做的工作:
1 生成<p>...</p>的目錄標(biāo)簽并放在文章最前端
2 將<h1>標(biāo)簽加上瞄點(diǎn)(比如<a name="section2"></a>)
開發(fā)準(zhǔn)備
1 安裝Live Writer(假設(shè)Live Writer安裝在:C:\Program Files (x86)\Windows Live\Writer)
2 VS開發(fā)環(huán)境
(ps: 如果使用VS2010的朋友在下面建立項(xiàng)目的時(shí)候請(qǐng)將VS的.net版本修改為.net 3.0, 小哥我親身嘗試過 .net4.0開發(fā)的插件是沒法使用的!!)
開發(fā)步驟
1 創(chuàng)建Class Library項(xiàng)目
2 Reference加入dll:
WindowsLive.Writer.Api.dll: (這個(gè)dll在安裝目錄下,比如我這邊是C:\Program Files (x86)\Windows Live\Writer)
System.Windows.Forms.dll
3 設(shè)置BuildEvent。這步目的是build后將dll拷貝到plugin文件夾中
設(shè)置Build Events 的Post-build event comment
XCOPY /D /Y /R "$(TargetPath)" "C:\Program Files (x86)\Windows Live\Writer\Plugins\"
4 實(shí)現(xiàn)ContentSource類的方法
按照MSDN?寫的,里面的三個(gè)方法
CreateContent
CreateContentFromLiveClipboard
CreateContentFromUrl
這三個(gè)方法最大的區(qū)別是content的出處不一樣。大多數(shù)人使用CreateContent方法就可以,它是將選中的區(qū)域select作為content的引用傳入函數(shù)。
按照msdn的描述,Class1 類做了幾件事:
1 繼承ContentSource
2 重寫虛函數(shù)CreateContent
3 設(shè)置 InsertableContentSourceAttribute屬性
4 設(shè)置Writer Plugin屬性:
參數(shù)分別為:GUID,plugin顯示名字,博客發(fā)布地址,插件描述
5 運(yùn)行
直接F6 Build就可以
如果出現(xiàn)了
請(qǐng)確保兩件事:
1 Live Writer沒有啟動(dòng)
2 VS是administrator權(quán)限
6 調(diào)試
build成功之后,啟動(dòng)Live Writer
在
插入這一欄中能看到剛剛加入的插件了,如上圖的Insert Dire。如果找不到,請(qǐng)檢查上面的1-5步驟是否成功
在VS中:debug -- Attach to Process
選擇WindowsLiveWriter.exe進(jìn)程
在Live Writer中點(diǎn)擊插件,VS跳到斷點(diǎn)處。
這個(gè)例子的需求是非常簡(jiǎn)單的,沒有交互。更為詳細(xì)的插件開發(fā)推薦《為Windows Live Writer開發(fā)插件——InsertSearchPageLink》
本示例的源碼和dll存放在github:
https://github.com/jianfengye/WLWInsertDirectory
本文轉(zhuǎn)自軒脈刃博客園博客,原文鏈接:http://www.cnblogs.com/yjf512/archive/2012/05/13/2498400.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Windows Live Writer插件开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 97岁的诺奖得主,活着就会有好事发生
- 下一篇: python从入门到实践电子版-Pyth