iPod touch を買ったので Day One を使い始めている。Android 版が出ることを期待してるんだけれど、それまで iPod touch (と iPad 2) からだけだと使わなくなりそうな予感。Mac 使ってないしね。
Dropbox 同期なのでもしかしたら Linux からちょっとは編集できるんじゃないかなと思ったら、データ形式がシンプルで簡単にできるということがわかった。
Day One のサイトにデータ形式などが説明されているのが非常に好感が持てる。 あー、なんとなく人気な理由がわかった気がする。
Dropbox で同期していると
Day One/Journal.dayone/entries/<UUID>.doentry
という構成で1エントリ毎に1ファイルが作られる。XML プロパティリスト (plist) 形式で、普通に XML ファイルとして編集できる。Linux 側で編集すると、わりとすぐに iPod touch の Day One で表示しているエントリにも定期的に反映される。いい感じ。
ということで既存のものなら普通に Emacs で編集しちゃえばOK。
UUID を生成してファイルを作る必要があるので簡易的に以下のようなスクリプトを作った。
実行すると note と書かれたエントリファイルを作成した後 emacsclient -n でそのファイルをオープンする。Creator のところはいじっても良さそうだけれど、良くないかもしれないのでとりえあえず iPod touch で生成したのと同じままで。
#!/usr/bin/perl use strict; use warnings; use File::Spec; my $DIR = '/path/to/Dropbox/Apps/Day One/Journal.dayone/entries'; my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time); my $date = sprintf( "%04d-%02d-%02dT%02d:%02d:%02dZ", $year + 1900, $mon + 1, $mday, $hour, $min, $sec ); my $file_name; my $uuid; while (1) { $uuid = `uuidgen`; chomp $uuid; $uuid =~ s/-//g; $uuid = uc($uuid); $file_name = File::Spec->catfile($DIR, "$uuid.doentry"); last unless -e $file_name; } my $plist =<<__ENDSTR__; <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Creation Date</key> <date>$date</date> <key>Creator</key> <dict> <key>Device Agent</key> <string>iPod touch/iPod5,1</string> <key>Generation Date</key> <date>$date</date> <key>Host Name</key> <string>オレのiPod touch</string> <key>OS Agent</key> <string>iOS/6.1.3</string> <key>Software Agent</key> <string>Day One (iOS)/1.11.3</string> </dict> <key>Entry Text</key> <string>note</string> <key>Starred</key> <false/> <key>Time Zone</key> <string>Asia/Tokyo</string> <key>UUID</key> <string>$uuid</string> </dict> </plist> __ENDSTR__ open my $file, '>', $file_name or die $!; print $file $plist; close $file; exec "emacsclient -n '$file_name'";
Linux 用で UI をもつ clone 見つからなかったので、とりあえず howm の検索パスに前述のディレクトリを追加して、howm から検索できるようにした。これでワードがわかれば最低限さっとエントリファイルを Emacs で開ける。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。