ReadAware

プラグイン:リーダーを拡張する

ReadAwareにプラグインシステムが加わりました。プラグインはひと晩で書けます。開発中はフォルダからそのままインストールでき、完成したらコミュニティマーケットプレイスに提出すれば、誰でもワンクリックでインストールできるようになります。

何が作れるのか

プラグインはマニフェストとひとつのJavaScriptモジュールを含むフォルダで、次のものを追加できます。

  • 選択テキストアクション——どの本でもテキストを選択して、そこから操作できます。単語をAnkiに送る、一節を翻訳する、引用をメモアプリに投稿する、など。
  • ヘッダーボタンとページ——リーダー上部バーのポップオーバーや、本棚に置かれるフルページ。
  • コマンド——すべてが自動的にコマンドパレットに並びます。
  • アシスタント用ツール——私たちがいちばん大切にしているのがこれです。プラグインは読書エージェントに新しいツールを渡すことができ、会話の途中でいつ呼び出すかはエージェントが判断します。「この中でAnkiのデッキにもう入っている単語はどれ?」という問いに、答えが返るようになります。
  • ファイルではない本——コンテンツプロバイダーが章をオンデマンドで供給します。RSSフィードを本棚に置いて、本とまったく同じように読み、ハイライトし、語り合えるということです。

作りからしてネイティブ

インターフェースの思想はRaycastから受け継ぎました。プラグインは自前のUIを描画しません。ビューを宣言するだけです——マークダウン、リスト、フォーム、構造化ブロック。それをアプリが自身のデザインシステムで描画します。プラグインのページは組み込みのページと見分けがつきません。同じ部品から組み立てられているからです。プラグイン作者のデザイン作業はゼロで、アプリはひとつの静かな面であり続けます。

そして、家具の配置はあなたのものです。プラグインが持ち込むのは機能であって、どのボタンをどこに、どの順で並べるかは「設定 → カスタマイズ」が決めます。新しいプラグインの操作はオーバーフローメニューに届きます。目の前に割り込んではきません。

信頼について、正直に

信頼モデルはObsidianと同じもので、それを率直に述べておきます。プラグインはアプリの内側で動き、インストールするということは作者を信頼するということです。マニフェストは権限——ネットワーク、読書データ、AI、クリップボード——を宣言し、APIがそれを強制しますが、これで防げるのは事故であって悪意ではありません。だからアプリは、ファイルがひとつコピーされるより前に、すべての権限を平易な言葉で提示します。マーケットプレイスはすべての提出物を公開の場でレビューし、読めるソースコードを必須とします。暗がりもなければ、「サンドボックスだから安全」という芝居もありません。

ここから始める

APIリファレンスにはコントラクトの全体が記載されています。マーケットプレイスのリポジトリにはTypeScriptのテンプレートに加えて、動く実例としての公式プラグインがあります。まずひとつ書いてみてください。良いものができたら、提出してください——設定のマーケットプレイスタブは、最初のコミュニティプラグインを待っています。

← 記事一覧