Debian下用emacs的org2blog插件写wordpress博客

1.概述

自从适应了vim或者emacs的编辑模式之后,已经无法忍受其他编辑器的编辑速度,无法在文档内部快速移动的感觉让人很抓狂;为了实现这一“梦想”,前一篇博文足足写了3个星期,蛋疼无比的wordpress默认编辑器总是会自动转义一些字符,在html模式和visual模式相互切换的时候还会自动插入一些无用的代码,为了折腾emacs的org mode环境,又得重新折腾折腾linux环境了,装个软件总出错,不让人省心啊;刚开始想直接用ubuntu,省事,好久没用,LTS的版本都彪到12.04了,不想在实体机上折腾linux了,索性直接在虚拟机里面安装,但ubuntu用他自己的unity桌面,运行起来相当地慢,让我这老爷机情合以堪,无法启动;想起了gentoo,当年大学的岁月就是折腾系统的岁月,折腾系统的岁月就是折腾gentoo的岁月;可是当时无法识别我的dvd刻录机,水平有限,整了很久没有找到解决方案,我心已死,只能把gentoo深深埋在心底;于是乎,思来想去,还是Debian吧,感觉很好,相当稳定。
在这里,把折腾过程记录下来,有些地方可能对新手有用,避免走弯路。

2.安装debian

现在比较懒了,直接在网上找linux的vmware镜像,发现两个不错的网站推荐给同样需要的童鞋。
thought police,这里应该是最出名的提供linux和FreeBSD的vmware iso镜像下载,提供CentOS,Debian,Fedora,FreeBSD,Ubuntu,OpenSUSE的镜像,很不错;不过这里的镜像大多是没有桌面环境的。
trend sigma,这里vmware iso镜像很不错,提供Bodhi,Debian,Fedora,Mint,Ubuntu,Lubuntu,openSUSE的镜像下载,我就是用这里的Debian 6镜像。
注意:trendsigma的Debian 6有两个镜像,一个带vmwaretool,这个版本预装的软件会多一些;一个不带vmware tool,这个版本预装的软件会少些;建议使用带vmware tool的版本,因为第二个版本你需要安装vmwaretool,比较麻烦,还会出现如下的错误:
Searching for GCC...
The path "/usr/bin/gcc" is not valid path to the gcc binary.
Would you like to change it? [yes] 

即使已经有gcc,但是还是会出现这样的错误,因为一些头文件没有正确安装, 解决办法(参见:superuser.com):

sudo aptitude install libglib2.0-0 gcc-4.3 make linux-headers-`uname -r` -y

3.安装emacs和org mode

emacs就不多介绍了,简单介绍一下emacs的org mode,这是一个神器,文本编辑终极解决方案。
来自wiki pedia:
Org-mode is an editing mode in the text editor which supports the editing of plain text hierarchical documents. It has specific support for a number of different use cases, such as writing to-do lists, project planning, and writing web pages. For example, to-do items can optionally be given priorities and deadlines, subdivided into sub-to-dos or checklists, and given tags and properties. An agenda for the items to be done this week can then be automatically generated by Org-mode.[2] Org-mode also includes a lightweight markup language (similar in function to Markdown, reStructuredText, Textile, etc., but with a different implementation) for text formatting such as *bold*, /italic/, =code=, ~verbatim~, _underlined_, +strike-through+, | tables |, – lists, – [X] checkboxes, * headlines… According to the short description by Org-mode author Carsten Dominik, “Org-mode does outlining, note-taking, hyperlinks, spreadsheets, TODO lists, project planning, GTD, HTML and LaTeX authoring, all with plain text files in .”[3] Most aspects of Org-mode’s behaviour are customisable, in the standard ways (that is, either by setting variables directly, or by using the more user-friendly Customize interface). Since version 22, Org-mode has been part of [4] – although it is also released separately, and newer versions of Org-mode than the ones shipped with are often available.

3.1 安装:

sudo apt-get install emacs23
cd ~/.emacs.d (没有就创建)
wget http://orgmode.org/org-7.9.1.tar.gz
tar zxvf org-7.9.1.tar.gz
cd org-7.9.1
make config
sudo make install

3.2 激活org mode:

添加如下代码到你的~/.emacs文件里面(没有就创建):
(add-to-list 'load-path "~/.emacs.d/")
(add-to-list 'load-path "~/.emacs.d/org-7.9.1/lisp")
(add-to-list 'load-path "~/.emacs.d/org-7.9.1/contrib/lisp")
(require 'org-install)
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
(transient-mark-mode 1)

4.安装org2blog

org2blog是把org模式的文章发布成wordpress格式的文章,理论上,也可以发布为其他博客系统的格式。
下面是来自官方网站的介绍:
/wp is a tool to publish directly from Emacs’ org-mode to blogs. org2blog/wp is one of the two packages named org2blog. The other is org2blog/atom by Tom Breton. org2blog/wp should, ideally, work with any platform that supports xml-rpc but some of specific features may not work. org2blog was inspired by and based on a posting client for muse-mode written by Ashish Shukla. org2blog is licensed under GPLv3.

4.1 安装

cd ~/.emacs.d
git clone http://github.com/punchagan/org2blog.git

把如下代码添加到~/.emacs文件中去:

(setq load-path (cons "~/.emacs.d/org2blog/" load-path))
(require 'org2blog-autoloads)

4.2 org2blog使用方法

这里不介绍,请看参考文献

4.3 一些问题

默认情况下org2blog是把org格式的文章转换成wordpress的文章格式;如果你已经有写好的wordpress文章,但是还是草稿状态,需要转换成org格式的文章,怎么办? org2blog的作者已经写好一个python程序,可以把wordpress的xml格式转换成org格式的文章。具体做法就是到wordpress后台,导出文章为xml格式,然后用这个python脚本转换成org文件,emacs直接编辑就行了。
还有一些问题,如果要批量转换怎么办?可以在wordpress后台新建一个用户,把那些要转换的文章划归到那个用户下,然后导出就行。
在debian squeeze下用org2blog-importers转换的时候,需要安装pandoc程序,因为debian squeeze实在保守了,保守的结果就是稳定,因此源中的软件包版本一般都会比较低,我在debian squeeze上安装pandoc的时候没少受苦,主要是ghc的版本太低,命令行安长cabal-install,然后安装pandoc,无法安装成功,如下错误信息:
base-3.0.3.2 requires syb ==0.1.0.2
however
syb-0.1.0.2 was excluded because json-0.5 requires syb >=0.3.3

官方提供的方法:

cabal install cabal-install
cabal install json-0.4.4
cabal install 

也还是无法解决问题,原因就是ghc的版本太低,6.2的;所以你要自己编译安装最新的ghc,然后再安装pandoc。到这里下载安装最新的ghc,然后到这里下载安装Haskell平台。

5.参考文献

知识共享许可协议
本作品《Debian下用emacs的org2blog插件写wordpress博客》verynix创作,采用知识共享署名-非商业性使用-禁止演绎 3.0 Unported许可协议进行许可。
基于verynix.com上的作品创作。
Permissions beyond the scope of this license may be available at verynix.com.

本文链接: http://verynix.com/emacs-org2blog-wordpress.html

Post Footer automatically generated by wp-posturl plugin for wordpress.

5 thoughts on “Debian下用emacs的org2blog插件写wordpress博客

  1. yam

    博主你好,你这里使用 org2blog 发布的 blog 的目录和标题都是带有标题号(1.1,1.2…)之类的。请问这是需要设置的,还是跟 blog 的模板有关系、或是其他?我设置了 #+OPTION: toc:t num:t,可是只是在目录里头出现了标题号,文章里面却还是没有标题号的。比较费解。。。

    Reply
    1. verynix Post author

      num这个选项是用来打开或者关闭生成目录中的标题号,和正文中的标题号没有关系。
      也就是说,你想要正文中的标题产生标题号,你得自己输入。

      Reply
    2. verynix Post author

      也有可能有方法自动生成正文中的标题,然后num:nil,你可以研究研究,知道了告诉我一下。

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *