defun document-id

しばらく前から、記事ごとにDocument IDを入れるようにしている。実はこのID、生成するコマンドをシェル上で実行してコピペしてるのだ。記事本文はemacs(Meadow)のhatena-modeを利用してるので、ID生成もemacs上でするようにしようと久々にemacs-lispに触れてみた。こんな簡単なことをするのにもマニュアル見ながら30分近くかかってしまった。

(defun document-id ()
  (interactive)
  (let ((cnt 0)
        (ls ()))
    (random t)
    (while (< cnt 16)
      (setq ls (cons (format "%02x" (mod (random) 256)) ls))
      (setq cnt (1+ cnt)))
    (insert (apply 'concat "Document ID: " ls))))

Document ID: dc80885dadc88992c327dd9addee38a6