Table of Contents

概要

org2blogでブログ記事を投稿する際必要になるログイン作業を .netrc を使うことにより簡略化します。

環境

  • emacs 24.5.4
  • org2blog 1.0.1

設定

(use-package org2blog :ensure t :defer t
  :init (setq org2blog/wp-keymap-prefix "C-c n")
  :bind (
         ("C-c n n" . org2blog/wp-new-entry)
         :map org-mode-map
         ("C-c n i" . org2blog/wp-login)
         ("C-c n o" . org2blog/wp-logout)
         ("C-c n p" . org2blog/wp-post-buffer-and-publish)
         ("C-c n d" . org2blog/wp-post-buffer)                   ;; post as draft
         ("C-c n D" . org2blog/wp-post-buffer-as-page)           ;; post as draft
         ("C-c n l" . org2blog/wp-insert-post-or-page-link))
  :config
  (org2blog/wp-reload-entry-mode-map)

  (use-package netrc
    :config
    (setq cotoday (netrc-machine (netrc-parse "~/.netrc") "conao3" t)))

  (setq org2blog/wp-show-post-in-browser     'show
        org2blog/wp-use-sourcecode-shortcode t
        org2blog/wp-blog-alist `(("today-note"
                                  :url "http://conao3.com/xmlrpc.php"
                                  :username ,(netrc-get cotoday "login")
                                  :password ,(netrc-get cotoday "password")
                                  ;; :wp-code t
                                  )))

  (prog1 "Setting templete with wp-new-entry"
    (setq org2blog/wp-buffer-template
          "#+DATE: %s
#+OPTIONS: toc:t num:nil todo:nil pri:nil tags:nil ^:nil
#+CATEGORY: %s
#+TAGS: %s
#+TITLE: %s
#+PERMALINK: %s
* 概要
#+HTML: <!--more-->
* 環境\n")

    (defun my-format-function (format-string)
      (format format-string
              (format-time-string "[%Y-%m-%d %a %H:%M]" (current-time))
              (read-string "input category: " "emacs")
              (read-string "input tags: " "emacs")
              (read-string "input title: ")
              (read-string "input permalink-keyword: ")))
    (setq org2blog/wp-buffer-format-function 'my-format-function)))

prog1 は実際いりません。foldingのlabelとして使っているだけなので、気になる人はとっても構いません。

netrcの設定について、StackExchangeの記事の通り、バッククオート、カンマを追加することにより動くようになりました。

それらを追記する前は Debugger entered--Lisp error: (wrong-type-argument stringp netrc-get) と出て ログインできませんでした。

ホームディレクトリに置いた .netrc には

machine <fragname> login <username> password <password>

と書いてあります。 角括弧の中身が変更箇所で、<fragname>の中にはわかりやすい名前を指定します。 これは (netrc-machine) で指定するキーワードになります。

.netrc は行指向なので、一行に一エントリにしないと動きません。