Evernote の書式機能はしょぼい。 Evernote 上でちょっとした文書を書く場合は reStructuredText 形式で書いておいて必要な時に HTML 形式などに変換したいのだが、ノートの内容に対してコマンドを実行する機能などがないのでクリップボード経由で rst2html を呼ぶようにしてみた。
Evernote for Windows 4 のノート上で全文選択して[コピー]後、以下の Perl スクリプトを実行するとクリップボードの内容に対して rst2html を実行して HTML ファイル生成後、デフォルトブラウザで開いてくれる。
#!/usr/bin/perl use warnings; use strict; use Encode; use Win32::Clipboard; use File::Temp; my $clip = Win32::Clipboard(); exit 0 unless $clip->IsText(); my $text = $clip->GetAs(CF_UNICODETEXT); $text = Encode::decode("UTF16-LE", $text); $text =~ s/\015\012\015\012/\015\012/g; $text =~ s/\x{00a0}/ /g; # U+0020 my $tmp_file = File::Temp->new(SUFFIX => '.rst'); binmode($tmp_file, ":encoding(utf8)"); print $tmp_file $text; system "rst2html", $tmp_file, $tmp_file . '.html'; system "start", $tmp_file . '.html';
まずは的 Perl スクリプトなので、ファイルは一時ファイルとして作成していて削除もしていない。なお rst2html は設定ファイルで [general] input_encoding: utf-8 に設定してある。
Evernote のクリップボードテキストを処理するのに、ちょっと工夫がいる点は以下。
どちらもそのままだと reStructuredText 文法的におかしくなるので、変換してあげる必要あり。
と3アクションあるので若干手数が必要だが、そこそこ便利。 Perl スクリプトの方は Win32::Clipboard::WaitForChange() あたりを監視するようにするともう1操作減らせるはず。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。