simplenote2.elをリリースしました

Emacs用の Simplenote クライアント simplenote.el の新バージョン simplenote2.el をリリースしました。

simplenote.elの改良 では、互換性を保てる範囲で簡単に改善できるところだけ改善したのですが、他にも色々改善したいことが出てきて全面的に書き直しました。ただ、simplenote.el はオリジナルの作者の方がもうメンテしておらず長い間放置状態になっており、今さら大きな変更を入れるのもどうかと思ったので、今回新バージョンとしてリリースすることになった次第です。

新バージョンの主な特徴は以下の2点になります。

  • Simplenote API ver.2を使用することによる、タグ・自動マージ等のサポート
  • サーバーへのアクセスを非同期かつ並列に行うことによる、同期の高速化とブロックしないUIの実現

前者は、旧バージョンはAPI ver.1を使用していたのでノート本体以外の情報が取得できなかったのですが、今回API ver.2を使用するように書き直したことで、タグ、"Pinned to top"、"Markdowned" 等の付属情報が取得できるようになります。また、ノート更新時に他のクライアントからの変更が行われていた時に、サーバー側で (可能な限り) 自動でマージしてくれるようになります (ver.1だと、サーバ側の変更を無視して強制上書きしてしまう)。

後者については、前回やりたいと言っていたことですが、同期時のHTTPアクセスをできる限り非同期かつ並列化しています。ノート数とネットワーク環境にもよりますが、私のケースでは最初の同期にかかる時間が半分程度になりました。ただ、最初の同期以降はほとんどノート単独で同期する場合が多いので、前回の改良だけで実使用上はそれほど問題はありませんでした。なので、どちらかというと技術的興味の側面が強いです。

インストールと基本的な使用方法

こちら から手動で git clone or ダウンロードして頂いてもよいですが、MELPAにも登録されたので M-x package-install でインストール可能です。

使い方は、基本的には旧バージョンと変わりません。M-x simplenote2-browse で一覧画面を呼び出し、[Sync with server] ボタンで同期、各ノートのリンクをクリックして編集、となります。単独のノート同期も旧バージョンと変わらず、M-x simplenote2-create-from-buffer, M-x simplenote2-push-buffer, M-x simplenote2-pull-buffer が使用可能です (simplenote.elの改良 を参照)。

新規機能について

タグのサポート

各ノートのタグは、ノートの一覧画面に表示されます。M-x simplenote2-filter-note-by-tag コマンドでタグによるノートのフィルタリングができます (タグは複数指定可能)。C-u M-x simplenote2-filter-note-by-tag でフィルタを解除します。

simplenote2.elからのタグの追加・編集は、今のところできません。

Pinned to top

Pinned to topがセットされたノートは、自動的に一覧画面の一番上に表示されます。

今後の予定

とりあえずリリースしましたが、しばらくは細かい機能追加や改善を行うと思います。まずは、タグ等の付属情報の編集への対応を予定しています。UI周りも、今のところ旧バージョンを流用したやっつけになっていて改善したいと思いますが、私自身もどんな感じにすれば使いやすくなるのかよく分からないところもあるので、何か要望などありましたらこのページにコメントを入れて頂ければと思います。