Windows Live Writer插件开发入门

几个月前看过Channel9上的一个视频,Windows Live Writer的开发经理 Charles Teague现场讲述如何开发Writer插件。昨天又看了徐晓卓同学的 WebCast,感觉内容雷同,看完之后觉得食不尽兴,并且在一些细节地方我对该 同学有异议。其实我与徐晓卓同学素未谋面,更谈不上江湖过节,只不过是想综 合他和Charles的内容,总结归档,给其他想要涉足Live Writer插件开发的同学 一点儿入门级参考资料罢了。我希望晓卓同学看了我的文章不要生气,我不是说 你代码写错了,只是有一个比较明显的地方,你既然在MSDN WebCast上写代码, 我觉得还是有必要遵守微软的编码规范,例如局部变量的声明,首字母应该小写 ,虽然你大写了并不影响编译。总而言之,我不提倡文人相酸,只奉行共同进步 。

言归正传,这篇文章里的代码量不大,但整个Solution我已经放到CodePlex 上去了,大家可以直接到http://www.codeplex.com/WriterPlugin查看或下载所 有源代码。

微软已经发布了Windows Live Writer SDK,其中主要分为三个部分:

Application API

用于启动Live Writer应用程序以及编辑现有数据类型,例如:超链接、文本 、图片等;

Content Source Plugin API

用于扩展新数据类型的支持能力;

Provider Customization API

用于自定义现有功能以及增添新的功能;

本文主要讲述Application API的开发练习,我相信大家只要明白了如何利用 Application API做自己想要做的事情,那么其它两个API也就触类旁通了。

简单介绍一下应用场景:可能因为也许需要,某些人需要往Live Writer中插 入一些文本内容,并且这些文本内容在插入的时候总是需要经过固定的处理流程 ,类似于给图片加水印一样,因此简单的复制粘贴就显得不够用了,需要我们另 外给他开发一个独立的应用程序来做处理工作吗?那我写这篇文章做啥!

首先打开Visual Studio 2008,新建一个Class Library类型的项目,创建好 了以后要添加Application API的动态链接库文件的引用,不用到MSDN上去下载 ,安装了Live Writer之后即可在安装目录下找到这个 WindowsLive.Writer.Api.dll文件。然后如果你的插件需要打开Windows窗口, 那么还需要添加System.Windows.Forms等引用。

根据我们假想场景的业务需要,我们需要有一个Windows窗口,用于接收用户 需要插入的原始文本内容,然后进行处理,也就是将字符串变成大写并在后面添 加Autumoon Lab的标记。需要注意的是,我们往Live Writer中插入文本内容时 要切记应该使用HTML标签,而不是C#的一些转义字符,例如要用"<br/>" 而不是"\n"等。

代码将如何按照我们的想法来工作呢?我们首先声明一个类AutumoonPlugin ,继承ContentSource类,并且重载其中的CreateContent用于实现我们自己的文 本插入流程:

1: [WriterPlugin("7c371eef-e350-4aae-af28-91613a9137e3", "Autumoon", PublisherUrl = "http://www.Autumoon.com", Description = "This is an Autumoon Lab plugin.", Name = "Autumoon")]
2: [InsertableContentSource("iAutumoon", SidebarText = "iAutumoon")]
3: public class AutumoonPlugin : ContentSource
4: {
5:   public override DialogResult CreateContent(IWin32Window dialogOwner, ref string content)
6:   {
7:     new ProcessForm().ShowDialog();
8:
9:     content = ContentProcessor.ProcessedContent;
10:
11:     return DialogResult.OK;
12:   }
13: }

需要给这个类添加两个特性:WriterPlugin和InsertableContentSource。并 设置其中属性的值。根据属性名大家就可以明白是什么意思,我就不再赘述了, 强调一点,WriterPlugin第一个参数是id值,大家可以自行设置,我只是用了一 个Guid值而已,不要被迷惑了。

根据上面几行代码大家就可以看出来我们的流程:打开窗口接受用户的插入 内容;从一个固定的地方去获取处理之后的文本,然后通过DialogResult.OK来 告诉Live Writer插入content,这下明白content为啥是ref的了吧。

时间: 2024-10-03 10:10:30

Windows Live Writer插件开发入门的相关文章

【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结

原文 http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html 去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿. 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为这2个软件各有优点,各有缺点. 1.首先用LiveWriter发博客显然更专业,发布后的效果也与本地最接近,但是在编辑功能上肯定大不如Word,另外一个最大缺点是它

【解决】word复制windows live writer没有图片

在使用windows live writer发表博客,博客先是在是word2013中进行编辑,编辑完毕后我会复制到windows live writer中,然后发表出去. 使用了几年都没有问题,就是最近这个月出现.word复制到live writer中,只有文字而没有图片. 以前都是没有问题的,复制的时候会直接把图片复制到live writer中. 后来经过单独测试,即使是从word复制一张图片到windows live writer中,也是无法复制进去的. 这种现象在win8及win7上都出现

将word中的图片复制到windows live writer保持大小和清晰度不变

今日打算将平时积累的文章发布到51cto的博客.发现word中的文章,复制到windows live writer后图片变得不清晰.请教博客专家,从网上查找资料,除了一张一张设置图片大小外,也没有好的办法.感觉这样做太麻烦.于是自己总结经验,终于将这个问题搞定. word中图片小, 复制出来的就不清楚,你需要设置图片大小为原始大小,复制到windows live writer图片才可能清楚. 还需要设置Windows live writer图片默认大小为原始大小.如果是小图片,还是不清楚 . 需

火狐浏览器插件开发入门教程

  许多网友都想学习火狐浏览器插件开发这一方面的知识,不过,目前,许多资料都是比较晦涩难懂,不太适合初学者.那么,初学者想要学习火狐浏览器插件开发该怎么入门呢?还是一起来看看今天的火狐浏览器插件开发入门教程! 火狐浏览器 首先需要知道什么是"Firefox插件".这里说的"插件"只是一个通俗的说法,其实Firefox这种扩展功能的"插件"包括:扩展extension和插件plugin. Firefox官方网站的解释是:Extensions are

如何使用mklink命令DIY自己的Windows Live Writer

  如何使用mklink命令DIY自己的Windows Live Writer--安装.保存博文到D盘 Windows Live Writer是最好用的离线博客写作软件了,但是不足的地方在于强制安装在c盘,写好的博文也在C盘,下面介绍如何把这写移到D盘去. 举例: 先创建2个文件夹 D:Program FilesWindows Live 安装在这里 D:百度云Blog 博文保存在这里,然后使用百度云,进行同步保存 确保下面2个文件夹不存在 C:Users你的windows账户DocumentsM

博客园配置windows live writer,实现本地代码高亮

你是否还在为只能用浏览器在博客后台写文章而苦恼? 你是否还在纠结于live writer没有代码高亮而苦恼? 现在一切都能解决: 其实博客园支持SyntaxHighlighter代码着色,可以用相应的Live Writer代码着色插件进行代码着色.他们推荐的代码高亮插件是 :推荐代码着色插件:Source Code plugin for SyntaxHighlighter. :Windows Live Writer下载地址:http://download.live.com/writer. 但是无

Windows Live Writer 配置报407 Proxy Authentication Required错误

在Windows 7 专业版上面安装Windows Live Writer后(版本号:14.0.8117.416),配置博客服务过程中报错(如下图所示)       错误信息为:407 Proxy Authentication Required(The ISA Server requires authorization to fullfill the request. Access to the Web Proxy filter is denied) 刚开始我怀疑是博客园的http://www.

Windows下FFmpeg快速入门

本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视频文件转换成FLV整理 java 视频处理 mencoder java 视频处理 ffmped+mencoder   Windows下FFmpeg快速入门 FFmpeg简介 FFmpeg是什么? FFmpeg是用于录制.转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音

Windows Live Writer完成开源并推出开源分支

Windows Live Writer是一款发布于2006年的博客工具,时至今日,它仍然保有一定的热度.2012年的时候,微软对其进行了最后一次重大更新,而最近一次小幅改动则发生于2014年初.在不少网友的呼吁下,微软终于将它开源,使得用户社区能够接管该软件的发展.今年早些时候,Scott Hanselman曾传达了这方面的好消息,称"我们将要开源Windows Live Writer".而现在,这个梦想终于成真. Hanselman在自己的博客上写到: 就在今天,一支独立的志愿者团队