【摘】终于用上了Windows live Writer

MSN软件包中的writer确实是个好东西。不但方便写作,方便发布。摘抄几篇文章纪念下正式使用。

第一篇 使用Windows Live Writer发布日志

Live Writer配置账户很简单,csdn有详细说明了,我这里再转载一下(配置步骤和图片转自CSDN官方博客),然后做些使用过程的补充说明,权作抛砖引玉。

安装配置:

下载安装完毕后,打开该软件,第一次使用会弹出第二步所示的图片,可直接设置CSDN的链接;如果选择其他日志,进入软件后可从第一步开始做。

第一步:点击“工具”找到 “添加日志账户”,然后打开。

第二步:选择“其他日志服务”,然后点击下一步。

第三步:填写用户名和用户密码,把 UserID替换成你自己的用户名,密码就是你账号的密码,然后点击下一步。

第四步:“你所使用的日志类型”选择“Metaweblog API” ,“日志的远程发布URL”栏目填写网址: http://blog.csdn.net/[userID]/services/MetaBlogApi.aspx ,将网址中的“[userID]”整体替换为你的用户ID 。然后点击下一步。

第五步:程序提示要自动发布测试文章,点击“是”。

第六步:测试成功,这里你可以设置日志昵称,也可以不设置 。 点击完成,live writer就配置完毕了。

补充说明:

1. 主题支持:Live Writer可以使用主题编辑,即支持日志网站的主题风格,编辑了的博客日志,可以在Live Writer预览界面里预览整个博客的界面效果,默认是选择使用了主题编辑模式的。

Live Writer支持CSDN的默认default主题,我试了几种其他主题不能预览,没有试完,就直接采用默认的了,列位看官可以自己试试。

设置主题模式点“查看”,找到“使用主题编辑”,点一下将钩去掉就可以不用主题编辑了。Live Writer不支持博客主题,可登陆博客更改主题,然后点“查看”菜单下的“刷新主题”即可检查Live Writer是否支持。

2.插件:Live Writer本身已经自带了编辑、添加图片等功能,还可以扩展更多功能,比如最常用的编辑代码,点击Live Writer界面右边的 可以登陆到Windows Live Writer的插件中心查找插件。

注意选择语言,我刚开始进的时候是中文语言,就8种插件,选所以语言就多了,各位慢慢挑。

在这要讲一下编辑代码的插件,推荐使用CodeSnippet,尽量不要下中文语言下的那一个代码插件,那个插件有BUG,会弹错。

发布个Hello World代码

int main()

{

printf("Hello World");

}

3.上传图片:使用Live Writer上传图片到csdn出错,可以设置图片上传到ftp服务器,我试ftp菜鸟,搞了大半上午的ftp服务器,刚开始想设置自己的机子为服务器,结果发现我是内网,局域网可以访问了,外网不行。得,还是去找网上免费的吧,找到一个国外的免费ftp服务器:

网址:www.ripway.com,FTP服务器地址是:ftphost.ripway.com,注册进去以后可以看到自己的URL

发布倒是发布上去了,发现图片还都无法显示,晕倒~~折腾了半天ftp还是不可取的,不过多了个ftp网盘。

点编辑博客时,我才看到博客编辑页下边里说上传图片需要审核,只能通过相册发布,我再次晕倒~~

最后我是线下写文字和代码,发布了后再从相册里加图片。

第二篇 如何安装Windows Live Writer插件

Windows Live Writer 是一个强大的离线博客编辑工具,通过它可以离线编辑内容丰富的博文。它不但支持微软的live space,还支持诸如Wordpress 这样的开源博客系统。

Windows Live Writer除了自身强大的编辑功能之外,还提供了接口,让其它开发人员通过插件提供工具自身没有提供的功能。比如说语法高亮功能Windows Live Writer自身没有提供,而很多技术类博客作者很需要这个功能,有一个名为SyntaxHighlight的插件就很好的解决了这个问题。

那么,如何安装插件呢?在Widnows Live Writer下安装插件的方法很简单,只需要将插件拷贝到C:\Program Files\Windows Live\Writer\Plugins下面即可。这里有两个细节要注意:

1.C:\Program Files 这是Windows Live Writer在我机器上的安装路径,在你的机器上可能是另一个路径。

2.拷贝插件时,不是把插件文件夹拷贝至C:\Program Files\Windows Live\Writer\Plugins,而是把文件夹里面的内容拷贝过去,这个细节一定还要注意。我在第一次安装插件时就犯了这个错误,在安装SyntaxHighlight插件时把整个文件夹都复制过去了,结果在 工具 | 插件 列表里一直没出现SyntaxHighlight字样。后来把该文件夹下文件和子文件夹拷贝过去才解决这个问题。如图:

clip_image002

Widnows Live Writer采用这样的插件管理方式不利于插件的管理,如果插件过多,plugins文件夹下内容会非常混乱。Wordpress的插件管理方式很值得借鉴,wordpress插件的管理采用的是子目录方式,每个插件放在一个以插件名命名的文件夹里,层次清晰,管理方便。

第三篇 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用于实现我们自己的文本插入流程:

[WriterPlugin("7c371eef-e350-4aae-af28-91613a9137e3", "Autumoon", PublisherUrl = "http://www.Autumoon.com", Description = "This is an Autumoon Lab plugin.", Name = "Autumoon")]

[InsertableContentSource("iAutumoon", SidebarText = "iAutumoon")]

 public class AutumoonPlugin : ContentSource

{

   public override DialogResult CreateContent(IWin32Window dialogOwner, ref string content)

  {

     new ProcessForm().ShowDialog();

    content = ContentProcessor.ProcessedContent;

   return (!String.IsNullOrEmpty(content) ? DialogResult.OK : DialogResult.No);

  }

}


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

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

clip_image003

我们的插入窗口其实一点儿也不华丽,但是却很实用。另外,我们还有一个工具类来专门进行内容处理:

public static void Process(string originalContent)
{

    ProcessedContent = (!String.IsNullOrEmpty(originalContent) ? String.Format("<p>{0}<br/><hr>-- Insert by <b>Autumoon Lab</b>.</p>", originalContent.ToUpper()) :String.Empty);  
}

这个方法对用户需要插入的文本进行了简单地处理,大家只要掌握了Live Writer插件的开发方式,就可以天马行空,自由发挥了。

然后我们编译代码,再将编译后的dll文件拷贝到Windows Live Writer安装目录下的Plugins文件夹里,然后打开运行Live Writer就可以看到侧边栏里已经有我们创建的插件了。

clip_image004

WindowsLiveWriterApplication COM Class

Windows Live SDK

The Typelib which defines this interface is "WindowsLiveWriter.Application.tlb". This Typelib resides in the root directory of the Windows Live Writer installation directory.

clip_image005Public Methods


Method
Description

BlogThisFeedItem

Launch Windows Live Writer with a new Blog This post for the specified feed item.

BlogThisHtml

Launch Windows Live Writer with a new Blog This post for the specified arbitrary HTML content.

BlogThisImageFile

Launch Windows Live Writer with a new Blog This post for the specified image file.

BlogThisImageFileList

Launch Windows Live Writer with a new Blog This post for the specified image file list.

BlogThisImageUrl

Launch Windows Live Writer with a new Blog This post for the specified image URL.

BlogThisLink

Launch Windows Live Writer with a new Blog This post for the specified link.

BlogThisSnippet

Launch Windows Live Writer with a new Blog This post for the specified snippet.

NewPost

Launch Windows Live Writer for editing a new post.

OpenPost

Launch Windows Live Writer for opening an existing post (shows the Open Post dialog box).

ShowOptions

Show the Windows Live Writer Preferences dialog box.

clip_image005[1]See Also


Other Resources

Windows Live Writer Application API Reference

posted @ 2011-07-21 11:09  MrZhangYang  阅读(307)  评论(0编辑  收藏  举报