org2blogをインストールしてWordPressにEmacsから記事を投稿する

    はじめに

    emacsなら、なんでもできると信じている今日このごろなので、WordPressにもEmacsから記事の投稿ができたらいいなと思います。そんななかリサーチしてみたら、選択肢としては、以下のようなものがありました。

    こんな感じなので、org2blogをつかってみます。

    環境

    • cygwin               1.7.18-1
    • emacs                24.3-1

    org2blogのインストール

    org2blogとは、Emacsのorg-modeでかかれたドキュメントをWordPress用に変換して投稿するEmac Lispです。

    以下の3つが必要。

    • org2blog
    • metaweblog.el
    • xml-rcp.el

    githubからorg2blogとmetaweblogをまずは取得。

    $ git clone git://github.com/punchagan/org2blog.git
    $ git clone git://github.com/punchagan/metaweblog.el.git

    org2blogディレクトリをload-pathの通った場所に配置します。例えば .emacsに以下を追記。metaweblog.elも同様にロードパスの通ったところへ。(or2blog配下でよい)

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

    xml-rcp.elも以下から取得。ロードパスの通った場所に配置します。

    https://launchpadlibrarian.net/40270196/xml-rpc.el

    ブログの設定も.emacsに書きます。以下を参考に適当に編集。

    (setq org2blog/wp-blog-alist 
           '(("wordpress" 
              :url "https://username.wordpress.com/xmlrpc.php"  ;;xmlrcp.phpのURL
              :username "username"  
              :password "password" 
              :default-title "Hello World" ;; デフォルトタイトル
              :default-categories ("daily") ;;カテゴリを指定 
              :tags-as-categories nil))) ;; タグを指定

    設定が終わったら、emacsを再起動。

    org2blogの使い方

    接続確認をします。ミニバッファで以下を入力し、サーバにログインできます。

    M-x org2blog/wp-login

    新しい記事を作成するには、以下を入力。

    M-x org2blog-new-entry

    テンプレートが呼び出さます。

    [C-c d]で下書き保存され、[C-c p]で公開されます。

    詳しくは、README参照。これは便利だー(^O^)

    https://github.com/punchagan/org2blog

    [https://www.youtube.com/embed/5cBghog4hn0?rel=0]

     追記

    パスワード入力を省略する方法があるようだ。まずは、~/.netrcに以下を追記。

    echo "machine myblog login username password yourpassword" > ~/.netrc 

    init.elにも以下を追加。

    (require 'netrc) ;; or nothing if already in the load-path
    (setq blog (netrc-machine (netrc-parse "~/.netrc") "myblog" t))
    (setq org2blog/wp-blog-alist
          '(("my-blog"
             :url "https://username.server.com/xmlrpc.php"
             :username (netrc-get blog "login")
             :password (netrc-get blog "password"))))

    参考