• 为Windows Live Writer写一个简单的插件 拓荒者


    前言

    很多朋友都在用Windows Live Writer在园子里写博客吧,同样也有很多朋友都会在文章结束的时候加上版权信息,更有利于保护自己的合法权益。

    这些版权信息的样式很多,例如:

    image

    再如:

    image

    如果每次写文章的时候都重新写一段这样的版权信息肯定是很麻烦的。那么,我今天要写的这个插件就是向博文中插入HTML模板。

     
    要实现的功能

    1、保存已有的模板

    2、选中指定模板后插入博文中

    目前就这两点功能吧,简单一点,如果朋友们还有别的需求,请轻砸……

    如何实现

    1、对于第一个功能,可以通过使用XML文档来保存已有的模板。

    2、对于插入博文中,可以解析Xml文档,列出已有模板,选中后点击“插入”按钮,实现插入。

    效果图如下:

    image

    Windows Live Writer插件开发

    在园子里已有一篇不错的博文来介绍简单的Windows Live Writer插件开发的步骤,讲解的很详细,并且提供了源码下载,笔者也是通过这篇博文了解了如何开发Windows Live Writer插件的。

    由于这个插件是对博文内容操作的,所有需要继承ContentSource类,并重写方法CreateContent。下面是详细步骤:

    1、新建C#类库项目。

    2、添加WindowsLive.Writer.Api的引用,如果你已经安装了Windows Live Writer,可以在安装目录下找到WindowsLive.Writer.Api.dll文件。如果你使用的是Windows Server 2003操作系统,在安装Windows Live Writer的时候可能会出现系统不支持的提示。可以参照笔者的另一篇博文《如何在Windows 2003 中使用Windows Live Writer? - 2010年5月21日学习笔记(1)》完成安装。

    3、新建类InsertHTMLPlugin,继承自ContentSource,需要using WindowsLive.Writer.Api;

    4、为类InsertHTMLPlugin添加特性信息:

    [WriterPlugin("01c28aeb-f616-4912-9114-9341d7779f95", "插入HTML模板", 
        PublisherUrl = "http://www.cnblogs.com/youring2", 
        Description = "用来向博文中插入HTML模板", 
        Name = "插入HTML模板"]
    [InsertableContentSource("插入HTML模板", SidebarText = "插入HTML模板")]

    5、重写方法CreateContent。在该方法中需要打开插入模板窗口,并完成处理。当用户点击“插入”按钮时,为content添加一个要插入的字符串即可。

    6、添加一个模板编辑窗口,界面如下:

    image

    7、为插件添加一个图标。MSDN中给出的方法:if you want an image to appear alongside your plugin within the Writer user interface you should specify the WriterPluginAttribute.ImagePath property as part of this attribute. 我们首先向项目中添加一个图片,名字为InsertHTML.ico,并放在文件夹 Image中,设置InsertHTML.ico的生成操作为“嵌入的资源”,我们修改第4步的特性,为特性中添加ImagePath,这样一来,完整的特性为:

        [WriterPlugin("01c28aeb-f616-4912-9114-9341d7779f95", "插入HTML模板", 
            PublisherUrl = "http://www.cnblogs.com/youring2", 
            Description = "用来向博文中插入HTML模板", 
            Name = "插入HTML模板",
            ImagePath = "Image.InsertHTML.ico")]
        [InsertableContentSource("插入HTML模板", SidebarText = "插入HTML模板")]

    最后,附上源代码: https://files.cnblogs.com/youring2/QF.Sample.WriterPlugin.InsertHTML.rar

    已编译文件:https://files.cnblogs.com/youring2/QF.Sample.WriterPlugin.InsertHTML.dll.rar

    参考作品

    1、《为Windows Live Writer开发插件——InsertSearchPageLink》,地址:http://byte365.spaces.live.com/blog/cns!80BC0AFE1EC9BF2!225.entry

    2、《Windows Live Writer 插件开发入门》, 地址:http://www.cnblogs.com/autumoon/archive/2009/01/20/1378880.html

    感兴趣的朋友可以详细的了解一下,另外MSDN中的介绍:《Creating a Content Source Plugin》,地址:http://msdn.microsoft.com/en-us/library/aa702851.aspx

    下面是笔者插入版权信息的效果:

    Creative Commons License

    本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名齐飞。如您有任何疑问或者授权方面的协商,请给我留言

    作者:齐飞
    来源:草屋&拾荒 - 齐飞的技术博客
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
    如果认为此文对您有帮助,别忘了支持一下哦!
    声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
  • 相关阅读:
    011-iOS核心动画(Core Animation)
    010-CALayer(图层)
    009-手势触摸事件处理
    008-Quartz2D
    007-多控制器管理及其控制器间的数据传递
    007-多控制器管理(控制器间的数据传递)
    通过底层 socket 监控 http/https 思路
    NDK 线程同步
    时间同步算法探究
    Android 事件小结
  • 原文地址:https://www.cnblogs.com/youring2/p/1741970.html
Copyright © 2020-2023  润新知