用 Emacs 的 Org-mode 撰写博客园博文

用 Emacs 的 Org-mode 撰写博客园博文

用 Emacs 的 Org-mode 撰写博客园博文

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 命令,把相应的本地博文与博客博文建立起关系。

Date: 2021-01-24 Beijing(初稿日期、地点)

Created: 2021-07-14 三 15:51

Validate

posted @ 2021-03-13 16:13  舒岱梓  阅读(178)  评论(0)    收藏  举报