用 Emacs 的 Org-mode 撰写博客园博文
用 Emacs 的 Org-mode 撰写博客园博文
Table of Contents
1. 背景
- 操作系统:Ubuntu 20.04
- 测试浏览器:Chrome, Firefox
- 本文目的:Ubuntu 18.04 折腾瘫了后,系统安装了 Ubuntu20.04。所以,针对使用 cnblogs 撰写博文,重新对 emacs 进行了配置。为了备忘及借鉴,撰写此文。
- spacemacs: 0.300@27.1
2. 配置
我的配置总体是参考原作者 Hu Wenbiao 的博文:
https://www.cnblogs.com/Open_Source/archive/2012/09/14/2684897.html
但是,由于该博文撰写的时间距今已较长,Hu Wenbiao 的 Github 最近也没有更新,所以有几个地方需要注意。下面结合配置步骤进行说明。
2.1. Emacs 副模式 cnblogs-minor-mode 的配置
关键是 3 个 el 文件,文件名分别为:
cnblogs.el metaweblog.el xml-rpc.el
Hu Wenbiao 博文的 zip 文件中,或者他的 github 中,均有这 3 个文件,但是第 3 个文件版本过旧,会产生错误。所以,第 3 个文件 xml-rpg.el 需要从下面的 github 中下载:
https://github.com/xml-rpc-el/xml-rpc-el
这 3 个文件准备好后,把它们放到一个目录中,比如~/.emacs.d/cnblogs/,然后将这个目录加入到 load-path 中:
(add-to-list 'load-path
"~/.emacs.d/misc/")
然后再:
(require 'cnblogs)
2.2. cnblogs.el 文件的修改
由于博客园的 MetaWeblog 访问地址已经改为以下形式:
https://rpc.cnblogs.com/metaweblog/用户名
所以,cnblogs.el 文件中相应的内容要进行修改。
2.3. emacs 的配置
我用的是 Spacemacs,配置如下:
(add-to-list 'load-path "~/.emacs.d/cnblogs/")
(require 'cnblogs)
(setq cnblogs-file-root-path "根目录路径")
(add-hook 'org-mode-hook (lambda ()
(cnblogs-minor-mode)))
(setq org-export-show-temporary-export-buffer nil)
3. 问题及解决方法
3.1. 修改帖子后不能更新
在 Emacs 中修改博文后,使用 cnblogs-edit-post 命令更新博文时,提示该博文没有发布过,建议作为新博文进行发布。产生该问题的本质是该博文的 org 文件没有和博客的博文建立起关系。
这个问题的解决方法:首先,使用 cnblogs-setup-blogs 登陆博客。在登陆的过程中,ID、用户名和密码输入完之后,会逐篇博文提示是否更新本地博文与博客博文的连接关系。在这个过程中,可以输入 y 来确认建立起本地博文与博客博文的关系。如果博文太多,也可以通过 cnblogs-import-folder 或 cnblogs-import-file 命令,把相应的本地博文与博客博文建立起关系。
浙公网安备 33010602011771号