Meblog

このブログ記事は個人の見解であり、所属する組織の公式見解ではありません

org-mode で画面キャプチャをペタッとはりつける。

org-modeで画像貼り付けたい

org-mode使っていて、Evernoteなんかと比べたときに圧倒的に不便だな、と感じるのは、画像を取り扱っているときだ。さっくりメモをとったり、文章を構造化したりするときなんかには非常に役に立つのだが、何かの画像を切り貼りしたいときには、いちいち画像をimg配下なんかに保存して、そのパスを記述する、なんて面倒なことをしなければならない。

どうせ同じことで悩んでいる人がいるんだろうな、と思ってサーチしてみると、あっという間に見つかった。PCの画面キャプチャをorg-modeの画面にペタッと貼ってくれるelispだ。名前はそのままorg-attach-screenshot。

github.com

レポジトリ名はorg-screenshotだが、MELPAではorg-attach-screenshotで引き当てることができる。

M-x org-attach-screenshot で、適当にEnterを押下してると、Emacsがバックグラウンドになり、カーソルが十字になる。んで、範囲選択してキャプチャをとることができる。画像はデフォルトだと、編集中のorgファイルの下にdataフォルダが作成され、こんなかに入る仕組み。

これはこれで十分なんだけど、以下の点に不満が残った。

  • HTML出力するときに、画像がサムネイル化されない
  • Mac (OS-X)だと、imagemagickよりscreencaptureのほうがよさそう

改造

結論から言うと、ちょっと改造した。

github.com

差分は以下。

add thumbnail feature and adopt os-x. · medaka/org-screenshot@98ecee8 · GitHub

これで、HTML出力してみると、以下のような感じになる。

f:id:gntm_mdk:20170623004146p:plain

これだと普通だな。。オリジナルはサムネイル化されないんで、大きなキャプチャとると、全部はみでちゃうんよね。。

詳細

まあ、サムネイルに関してはいいでしょう。単に画像縮小してリンクはっただけ。

screencaputureに関して。オリジナルはimagemagickのimportっていうコマンドを用いてスクリーンをキャプチャするみたいなんだけど、同等の機能がOS-Xにはデフォルトでscreencaptureってのが入っている。importってのがサクっと動かなかったのと、screencaptureのほうがいちいちimagemagickを使わなくてすむということから、こちらに換装。

TODO

たぶんやらないであろうTODO

  • OSによって切り替え
  • サムネイル化するかのフラグを切り出す
  • サムネイル化したときの画像サイズを指定する変数を切り出す

終わったらプルリクエストを投げるのだ。

参考

実は更にオリジナルはるびきち氏のscreenshot.el。org-mode使わない人はこっちのほうがいいかも。

EmacsWiki: Screen Shot