用 Emacs Org 撰写博客

org2blog 是什么

org2blog 是用来把 org-mode 格式的文章发布到 wordpress 的工具。其实之前使用 webloger.el 也可以发布到 wordpress,不过是 webloger.el 已经基本没人维护了,这个 org2blog 作者支持还很积极,另外 org-mode 还提供了一些额外的方便编辑的方法,所以其实是个不错的东东。

安装

其实按照上面地址的内容,安装很简单。

git clone http://github.com/punchagan/org2blog.git
(setq load-path (cons "~/.emacs.d/org2blog/" load-path))
(require 'org2blog-autoloads)
  1. 依赖 xml-rpc ,添加到 load-path
  2. 需要最新版本的 org-mode,我使用的是 emacs 24 里面的 7.7,之前使用 7.5(?) 的时候,遇到了发布的时候会在文章结尾附加 导致 blog 的展现挂掉的问题。

使用

配置

;;
;; org2blog
;;

(require 'org2blog-autoloads)
(setq org2blog/wp-blog-alist
      `(("abc"
         :url "http://abc.com/xmlrpc.php"
         :username "admin"
         :password PWD
         :keep-new-lines t
         :confirm t
         :wp-code nil
         :tags-as-categories nil)
        ))

(setq org2blog/wp-buffer-template
  "#+DATE: %s
#+OPTIONS: toc:nil num:nil todo:nil pri:nil tags:nil ^:nil TeX:nil
#+CATEGORY: Heart
#+TAGS:
#+PERMALINK:
#+TITLE:
\n")

我不使用 wordpress 的 code 格式,所以设置了 wp-code 为 nil。可以定义多个 blog。

登陆,发帖

M-x org2blog/wp-login 会提示你要登陆哪个 blog
M-x org2blog/wp-new-entry 会使用设置的 template 打开一个 buffer
M-x org2blog/wp-post-buffer 保存成 draft
M-x org2blog/wp-post-buffer-and-publish 真实发布

另外,还可以发布一个 tree 而不是整个 org 文件,以及一些其他的操作就不多说了。

发布源代码可以使用 BEGIN_SRC END_SRC 块,或者冒号开头的行会被当作源代码。

我使用的是 wp-syntax,所以发布源代码使用 BEGIN_HTML 在里面使用 pre 标签,这样出来的代码会加上格式高亮。

#+BEGIN_HTML
<pre lang="lisp">
(setq a 1)
</pre>
#+END_HTML

其他

使用 org2blog 只能从 org 发布到 wordpress,不能从 wordpress 回到 org 文件再进行编辑,不过我看到有人已经提供了一个解决方法,或许将来也会支持这个功能。

使用 org2blog 发布很讨厌的一点是,他会把你的 org 加上很多的 html 代码,再编辑的时候比较讨厌。

org2blog 在 github 的页面 https://github.com/punchagan/org2blog 上面有不少有用的东西,建议看看。

原文地址:https://www.cnblogs.com/babe/p/2441588.html