simple-hatenaを使ってみる


なんだか最近vimの設定ばっかりなのでemacsでhatenaダイアリーに投稿出来る、simple-hatena-mode.elを使ってみる。

インストール


simple-hatena-modeリポジトリから取得

svn co http://svn.coderepos.org/share/lang/elisp/simple-hatena-mode/trunk ~/.emacs.d/site-list/simple-hatena-mode


はてなダイアリーライター(略称:はてダラ)からhw.plをコピーして以下に配置

~/.emacs.d/bin/hw.pl


~/.profileにhw.plのパスを設定

PATH = ~/.emacs.d/bin:$PATH

設定

simple-hatena.elの読み込み

(setq load-path
(cons "~/.emacs.d/site-list/simple-hatena-mode" load-path))
(require 'simple-hatena-mode)


デフォルトユーザIDの設定

(setq simple-hatena-default-id "suusuke")

実行


emacsから

M-x simple-hatena


さらに投稿

C-c C-p


Now Posting...の表示が出てきたが投稿されない...

hw.plがちゃんと動作するか確認

$ hw.pl


実行しても何も表示されない。


perlコマンドからhw.plを実行

$ perl
$ ここにhw.plを張り付け

Crypt::SSLeay is not found, use non-encrypted HTTP mode


SSLeayが無いといわれたのでCPANよりインストールし、エラーは出なくなった。


もう一度、C-c C-pより投稿してみる。


やっぱり、Now Posting...野表示が出てきて投稿されない。


何が原因なんだろう??


emacs使ってて思うけど、やっぱvimより使いやすい。


次、投稿する時まで原因を解明する。

~/.emacs.el


今のemacs.el

;;; color theme
;;; http://www.cs.cmu.edu/~maverick/GNUEmacsColorThemeTest/index-el.html
(require 'color-theme)
(color-theme-initialize)
(color-theme-arjen)


;;; window setting
(if (boundp 'window-system)
    (setq initial-frame-alist
          (append (list
                   '(vertical-scroll-bars . nil) ;;スクロールバーはいらない
                   '(width . 120) ;; ウィンドウ幅
                   '(height . 45) ;; ウィンドウの高さ
                   '(top .     0) ;;表示位置
                   '(left . 1100) ;;表示位置
                   )
                  initial-frame-alist)))
(setq default-frame-alist initial-frame-alist)


;;; 行数表示
(line-number-mode t)


;;; optionをメタキーにする。
(setq mac-option-modifier 'meta)


;;; ウィンドウを透明化
(add-to-list 'default-frame-alist '(alpha . (0.85 0.85)))


;;; フレーム(ウィンドウ)をMETA + 2で新たに開く
;;; フレーム(ウィンドウ)をMETA + 0で閉じる
(global-set-key "\M-2" `make-frame)
(global-set-key "\M-0" `delete-frame)


;;; ウィンドウ上部のアイコンの列は使わないので消す
(tool-bar-mode 0)


;;; C-hが使えるようにする 
(load "term/bobcat")
(when (fboundp `terminal-init-bobcat)
  (terminal-init-bobcat))


;;; C-spaceで選択した箇所を可視化
(setq-default transient-mark-mode t)


;;; fontの設定(osaka 12)
(if (eq window-system 'mac) (require 'carbon-font))
(fixed-width-set-fontset "osaka" 12)


;;; スタートアップページを表示しない
(setq inhibit-startup-message t)


;;; 選択文字を強調表示
;;;(require 'highlight-regexp)


;;; ruby-mode.el
(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t)
(setq auto-mode-alist
      (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
                                     interpreter-mode-alist))


;;; simple-hatena-mode
;;; svn http://svn.coderepos.org/share/lang/elisp/simple-hatena-mode/trunk
;;; url http://coderepos.org/share/wiki/SimpleHatenaMode
(setq load-path
     (cons "~/.emacs.d/site-lisp/simple-hatena-mode" load-path))
(require 'simple-hatena-mode)
(setq simple-hatena-default-id "suusuke")
;;; はてダラスクリプトのパス(デフォルト値: hw.pl)
(setq simple-hatena-bin "~/.emacs.d/bin/hw.pl")
;;; はてダラデータを置くディレクトリ(デフォルト値: ~/.hatena)
(setq simple-hatena-root "~/.emacs.d/site-lisp/simple-hatena-mode/.hatena")


;;; バックアップフィアルを絶対パスっぽくする
;;; ~/backupにバックアップファイルを作成する
(setq backup-by-copying t)
(defadvice make-backup-file-name
  (around modify-file-name activate)
  (let ((backup-dir "~/backup")) ;; 保存ディレクトリ
    (setq backup-dir (expand-file-name backup-dir))
    (unless (file-exists-p backup-dir)(make-directory-internal backup-dir))
    (if (file-directory-p backup-dir)(let* ((file-path (expand-file-name file))
					    (chars-alist '((?/ . (?#))(?# . (?# ?#))(?: . (?\;))(?\; . (?\; ?\;))))
					    (mapchars(lambda (c) (or (cdr (assq c chars-alist)) (list c)))))
				       (setq ad-return-value(concat backup-dir "/"(mapconcat 'char-to-string