cnblogs和org2blog使用總結

cnblogs和org2blog使用總結

cnblogs和org2blog使用總結

1 前言

只要用過emacs的人,確定都明白org-mode的強大,不管是記事,寫博客,仍是進行gtd,都是很是好用的。 做爲接觸emacs和org-mode一段時間的人,我也按耐不住要用他來寫博客了,目前的只在博客園寫過博客, 因而通過一番查找,鎖定了cnblogs和org2blog這兩個插件,下面作下對比。 php

2 功能

二者配置好後均可以向博客園推送文章,修改文章等等,但因爲cnblogs是國人專門爲了向博客園發佈文章寫的插件, 因此功能更專注,默認的快捷鍵也很是的舒服,c-c c p便可發佈一篇新的博客 html

org2blog相對來講功能更多,但實際用的上的也就那麼三四個,並且在全都試用事後,發現cnblogs發佈出來 的頁面更加好看,因此我最後選擇的是cnblogs,即便這個已經好幾年沒更新了,但確實很好用,感謝做者Open Source的開源。 linux

3 spacemacs安裝cnblogs

在這以前先報一下個人電腦環境狀況 git

  • manjaro linux 64位
  • emacs 26.1
  • spacemacs v200.13

以前emacs的配置是本身來管理的,用着也還算舒服,但自從用了spacemacs以後,我只能說——真香! github

好了,回到正題,說下我安裝cnblogs的步驟,首先新的插件要放到spacemacs的新的層中: Configuration layers 服務器

而後在該做者的博客中瞭解到如何配置: 用Emacs管理博客園博客 post

在上面下載壓縮包或者去github找到地址後在本地克隆一份cnblogs插件: 管理博客園博客的Emacs擴展 測試

接下來在emacs中新建層,名爲blog,在package.el中填寫配置: url

(defconst blog-packages
  '(
    (cnblogs :location local)
    ))

(defun blog/init-cnblogs ()
  (use-package cnblogs)
  (add-hook 'org-mode-hook 'cnblogs-minor-mode)
  )

在新建的層的目錄裏新建local文件夾,將插件文件夾重命名爲cnblogs,放到local下,這樣配置就結束了。 spa

然而事情沒那麼簡單

4 遇到的坑

在完成以上步驟以後,我覺得大功告成,能夠享受org-mode加上這個插件帶來的方便了,畢竟他們的教程裏也是 作完這些就順利使用,而我這裏卻出了些問題

首先,按照教程先設置登陸信息,其中id爲本身博客地址欄的那個英文,個人就是recallfuture, username指的是登陸用戶名,不是暱稱,因此個人仍是recallfuture。

設置好後會問是否須要將博客同步到本地,這個選是就能夠。

到這裏爲止也一切順利,不過接下來當我隨便寫了點東西發佈的時候,卻怎麼也發佈不上去,爲了找到問題所在, 我又按照網上的教程配置好了org2blog,結果都是一樣的問題:

error in process sentinel: url-http-create-request: Multibyte text in HTTP request: POST /xmlrpc.php HTTP/1.1

接着用各類不一樣的方式測試,最後發現只要博客中不出現任意中文,就能成功發送…是bug沒錯了

在百度查詢無果,最後在谷歌找到了關於這個bug的討論: Why can not support Chinese in the .org file?

bug的緣由大意就是, 沒法正確計算帶有中文的buffer的字節數,因而在向服務器post數據的時候填寫了錯誤的長度數值, 服務器沒法正確讀取post數據,從而形成無響應的情況。

解決方案是用修復過的xml-rpc.el文件: xml-rpc.el

用這個替換cnblogs和org2blog插件目錄裏的xml-rpc.el文件,以後就能夠正常發佈帶中文的博客了

至此,保存文件,按下c-c c p,博客就發佈到博客園,很是舒服。

5 一些實用的代碼

美化博客中的引用代碼,加上自定義snippet: 使用org-mode寫cnblogs博客

Date: 2018-06-16 19:01

Author: su

Created: 2018-06-18 一 17:37

Validate

相關文章
相關標籤/搜索