Carbon Emacsからはてなダイアリーライターとsimple-hatena-modeを使ってはてなダイアリーに投稿する

先日のmimithon#2以来,id:syou6162に勧められてインストールしたCarbon Emacsの設定をいろいろ書いてみてる.Emacsの設定をガリガリ書くなんて久し振り.
で,そのmimithon#2の時にid:syou6162がCarbon Emacsからはてなダイアリーに投稿する現場を目撃したので,試しに自分も同じような環境を作ってみた.

はてなダイアリーライター(はてダラ)をインストールする

まず,はてなダイアリーに記事を投稿するスクリプト「はてなダイアリーライター」をインストールする.下のリンク先のスクリプトを保存してPATHの通っているディレクトリにhw.plとして設置する.

http://www.hyuki.com/techinfo/hatena_diary_writer.html#script


以下は~/local/binにインストールする場合の例(PATHが通っていることが前提).

$ cd ~/local/bin
$ (vimやらemacsやらcatやらを使ってブラウザからスクリプトをコピペ保存)
$ chmod 755 hw.pl

ここではMacPortsでインストールしたPerlを使う.hw.plの一行目をMacPortsのPerlのパスに書き換える.

#!/opt/local/bin/perl

試しにhw.plを引数なしで実行する.

$ hw.pl
No files are posted.

上のように出力されれば大丈夫.

$ hw.pl
WARNING: Crypt::SSLeay is not found, use non-encrypted HTTP mode.
No files are posted.

上のようにCrypt::SSLeayのWARNINGが表示される場合は,MacPortsで関連パッケージをインストールする.

$ sudo port install p5-crypt-ssleay p5-lwp-authen-wsse

MacPorts便利.CPAN爆発しろ*1

simple-hatena-modeをCarbon Emacsに導入する

次に,Emacsのメジャーモード「simple-hatena-mode」をインストールする.

http://coderepos.org/share/wiki/SimpleHatenaMode


以下は~/.elispにsimple-hatena-mode.elをインストールする場合の例.

$ mkdir ~/.elisp
$ cd ~/.elisp
$ svn co http://svn.coderepos.org/share/lang/elisp/simple-hatena-mode/trunk simple-hatena-mode

.emacsに以下を記述する.

(add-to-list 'load-path "~/.elisp/simple-hatena-mode/")
(require 'simple-hatena-mode)


最後にsimple-hatena-modeの初期設定を行う.

Carbon Emacsを起動して,M-x simple-hatena-setupを実行すればIDやグループなどの初期設定を一度に行うことができる.
これで準備OK.

投稿方法

M-x simple-hatenaを実行すると,simple-hatena-modeが起動して自動的にその日の日記用ファイル(YYYY-MM-DD.txt)が開き,記事が書けるようになる.
一行目に書いたものは日付の横に表示されるタイトルになる(不要な場合は空行にすればよい).各記事の見出しや本文は二行目以降に書く.
書き終わったらC-c C-pで投稿.簡単.


その他詳しいことについては以下を参照.
simple-hatena-modeが提供するコマンド - SimpleHatenaMode – CodeRepos::Share – Trac

注意点

simple-hatena-mode(というかはてダラ)は日付単位で記事を投稿する.新しい記事を投稿する時でその日の記事が既にはてダにアップされている場合,はてダラは既存の記事を新しい記事で上書きしてしまう.従って,

  1. ブラウザなどからはてなダイアリーに記事を投稿
  2. simple-hatena-modeで同じ日の日記を投稿(1の日記の内容は含まない)

上のようなことをすると,1で書いた日記は上書きされて完全に消えてしまうので注意*2

simple-hatena-modeを使うなら,同じ日の記事を投稿する手段はsimple-hatena-modeだけに統一した方がよさげ.

以上

次は本命のVimから投稿できるようにしたい.
simple-hatena-modeで使うYYYY-MM-DD.txtやグループ情報をうまく共有しながら投稿できると理想的だけど,そんなことできるのかしらん.

*1:CPANでCrypt::SSLeayをインストールしようとしたら訳分からないエラーばっかり出て時間を奪われまくった.CPANではよくあること.

*2:経験者は語る.