Opera の Notes を iEdit でインポートできる wz 階層付きテキストに xyzzy Lisp で整形置換する式
オペラのノートってエクスポートできないんですかねー?本当はOPML形式とかが良いんでしょうかね、汎用性的には?
note.adrをimportする準備(階層つきテキストに整形export)
日曜プログラミングで Opera の Notes を階層付きテキストに変換してみた Lisp ちゃんGJ!。とりあえず、無事にインポートはできた。
xyzzy.exe フォルダにおいてあるだろう .xyzzyに書き込んで、Alt+xでミニバッファから note-replace を呼んであげてね。
(defun note-replace () (interactive) (save-excursion (goto-char (point-min)) (replace-regexp "^\tUNIQUEID=.*\n" "" t)) (save-excursion (goto-char (point-min)) (replace-regexp "^\tACTIVE=.*\n" "" t)) (save-excursion (goto-char (point-min)) (replace-regexp "^\tCREATED=.*\n" "" t)) (save-excursion (goto-char (point-min)) (replace-regexp "^\tID=" "\.\." t)) (save-excursion (goto-char (point-min)) (replace-regexp "^\tNAME=" "" t)) (save-excursion (goto-char (point-min)) (replace-regexp "^\tURL=" "URL: " t)) (save-excursion (goto-char (point-min)) (replace-string "#NOTE" "" t)) (save-excursion (goto-char (point-min)) (replace-string "XXXX" "\n " t)) (save-excursion (goto-char (point-min)) (replace-regexp "^[ \t]*\n" "\n" t)) )
最後の二つは上から――
iEditにインポートする前に少し手動で追加整形して終わり
上のやつだと、親階層(ピリオド1個)が自動で挿入されないので、Opera の Notes の行頭二行にある文章を削除して、「.Opera Note 日付」とでも書いといてください。
あと、オペラのノートファイル(note.adr)のエンコーディングはutf8nなので、インポート用の.txtに保存する時は日本語(Shift_JIS)に変えて保存(ミニバッファ経由ならchange-fhoge-encoding>sjijだっけ?)してください。文字化けしちゃうと思います。
あとは、iEdit のノード名を、IDじゃなくて、Opera の Notes みたいに「最初の数文字」にできたら可視性が向上するかもね。アナログに矩形貼り付けとかで工夫すればできるかも。というか、NAMEの置換で正規表現のマッチングを利用すれば、部分的に複製して置換できるはずだとは思うのだけど、調べるの面倒。