anything.el 拡張お試し

"hoge""fuga" のどちらかを選んで、ミニバッファに出すだけの実験。

基本的には、候補リスト (candidates) を定義あるいは生成して、選択されたものをどうするかという action を定義しておけばよいっぽい。 candidiatesaction を繋げるのは anything がよろしくやってくれる。

(defvar anything-c-hogefuga-sources
  '((name . "Show hoge or fuga")
    (candidates . ("hoge" "fuga")
    (action ("Echo" . (lambda (selected) (minibuffer-message selected))))))

(defun anything-hogefuga-message ()
  (interactive)
  (anything-other-buffer 'anything-c-hogefuga-sources "*anything hogefuga*"))

M-x anything-hogefuga-message すると、選択インタフェースがでて、選ぶとミニバッファにエコーする。

m4 で画像の data-uri を埋め込む

今どき m4 かと思わなくもないけど、コマンドラインツールがあればだいたい入ってるので重宝する。

埋め込みたい画像のパスを DATA_URI マクロで囲む。 相対パスだと m4 の実行時のカレントディレクトリを見るので (たぶん) そこだけ注意

<img src="DATA_URI(image/image.png)">

画像ファイルの mime-typebase64 を引数から得て置換する m4 のマクロを (とりあえずコマンドラインにて) 定義して、実行する。

繰り返し使うようなら make や別途マクロ定義ファイルにまとめるとよいと思う。

$ m4 -DMIME='esyscmd(file -b --mime-type $1 | tr -d "\n")' \
     -DBASE64='esyscmd(base64 $1 | tr -d "\n")' \
     -DDATA_URI='data:MIME($1);base64,BASE64($1)' \
      hoge.m4.html > hoge.html