論文読みながら「あ、この辺参照したいな」と思ったときに、即座にスクショで切り取ってTrelloで集積しておくシェルスクリプトです。既にevernoteとか何やらでそういう便利クリップ機能はたくさんあると思いますが、PDF閲覧ソフトとか電子書籍リーダーとか、ブラウザ以外でもとにかく切り取りまくりたい&Trelloに入れたいという願望から、簡易的なシェルスクリプトを書いてみました。
- 手順
- スクショ取る(gnome-screenshot)
- ページ数とかキーワードとかのメモを書く(yad)
- OCR化する(tesseract)
- メールで送信(mutt)
以上です。要はTrelloのメールでカード追加する機能を使って画像を添付してメールしているだけ。OCRはおまけです。
ちなみにTrelloのメール機能は右上のShow MenuからMoreをクリックするとEmail-to-board Settingsというのが出てくるのでそれを使います。muttの設定は省略します。
#!/bin/sh
CITATION=$HOME/{スクショの保存先}
FILE=$CITATION/$(date "+%Y%m%d-%H%M%S").jpg
CONTENT=$CITATION/ocr.txt
#スクショる
gnome-screenshot --area --file=$FILE
if [ ! -f "$FILE" ]; then exit 1; fi
#メモる(yayのオプションはお好みで)
SUBJECT=$(yad --width=1500 --posy=50 --posx=250 --entry --entry-label="Reference" --no-buttons --enable-spell --spell-lang=fr)
#メモが空白だと自動的にキャンセルされ、取ったスクショも消える
if [ -z "$SUBJECT" ]
then
notify-send "Abort"
rm -rf $FILE
exit 1
else
#OCRる(今回はフランス語に設定)
tesseract $FILE stdout -l fra > $CONTENT
#メーる
mutt -s "$SUBJECT" {Trelloで設定されたカード追加用のメールアドレス} -a $FILE < $CONTENT
notify-send "Success"
fi
あとは適当にスクリプトを走らせるショートカットを割り当てます。自分はi3wmを使っているのでbindsym control+Shift+4 exec "~/.bin/trello-screenshot"
みたく設定しています。
スクショを指定ディレクトリに保管するようにしていますが、よくよく考えたらTrelloに送られているんだから、送信後に削除した方が良いのかもしれません。
例:
OCRかけると若干反映が遅くなりますので不要な場合は外しておきましょう。
集めた引用を一つのリストに入れていきます。各章ごとのリストをあらかじめ作っておいて、必要なところにぽんぽん放り込んでいきながら、実際に引用する部分をOCRから抜き取ったり、考察を加えていったりすると良い感じの論文アウトラインが出来上がります。
Trelloは短い間隔で更新するとよく接続が切れるので(Trelloではなくplanyway側の問題?)、集中的な執筆には向いていないですが、カンバン形式でぼんやりとしたアウトラインを考えるのには向いていると思います。一人でやるならほぼ無料というのも有り難いです。
おまけ
一応、日本語も試してみました。以下をif文中に追記して、名前が[jp]から始まるものを日本語で認識させてみます。
elif [[ "$SUBJECT" =~ ^[jp]* ]]
then
tesseract $FILE stdout -l jpn > $MCONTENT
mutt -s "$SUBJECT" {Trelloで設定されたカード追加用のメールアドレス} -a $FILE < $CONTENT
結果:
謎の空白と謎の漢字が発生しました。元画像が粗いせいもあるかもしれません。縦書きのファイルも同様にダメでした。
日本語OCR精度は今後に期待です。