您的位置:首页 > 其它

【摘】终于用上了Windows live Writer

2011-07-21 11:09 211 查看
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字样。后来把该文件夹下文件和子文件夹拷贝过去才解决这个问题。如图:





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的了吧。





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

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就可以看到侧边栏里已经有我们创建的插件了。





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.



Public 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.



See Also


Other Resources

Windows Live Writer Application API Reference
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: