Windows Live Writer 是微软公司 Live 产品系列中的一个桌面程序,从名称上就能看出来,它是运行在 Windows 操作系统的。WLW 的主要功能就是离线撰写博客(blog)文章。它已经内置了对 Blogger、WordPress 等著名博客平台的远程撰稿支持。

前不久 Joomla! 之门网站的会员 shirley 在论坛提出了一个问题:怎样把本地的doc文件从后台直接上传为文章? joe137 对这个问题的解决方案很正确:就是通过 Windows Live Writer 来远程提交文章。joe137 介绍了两篇文章,这两篇文章都是采用 MetaWeblog 插件结合 Windows Live Writer 来进行离线撰写 Joomla 文章

我看了一下,MetaWeblog 插件的方式是可行的,不过,这个插件功能太弱了!因此,今天我准备向大家介绍另一个类似插件:Movable Type XML-RPC for Joomla!。

 

Windows Live Writer
Windows Live Writer

Movable Type XML-RPC 这个名称看起来有点怪,因此,我先分解一下:

什么是 Movable Type

Movable Type,简称 MT,是由位于美国加州的 Six Apart 公司 推出的博客(blog)发布系统。它是全球最受欢迎的网志系统之一,包含多用户,评论,引用(TrackBack),主题等功能,并广泛的支持各种第三方插件。Movable Type 于2007年12月12日正式宣布以 GPLv2 的协议开源。

Movable Type Logo
Movable Type Logo

提起博客程序,大家最熟悉的莫过于 WordPress(简称 WP)。Movable Type 实际上是与 WP 齐名的一个 weblog 程序。与 WP 稍有不同,MT 不是 php 程序,而是 .cgi 程序构建的,因此安装过程有些复杂(笔者今天在 XAMPP 服务器上面折腾了近1个小时,还是没有安装成功)。不过 MT 的功能也相当强悍,官方网站甚至自称 MT 是一个 CMS。

目前 MT 的最新版本是 4.24,点击此处下载 Movable Type 英文原版点击此处下载 Movable Type 中文语言包

什么是 RPC

RPC 是 Remote Procedure Call(远程过程调用)的缩写,它是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。

如果你想了解 RPC 的详情,请参看维基百科中的解释:Remote procedure call

什么是 XML-RPC

XML-RPC 是一种使用 XML 文件来编码调用命令、同时使用 HTTP 作为传输方式的 RPC 协议,由 Dave Winer 在1998年创建。

孟岩 对 XML-RPC 的介绍是这样说的:

XML-RPC 是用 XML 来做 Web 服务的鼻祖,是一套实现跨 Internet 过程调用的规范和实现。它利用 HTTP 作为传输协议,使用 XML 作为消息请求的传输主体。XML-RPC 以一个消息体为 XML 格式的 HTTP POST 请求发送给服务器,服务器执行后将执行结果再以XML格式返回。比起 DCOM、CORBA、SOAP,它的优点主要是:

  1. 简单、轻量级;
  2. XML 编码,可读性增强,同时也便于手工修改;
  3. 利用 HTTP 传输,方便的穿透防火墙(80端口),便于使用 SSL 加密等。

缺点:

  • 对字符编码的支持不够,通常用 Base64 编码来解决中文问题;
  • Datetime数据类型没有时区;

 

什么是 MovableType XML-RPC?

综合上面的介绍,可以看出:MovableType XML-RPC 这个插件就是给 Joomla 新增一种 XML-RPC 功能,此插件能给 Joomla 添加 Movable Type 的 API 接口,从而使支持 Movable Type 的远程撰稿软件就能通过这个 API 来支持 Joomla。

也就是说,由于 Windows Live Writer 本身已经自带对 Movable Type API 的支持,因此在 Joomla 上面安装 MovableType XML-RPC 插件之后,就能通过 WLW 给 Joomla 网站远程提交文章了。

同时,由于 Windows Live Writer 与 Microsoft Word 都是微软公司的产品,兼容性很好,我们就能将 Word 制作的 .doc 格式文档内容复制、粘贴到 WLW 中,然后提交给 Joomla 网站。这对于那些拥有很多 Word 文档又想把这些 doc 文件转换为 Joomla 网页的用户来说真是最佳的解决方案。

那么,我们接下来详细介绍一下这个远程提交文章的方法。

 

{quickdown:1298} 

{quickdown:1300}

{mospagebreak_scroll heading=Movable Type 及 XML-RPC 介绍&title=在 Joomla! 1.5 上使用 Movable Type XML-RPC 插件}

本教程需用的软件:

  1. Joomla! 1.5.9 中文版
  2. MovableType XML-RPC plugin for J1.5 中文版
  3. Windows Live Writer 中文版

详细操作步骤:

第一步:安装 Joomla! 1.5.9

略。请参看《7步完成Joomla! 1.5 安装》

本教程将以一个在本地 XAMPP 测试服务器上安装的 Joomla! 1.5.9 来讲解,已知 Joomla! 安装在 http://localhost/159/ 目录。

第二步:安装并设置 MovableType XML-RPC 插件

以管理员身份登录到 Joomla! 1.5.9 后台,点击顶部菜单的“扩展 -> 安装卸载”,然后像安装其它扩展一样安装 MovableType XML-RPC 插件。

接下来进入后台的“插件管理”页面,找到 XML-RPC - MovableType API 这一项。此插件的参数很多,安装之后请仔细设置。例如:你可以自定义远程提交文章时图片储存的目录;你可以指定远程提交的文章归属于某个专用类别;你可以允许此插件自动填写 Meta 关键词和描述,等等。

设置完成后,启用 XML-RPC - MovableType API 插件。

然后,在“插件管理”中必须将原来默认启用的 XML-RPC - Blogger API 插件禁用。

还没有完。你必须进入后台的“全局设置 -> 系统 -> 系统设置”,将第三项“启用Web服务”设置为“是”。—— 这就相当于前面所说的 RPC 协议服务器端。

第三步:安装并设置 Windows Live Writer

微软 Live.com 官方网站提供的 Windows Live Writer 安装包是一个“半成品”,运行时需要再次下载文件来安装。如果你讨厌这种安装方式,可以从其它网站下载完整的 WLW 安装包,大概 5.6MB 左右大小。

安装完成之后,第一次运行时首先看到本文开头插图所展示的那个初始画面。然后就弹出下面的画面来引导用户配置 Windows Live Writer:

 

Windows Live Writer Startup
Windows Live Writer Startup

 

实际上这是让用户设置第一个远程连接帐号的过程。点击“下一步”,就看到下面的画面:

 

WLW Blog Service Choosing
WLW Blog Service Choosing

 

从上图中可以看出,WLW 默认为用户提供 Windows Live 中的“新建一个日志(博客)”服务。第二项 Windows Live Space 和第三项 SharePoint 都是微软的产品。我们用的 Joomla 网站当然与微软无关,因此我们选择第四项:“其他日志服务”。下一步就会看到:添加日志帐户。

 

WLW Add Account
WLW Add Account

 

上图中第一项“日志网址”必须填写你的 Joomla! 1.5.9 网站的真实 URL,例如,我们本例就是:http://localhost/159/ 。

用户名和密码就是你在该 Joomla 网站上的帐号。你自己应该知道的。如果使用的是私人电脑,就可以勾选“记住我的密码”,以方便以后直接登录。

点击“下一步”,Windows Live Writer 就开始分析 Joomla! 网站的网址和内容:

 

WLW Add analysis
WLW Account analysis

注意:这一步仅仅是根据刚才提供的博客网址来分析,还没有涉及到 XML-RPC。

分析结束后,就要求用户提供接口数据了。首先是日志类型:

 

WLW Blog Type
WLW Blog Type

 我们应该从上面的选单中选择“Movable Type API”作为日志类型; 

 

Movable Type API
Movable Type API

 

选择了这个日志类型之后,就要求填写“日志的远程发布 URL”,实际上就是 XML-RPC 的访问地址:

 

Movable Type Script
Movable Type Script

对于 Joomla! 1.5 来说,你就填写 /xmlrpc/index.php 文件的完整 URL 即可:

Remote Publish URL
Remote Publish URL

注意:这里填写的 URL 与具体使用的 XML-RPC 插件无关,相当于告诉 WLW 你的 RPC 协议服务器端接口地址。至于网站上采用哪一个 RPC 插件,将由 xmlrpc 功能去协调。

点击“下一步”,现在 WLW 就会尝试通过 RPC 协议去登录 Joomla 网站。

有些用户发现,在这里点击“下一步”后遇到下面的问题:

Authentication failed
Authentication failed

从错误消息中 Authentication failed 就能看出:意思是身份验证错误!

出现这个错误的原因是:你的 Joomla 网站上可能有多个用户,而你刚才提供的那个用户帐号只是普通的 Registered(注册会员),还没有拥有 Author(作者)权限,不能提交文章,因此验证失败。

也就是说,如果你想通过 Windows Live Writer 向 Joomla 1.5 网站远程提交文章,那么你必须使用 Joomla 网站上具有 Author 权限或更高级别的用户帐号。

如果你提供的帐号权限足够,就会看到如下画面:

WLW connecting to Remote Joomla
WLW connecting to Remote Joomla

WLW 会自动将编辑主题(editor template)下载到本地,以方便你撰写文章。

然后,WLW 会询问你是否创建临时日志来测试,建议选择“否”:

Temprary blog?
Temprary blog?

这时候整个 WLW 的初次配置过程就结束了:

WLW setup finished
WLW setup finished

在完成配置后,WLW 还允许你为这个博客设定一个“昵称”。因为 WLW 可以同时支持多个用户帐号向多个网站提交文章,你必须借助这些“昵称”来区分不同的网站。默认是采用网站名称,后面方括号里面的 Latest 是 MovableType XML-RPC 插件默认的文章提交类别。

点击上图中的“完成”按钮,就进入了 Windows Live Writer 的工作界面。

下图展示的是 WLW 的编辑窗口:

Windows Live Writer blog Editor
Windows Live Writer blog Editor

如果你还想添加其它帐号或网站,可以点击主界面菜单上的“工具 -> 帐户”来添加。 

WLW 有丰富的设置参数,例如,它还提供了主动 Pingback 的功能:

WLW options - Pingback
WLW options - Pingback

如果用户在这里填写若干搜索引擎或网摘网站的 Ping 网址,就能在提交文章的同时自动“通知”它们:我的网站发布了一篇新文章,请收录。

另外,WLW 还允许用户选择图片的上传目标:可以选择上传到你的 Joomla 网站,也可以上传到第三方图片储存空间:

WLW options - Image uploading
WLW options - Image uploading

 为了确保图片链接的有效性,还是建议上传到自己网站上。

第四步:把 Word 文档上传为 Joomla 文章

在 Windows Live Writer 的编辑窗口中,首先填写文章标题。然后,用 Word 软件打开你的 doc 文档,复制该文档的全部内容(除标题外),粘贴到 WLW 的编辑窗口中,点击左上角的“发布”按钮,就能立即传送到 Joomla 网站上去。

注意:MovableType XML-RPC 插件没有“文章提交后需要审核”的选项,当用户在 WLW 中点击了“发布”按钮之后,该文章就会立即出现在 Joomla 网站上,访客马上就能阅读。笔者测试发现,WLW 还能将 Word 文档中比较大的图片自动生成缩略图,提交到 Joomla 网站后就显示小图,点击小图则显示大图。

 

 

{quickdown:1298} 

{quickdown:1300}

{mospagebreak_scroll title=在 Joomla! 1.0.x 上使用 Movable Type XML-RPC 插件}

 MovableType XML-RPC 的作者同时还开发了针对 Joomla! 1.0.x 平台的插件,使得 J1.0 用户也能享受通过 Windows Live Writer 远程提交文章的乐趣。

由于 Joomla! 1.0.x 系列本身没有 XML-RPC 功能,因此使用这个插件时就多了一些步骤:

  1. 你的 J1.0 核心版本必须是 Joomla! 1.0.13+
  2. 下载 MovableType XML-RPC for J1.0 安装包并解压,内含一个 txt 格式说明文档和两个 zip 格式压缩包;
  3. 将 xmlrpc.zip 压缩包解压,得到一个 xmlrpc 文件夹,将此文件夹上传到 Joomla! 1.0.x 网站的根目录下;
  4. 通过 J1.0 后台,以安装触发器的方式安装另一个压缩文件: movabletype_2.2.1_english_for_1.0.x.zip;
  5. 启用刚刚安装的 MovableType XML-RPC 触发器,按照需求设置其参数;
  6. 在 Windows Live Writer 中配置的过程参看上一页,基本相同;

 

{quickdown:1300} 

{quickdown:1298}

 

{mospagebreak_scroll title=使用 Windows Live Writer 的相关话题}

按照本文前面介绍的方法,相信每个 Joomla 用户都能很快设置好 Windows Live Writer 并通过它向自己的 Joomla 网站上远程提交文章。WLW 还能很方便地将 MS Word 的 doc 文档上传为 Joomla 文章(应该也能支持其它 Office 文档,如 WPS 或者 OpenOffice.org 等,未经测试),看起来几乎可以用 WLW 来代替“登录到 Joomla 然后撰写文章”的传统模式了。

不过,笔者在测试过程中发现几个问题,在此一并提出来,供大家参考:

  • Windows Live Writer 自带“插件”功能,用户可以安装一些针对 WLW 的插件来增强 WLW 功能。参看:《Windows Live Writer的几个实用插件
  • 安装 WLW 要求 PC 上已安装 Microsoft .NET Framework 2.0 ,如果你发现 WLW 无法安装,很可能是没有安装这个环境。其它原因参看:《windows live Writer下载 及 相关问题解决办法》
  • 在 WLW 中粘贴表格的技巧见:《Windows Live Writer 使用技巧之粘贴表格》
  • Windows Live Writer 允许将完成的文章保存到本地,然后在指定时间自动发布;
  • 如果在 WLW 中点击“预览”,将自动套用你的 Joomla 网站样式来预览文章;
  • WLW 自身没有提供 Meta 关键词和描述功能,如果让 MovableType XML-RPC 插件来自动提取,难免产生不满意的结果;
  • WLW 没有“标题别名”功能,而在 Joomla 1.5 中“标题别名”是重要的 SEO 因素之一;
  • 如果你从 Word 中复制了图文并茂的内容到 WLW 然后提交到 Joomla 网站,则网站上图片的文件名 WLW 生成的(如:clip_image002.jpg),用户不能控制图片的文件名。实际上图片的文件名也对 SEO 效果有一定影响;
  • 如果你的 Joomla 网站首页是博客布局,希望新文章都出现在首页,那么 WLW 做不到。因为通过 WLW 提交的文章虽然立即被自动发布,但却不能发布到“首页”;
  • 如果直接在 Joomla 中撰写文章,我们可以通过某个插件实现“点击引言部分的插图就打开全文页面”功能;但是如果你通过 WLW 撰写同样的文章,也在引言部分插入图片,那么当文章提交之后,在网站上点击该插图,就不能打开全文页面;
  • WLW 是面向 Windows 操作系统的,那么如果 PC 上运行的是 Linux 操作系统怎么办?这时候不能用 Windows Live Writer 了,不过,MovableType XML-RPC 插件还支持另一个离线撰写软件:ScribeFire,这是一个 FireFox 浏览器的外挂。只要你能运行 FireFox 浏览器,就能通过 ScribeFire 继续使用 MovableType XML-RPC 提供的远程撰稿功能!

综上所述,通过 Windows Live Writer 来向 Joomla 网站提交文章的方法还存在一些缺陷,目前还不能完全替代“登录到网站撰写文章”的方式。因此,请各位 Joomla 用户结合这两种方式,互相弥补,以便创造更多的方便。

 

{quickdown:1300}

{quickdown:1298}