nDiki : 2010年11月11日

2010年11月11日 (木)

Evernote 上で reStructuredText で書いてクリップボード経由で HTML

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 のクリップボードテキストを処理するのに、ちょっと工夫がいる点は以下。

  • 現在の Windows 版では空行が増殖するので削除してあげる必要がある。
  • 一部空白が U+0020 (NO-BREAK SPACE) になる。

どちらもそのままだと reStructuredText 文法的におかしくなるので、変換してあげる必要あり。

HTML 版のプレビュー

  1. 全文選択
  2. コピー
  3. Perl スクリプトの実行

と3アクションあるので若干手数が必要だが、そこそこ便利。 Perl スクリプトの方は Win32::Clipboard::WaitForChange() あたりを監視するようにするともう1操作減らせるはず。

スポンサード リンク

今日のさえずり: 私の隣の席は空席ですがゴミ捨て場ではありません

2010年11月11日

  • 09:32 @yamakiyo そういえば iPhone アプリは何を作ったの?
  • 11:03 Frame Grabber for Xperiaインストールしておいてみた。
  • 12:34 @yamakiyo おお、ぜひブラッシュアップして公開を。
  • 12:35 おにぎりとパン 310円。
  • 13:07 U+00A0 にちょっぴりハマってた。
  • 14:13 肩が冷える感じなのでフリース着用。この間洗濯して持ってきたやつ。
  • 14:22 Growl for Windows で通知が他のウィンドウの上に出たり下に出たりするの何とかならないかな。いつもトップでいいんだけれど。
  • 14:48 Smokestack だからか。 Plain だと最前面になる。 RT @Naney: Growl for Windows で通知が他のウィンドウの上に出たり下に出たりするの何とかならないかな。いつもトップでいいんだけれど。
  • 15:20 TranslucentDark にした。 RT @Naney: Smokestack だからか。 Plain だと最前面になる。 RT @Naney: Growl for Windows で通知が他のウィンドウの上に出たり下に出たりするの何とかならないかな。
  • 15:26 管理グループ長がたしか、クラウド コンピューティングEXPOに行ったはずなんだけれど、一体何を見にいったのだろう。 http://bit.ly/9j0noo
  • 16:13 substr の長さ間違えてて最後の1桁読んでなかったとか。
  • 16:37 私の隣の席は空席ですがゴミ捨て場ではありません。
  • 17:33 Win32::FileOp って2003年のが最新版か。ちょっと古いな。
  • 19:41 ボジョレー・ヌーヴォー来週か。でもとは別行動の日なんだな。
  • 21:03 Amazon.co.jp はカラー違いで値段違いすぎ。
  • 21:46 土曜日 11:20 ぐらいから東京駅構内(改札内)で軽く食事とるのどこがお薦めだろう。
  • 22:12 @zakwa やはりカフェ系が手軽よさそうですね。東京駅内は変化が激しくて Web では調べにくくて。
  • 22:14 Dila東京どうかなと思ってたんだけれど、2010年9月5日で閉鎖かあ。
  • 22:42 何か外で猫がギャーギャー鳴いてる。発情期っていつ?
  • 22:47 そういえばほぼ日手帳2011の BLACK CASE ってもう発売してたんだ。そして初回入荷分は完売。カバーのみで12,000円て予想より高いでやんの。
  • 22:49 それに「ほぼ日刊イトイ新聞」ってロゴが PORTER ロゴの上にあるので、なんか雑誌連動ものっぽくてザンネンな感じ。
  • 22:59 「自動システムでは「nDiki」という名称は認められません。詳しくはこちら」
  • 24:01 少なくなくなってきたアラビックヤマトをブシューブシューってしたい。
  • 24:02 アラビックヤマトは1975年9月発売開始か。
  • 00:06郵便局にあったのって壺糊だったよね。
  • 00:10 せっかく XperiaAndroid 2.1 にしたので "Android 2.1 以降" で検索してみる。
  • 00:21 "Android 2.1 以上" の方が良さそげ。
  • 00:41 Facebook の公式 Android アプリケーションだとファンページは見られないのかな。
[ 11月11日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.056871s / load averages: 0.62, 0.55, 0.54
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker