10月30日

使用Windows Live Writer发布日志

陈国栋
2009.10.30

前言

Windows Live Writer是非常不错的一个日志发布工具,支持本地写文章,然后通过点击一个按钮就发布到网站上,如果借助插件,还可以同时发布到多个博客网站,功能非常强大,很多博友认识她之后都有相见恨晚的感觉,有些Mac的用户为了使用她才装上了Windows。
Windows Live Writer提供了很方便的插件编写工具,可以自己增加一些希望的功能,网上也有大量的插件下载,很多都非常不错。
本书根据新手入门使用Windows Live Writer可能遇到的一些问题进行详细的阐述,让新手也能很快驾驭这个工具,更高效的记录日志和发布日志,体验更多网络的乐趣。
本书还附带了很多博客官方关于Live Writer使用的介绍,和其它一些很好的Live Writer相关的文章,以及笔者亲自实践/精心挑选的一系列优秀插件的安装文件,非常实用,欢迎参考。
所有插件在Windows Vista, Windows Live Writer 14.0.8089.726 下安装使用正常。
使用手册和全套工具附件下载地址:http://down.51cto.com/data/51174

基础问题

1 Live Writer最新版本下载地址是什么?
http://download.live.com/writer

2 下载安装Live Writer之后应该做什么?
应该尝试根据一些博客上的关于Live Writer发布文章的介绍,配置一个帐号,体验一下本地写日志/快速发布的感觉,
特别是发布多图的文章,是非常方便的,而且任何文章本地留下备份这也是很好的,即使网络断了,还可以继续写文章。
如果希望体验更多乐趣,那就安装一些插件,他们提供了很多非常有用的功能,在本文后面有介绍。

2 Live Writer的日志在电脑里面保存在什么地方的呢?
答案:我的文档中的My Weblog Posts目录下,具体参见下面的描述。
D:\Users\Jelly\Documents\My Weblog Posts\Drafts\CppUnit用例访问被测类私有&保护成员的解决方案.wpost
D:\Users\Jelly\Documents\My Weblog Posts\Recent Posts\CppUnit用例访问被测类私有&保护成员的解决方案.wpost

3 从网络备份日志之后,本地之前发布的日志被删除。通过什么判断本地日志与网络日志是同一个日志呢?
有兴趣的再研究下吧,欢迎弄清楚了邮件告诉我:sinojelly@163.com,也欢迎交流相关问题。
4 日志图片和日志附件上传到哪里了呢?
都上传到你的SkyDrive的“日志图像”目录了,比如我的是:
https://cid-756740869b27f5f2.skydrive.live.com/browse.aspx/.BlogImages
似乎有少量重复图片,只是大小不同,可能需要注意,第一次上传日志前,就要把图片大小调整合适,否则可能调整之后再上传会产生重复图片(待确认?)。

各种常用博客空间的Live Writer配置。

注:把sinojelly改为你的帐号。

(1) LiveSpace

最简单,选择Live Space服务类型就可以了。

其它几种博客,要选择“其它日志服务”。

(2) 51CTO

日志主页URL:http://sinojelly.blog.51cto.com

日志类型:Metaweblog API

远程发布URL: http://sinojelly.blog.51cto.com/xmlrpc.php

参考:http://51ctoblog.blog.51cto.com/26414/95155

(3) CSDN

日志主页URL:http://blog.csdn.net/sinojelly

日志类型:Metaweblog API

远程发布URL: http://blog.csdn.net/sinojelly/services/MetaBlogApi.aspx

参考:http://blog.csdn.net/blogdevteam/archive/2009/09/04/4519285.aspx

(4) ChinaUnix

似乎不能用Live Writer.

http://blog.chinaunix.net/u3/104013/

(5) LUPA

似乎不能用Live Writer.

(6) blogbus

日志主页URL:http://sinojelly.blogbus.com

日志类型:Atom Publishing Protocol

远程发布URL: http://sinojelly.blogbus.com/api

参考:http://riverbird.blogbus.com/logs/35937634.html

(7) 百度HI空间

似乎不能用Live Writer.

(8) 网易163博客

日志主页URL:http://sinojelly.blog.163.com

日志类型:无须选择

远程发布URL: 无须选择
用户名:sinojelly

参考:http://amigoce.blog.163.com/blog/static/3002200841510285348/

(9) Google blogger

日志主页URL:http://sinojelly.blogspot.com

日志类型:Atom Publishing Protocol

远程发布URL: http://sinojelly.blogspot.com/feeds/posts/full

参考:http://www.cnblogs.com/westsourcer/archive/2007/03/16/ConfigLiveWriterForBlogger.html
我链接超时了。
如果设置代理,要用http,不要用https,
其它故障参考:

更正:连接上了,但是发布日志时会报出错。原因:原来Blogger的API被挡在墙外面了。
下载安装Hotspot Shield
http://anchorfree.com/downloads/hotspot-shield/
其后,好像一切正常了。

插件

Windows Live Writer 14.0.8089.726 版本本身已支持的功能:

字数统计

安装插件的过程中,不用关闭Windows Live Writer。

有些插件,把dll文件放到“C:\Program Files\Windows Live\Writer\Plugins”目录即可。

有些插件,提供的msi安装文件,双击安装即可。

如果发现新安装的插件没出现,就重启Live Writer。

LiveBlogTransfer

Current version:1.2.0 Last update: 2008-12-12

LiveBlogTransfer备份的是您个人博客的所有发布的页面和日志,您进行数据恢复的时候可以恢复到您Live Writer设置博客上的任意一个,因此如果您拥有多个博客,LiveBlogTransfer可能是您绝佳的博客搬家和同步工具。下载链接:

If you have only one blog space, you could use LiveBlogTransfer to backup and restore your blog entries, if you have multiple blog spaces, LiveBlogTransfer could let you exchange blog entires between these blog spaces. Download links:

For WLW 14.0.8089.726 (New!)

EzMultiPost

Current version:1.0.0 Last update: 2008-12-3

EzMultiPost用于将你的博客日志同步发步到多个博客空间。
需要先发送到一个博客,然后再MultiPost。注意类似51CTO博客必须写原创/转载类型的,必须先设置类型,然后再MultiPost。
下载链接:

EzMultiPost is a tool for you to post your blog to multiple blog spaces.Download links:

For WLW 14.0.8089.726 (New!)

参考:
http://www.niuray.com/develop/wlw-plugin/my-wlw-plugins/
通知 Twitter 新日志发布

把Twitter.WriterPlugin.dll放到“C:\Program Files\Windows Live\Writer\Plugins”目录, 然后关闭Live Writer重新打开。
打开 Windows Live Writer –>  工具 Tools –> 选项 Options –> 插件 Plug-ins –> Twitter Notify,并且输入 Twitter 用户名,密码
屏幕截取插件

把ScreenCapturePlugin.dll放到Plugins目录,重启Live Writer即可。

添加 Digg This 按钮

把DiggThis.WriterPlugin.dll放到Plugins目录,重启Live Writer即可。(它好像不会在右边栏显示出来)
在工具->选项->插件中可以设置Digg的类型,禁用JavaScript的网站只能用两种按钮样式: Button 和 Guy (不支持会自动替换为按钮样式)。

插入代码样式

安装CodeSnippetSetup.msi,然后重启Live Writer即可。

如果代码外面的框框总是出现讨厌的滚动条,那么可以点击“Use Container”去掉容器。

1: int main() 2: { 3: int a = 1,b = 2; 4: int c = a+b; 5: return c; 6: }

Text Template
V1.2.3.3下载:http://gallery.live.com/liveItemDetail.aspx?li=9c8097b3-05f5-4e50-a968-dec6da6aea72&bt=9
网上的介绍:
这个插件对于那些在博文中使用重复的文本或者 html 的人,比如标语、签名或者给读者留言的邀请,这是必须的插件。使用 Text Template 你可以创建和保存包含文本和/或 html 的模板以后使用,然后快速简便的插入你的文章中。创建的模板可以放入分类,如果你保存了很多的话就可以比较容易的找到。
相关参考:
http://www.codeplex.com/wikipage?ProjectName=wlwTextTemplate
V1.2.4下载:
http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=wlwTextTemplate&DownloadId=3099&FileTime=128050080314630000&Build=15896
类似的,还有一个:
Dynamic Template Plugin for Windows Live Writer
http://www.joecheng.com/code/DynamicTemplate/
Insert File Plugin
不错,能够把文档插入博客文章的任何位置。

酷表情
安装CNCoolEmotion.msi即可。
非常不错。
拷贝VS.NET的代码(强烈推荐)
把VSPaste.dll拷贝到C:\Program Files\Windows Live\Writer\Plugins即可。
效果如下:
image
插入标签
参见下图,无须另外安装插件。
image
可以自己再添加tag提供商,
我添加了Windows Live:
<a href="http://windows.live.com/connect/tag/{tag-encoded}" rel="tag">{tag}</a>
参见:
http://malkside.spaces.live.com/blog/cns!BE2C70F6E8FD6095!467.entry
http://windowslive.com/Connect/Post/2cd5986f-4c18-436e-a94d-7c6079ffb842
注:
Windows Live标签不是很好用,点击标签能搜索出带有该标签的文章,但没看到我的文章。
Technorati 标签则链接打不开,它被墙了,如果打开了的话,它能搜索带有某种标签的文章。不过暂时我也没看到我的文章。

不怎么好或者暂时未使用的插件

Clipboard Capture(暂时未使用)
把剪贴板的图片粘贴到博客文章中,可以给图片命名。(它能支持选择jpg还是png,不过我更希望能设置jpg的质量。)

参考:http://gallery.live.com/liveItemDetail.aspx?li=665e9d1b-ab5c-4772-80de-ac4e69d66dae&bt=9&pl=8

xPollinate - Cross Post Plugin(未使用)

比Multiple Poster功能多些,但还是不能发送到51CTO博客,它提示没有选择原创类型。

下载次数:1207 发布时间:2009/3/31

免费

xPollinate is a Live Writer plugin that enables you to cross post full or summarized blog entries to other blogs, as well as social networking sites such as Twitter, Facebook, MySpace and more via Ping.FM.
More info: http://xpollinate.codeplex.com

Sharper Photo (未使用)
直接在Writer中编辑图片非常方便,可能很有用。

注:它可以调用外部编辑器编辑图片,但也没觉得方便多少,也没太多别的功能。
Paste As Visual Studio Code v1.5
上次更新时间: 2009/10/15
从VS中复制代码到Writer中,可能很有用。
安装LavernockEnterprises.PasteAsVSCode.msi
效果如下,还可以,但也并不是很好。
image

Tag4Writer

这个插件没有找到可下载的地方,似乎3年前出现过,后来就不见了。

Related Posts

安装RelatedPostsPluginSetup.msi,然后重启Live Writer即可。
需要在http://delicious.com/注册。还没怎么用:)

SyntaxHighlighter插件(建议不要用)
它在我的Vista电脑上运行时异常。

1: System.NullReferenceException: 未将对象引用设置到对象的实例。 2: 在 Katamari.WriterPlugin.PropertiesPanelEditor.PropertiesPanelEditor_Load(Object sender, EventArgs e) 3: 在 System.Windows.Forms.UserControl.OnLoad(EventArgs e) 4: 在 System.Windows.Forms.UserControl.OnCreateControl() 5: 在 WindowsLive.Writer.Api.SmartContentEditor.OnCreateControl() 6: 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 7: 在 System.Windows.Forms.Control.CreateControl() 8: 在 System.Windows.Forms.Control.ControlCollection.Add(Control value) 9: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.Sidebar.ContentSourceSidebarControl.UpdateView(Object htmlSelection, Boolean force) 10: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.Sidebar.HtmlEditorSidebarHost.UpdateSidebarState(Boolean force) 11: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.Sidebar.HtmlEditorSidebarHost._editorContext_SelectionChanged(Object sender, EventArgs e) 12: 在 System.EventHandler.Invoke(Object sender, EventArgs e) 13: 在 WindowsLive.Writer.HtmlEditor.HtmlEditorControl.OnSelectionChanged(EventArgs e, IHtmlEditorSelection newSelection) 14: 在 WindowsLive.Writer.HtmlEditor.HtmlEditorControl.FireSelectionChanged() 15: 在 WindowsLive.Writer.HtmlEditor.HtmlEditorControl.WindowsLive.Writer.HtmlEditor.IHtmlEditorComponentContext.EndSelectionChange() 16: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.SmartContentSelection.SelectElement(IHtmlEditorComponentContext editorComponentContext, IHTMLElement e, SmartContentState contentState) 17: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.SmartContentSelection.SelectIfSmartContentElement(IHtmlEditorComponentContext editorComponentContext, IHTMLElement e, SmartContentState contentState) 18: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.BlogPostHtmlEditorControl.OnInsertHtml(MarkupRange newContentRange) 19: 在 WindowsLive.Writer.HtmlEditor.HtmlEditorControl.InsertHtml(String html, Boolean moveSelectionRight) 20: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.BlogPostHtmlEditor.InsertHtml(String content, Boolean moveSelectionRight) 21: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.BlogPostHtmlEditor.InsertContentBlock(String contentSourceId, String content, IExtensionData extensionData) 22: 在 WindowsLive.Writer.PostEditor.PostHtmlEditing.BlogPostHtmlEditor.WindowsLive.Writer.PostEditor.ContentSources.IContentSourceSite.InsertContent(String contentSourceId, String content, IExtensionData extensionData) 23: 在 WindowsLive.Writer.PostEditor.ContentSources.ContentSourceManager.PerformInsertion(IContentSourceSite sourceSite, ContentSourceInfo contentSource)

它显示的代码格式如下:

int main() { int a,b; int c = a+b; return c; }

Insert MSN, Yahoo and Custom Smileys(不推荐)
在我的电脑上没法用,缺少SmileyInfo.txt,但没地方可下载。
Tag Generator(不推荐)
安装TagCreator.WriterPlugin.msi,但我也遇到生成tag时Live Writer死掉。
下载地址:http://gallery.live.com/liveItemDetail.aspx?li=bbb14b2a-0250-4513-a942-cb99a3459ab9&bt=9&pl=8Ta
Amazon Book Lookup Plugin(不推荐)
使用时出现HTTP 503错误。
下载地址:http://gallery.live.com/liveItemDetail.aspx?li=41954338-69de-47d5-b15e-ca0d770146b6&bt=9&pl=8
还未尝试的插件:
Code Prettify for Windows Live Writer
需要链接Google Code Prettify才能使插入的代码高亮,不支持js的博客可能不好用。
参考:
http://gallery.live.com/liveItemDetail.aspx?li=c7ff63d8-d435-4349-a26e-d601f3151319&bt=9&pl=8
http://google-code-prettify.googlecode.com/svn/trunk/README.html
Attach File Plugin for Windows Live Writer
跟Insert File的功能差不多,没有具体尝试。
参考:
http://gallery.live.com/liveItemDetail.aspx?li=3554b280-8ea4-453a-ada7-d567348aab97&bt=9&pl=8
Contacts Plug-in
暂时没觉得它很有用,没尝试它。
参考:
http://gallery.live.com/liveItemDetail.aspx?li=6388f05f-b3d7-481a-ad55-924686598856&bt=9&pl=8
http://www.codeplex.com/Wikipage?ProjectName=Oomph
http://visitmix.com/lab/#oomph
Import and Export Wizard for Windows Live Writer
发布时间: 2009/10/31
备份/还原Live Writer的插件/配置/本地文件等信息,应该非常有用。
参考:
http://gallery.live.com/liveItemDetail.aspx?li=6f6a26f3-8797-41c9-9530-1a7c8baef154&bt=9&pl=8
Insert Links Smartly
为了插入链接方便,它可能比较有用。

Syntax Higlighter 2.0 for Windows Live Writer

创建者:

下载次数:467 发布时间:2009/7/6

免费

Add smart content editor syntax higlighter 2.0 support for Windows Live Writer.
插件列表:
http://gallery.live.com/results.aspx?bt=9&pl=8&ds=1&la=en&tier=0&st=2&p=1&c=0
制作Windows Live Writer绿色版
1 安装Windows Live Writer最新版本。(最好不运行,避免产生很多配置文件)
2 下载WLWPortable3.rar。(地址:http://www.box.net/shared/i97ftfzvya,可能被墙了)
3 解压缩WLWPortable3.rar,把C:\Program Files\Windows Live\Writer里面的内容全部复制到WLWPortable3\WindowsLiveWriterPortable\App\WindowsLiveWriter目录下。
4 另外两个插件RelatedPostsPlugin.dll和WLWTextTemplates.dll被安装到C:\Program Files\Windows Live Writer\Plugins,把它们所在的Plugins里面的内容都复制到WindowsLiveWriterPortable\App\WindowsLiveWriter\Plugins目录下。(注意:正是这个操作,RelatedPostsPlugin.dll使得配置客户端完成后,Live Writer启动后自动退出,后来把它删掉就OK了。)
5 最后发现还缺少一个插件Insert File。用Everything搜索InsertFile,发现它的路径为C:\Program Files\Braunweb Solutions\Insert File Plugin for Windows Live Writer\InsertFilePlugin.dll
6 把InsertFilePlugin.dll复制到WindowsLiveWriterPortable\App\WindowsLiveWriter\Plugins目录下。
制作绿色版发现的现象:
1 发布的文章和草稿都在我的文档/My Weblog Posts目录,并且必须启动Windows Live Writer它才会出现,关闭时它又会消失。不过文章不会丢失,目录出现时,里面的文章也会出现。
2 每次启动Writer,都需要配置一遍博客的信息。观察Data/Registry.reg,它每次启动Writer都会更新,它保存了博客帐号信息。但为什么每次启动都需要配置呢?而且运行注册表文件也不行。Data\Settings\Dir3.dat\Windows Live Writer.log有日志信息。
经过尝试,发现用2.0版本的WindowsLiveWriterPortable.exe,不会有每次启动都要注册的问题。(把该exe文件替换为2.0版本的即可)
3 可以在电脑里面保存两份完整的Windows Live Writer,分别注册/登录不同的博客,它们互不干扰,用这种方法可以解决51CTO和Live Space等不能放在一起的问题。
4 在WindowsLiveWriterPortable\User\TextTemplates保存了一些模板,使用时把TextTemplates的路径设置到该目录即可使用。
注:
1 我的另外一篇博文也有关于Windows 7下的Windows Live Writer体验的介绍。
网址:http://sinojellycn.spaces.live.com/blog/cns!756740869B27F5F2!232.entry
2 从发布到网络之后的效果(或者编辑时的效果)来看,LiveSpace的效果是最好的,其它都存在缺陷,甚至代码都不换行。不知道是不是我编辑时用的LiveSpace的缘故。
3 在本地修改文章之后,再发布,不会在博客上再产生一篇文章。但如果切换多个博客帐号之后再发布,会产生多篇文章。
4 切换博客帐号是要极力避免的,否则重新发布产生新文章,而且每个博客的日志也不一致了。51CTO必须选原创类型, 不支持粘贴了附件的文章,它会提示图片无法上传.暂时的解决办法,先在51CTO发布,而后再在LiveSpace以及其它两个博客上发布,除了51CTO的文章不再修改外,其它几个博客上的文章还可以实时更新。
5 突然发现有个插件Paste as JPG,之所以上传的图片都是JPG,而不是效果更好的PNG,可能是它的缘故。通过禁用该插件,发现所有图片都是PNG了,不过效果是否好了,还要进一步确认。
6 发现文章中删除了图片,发布文章,已上传的图片并不会自动删除,可以手动删除。
7 每张图片在服务器上都有两张,一张成为thumb的,不过两张似乎没任何不同,大概都是51K多。
8 文章发布之后,会自动拷贝到已发送目录,同时它的二进制内容也会发生一些变化。
9 CSDN博客支持js,能显示digg的js图像,不过如果之前在别的不支持js的博客上发布过,再通过MultiPost发布到CSDN,则不能显示js图像。
10 从网络上复制图片到Live Writer,一次只能复制一张,一次复制多张,则前面的若干张都只作为链接被复制,断网后无法显示。
11 写过一篇文章发布到Live Space后,可以把它复制一份,再发布到51CTO,以后这两篇文章可以独立修改和发布。(当然每个修改都要人为修改两处,但这样发布,两个博客都不会产生重复文章,而且也只需要一份Live Writer工具)