プラグイン仕様書
novelaid は、プロジェクトごとの .novelaid フォルダ内に配置することで機能を拡張できるプラグインシステムを提供しています。
1. ディレクトリ構造
各プラグインは .novelaid/plugins/ ディレクトリ配下に、固有のIDを持つフォルダとして配置します。
ProjectRoot/
└── .novelaid/
├── config.json # プロジェクト設定(自動生成)
└── plugins/
├── my-custom-plugin/ # プラグインID
│ ├── manifest.json # プラグイン定義ファイル
│ ├── index.js # エントリーポイント(レンダラープロセス用)
│ └── styles.css # (任意) スタイルシート
└── another-plugin/
└── ...
2. マニフェストファイル (manifest.json)
プラグインのメタデータを定義する必須ファイルです。
{
"id": "my-custom-plugin",
"name": "My Custom Plugin",
"version": "1.0.0",
"description": "プラグインの説明文",
"main": "index.js",
"permissions": []
}
- id: プラグインを一意に識別するID。フォルダ名と一致させることを推奨します。
- name: 設定画面などに表示されるプラグイン名。
- main: エントリーポイントとなるJavaScriptファイル。
3. プラグインAPI (Renderer Process)
プラグインは提供される Context API を通じてアプリケーションと対話します。現在は主に「設定画面への独自項目の追加」が先行して実装されています。
設定画面へのタブ追加 (useSettings())
プラグインからアプリケーションの設定画面に独自のタブを追加できます。
内部的には registerSettingTab 関数を使用して登録されます。
// 設定タブのインターフェース
interface SettingsTab {
id: string;
name: string;
render: () => JSX.Element; // Reactコンポーネント
}
[!NOTE] 現在、外部JSファイルを動的にロードして React Context にアクセスさせる仕組みは整備中です。 コア機能の一部(AI設定、外観設定など)がこの仕組みを使用してモジュール化されています。
4. 開発ロードマップ
- 外部プラグインスクリプトの実装分離と動的ロード
- 共通 API ブリッジ (
window.novelaid) の整備 - エディタのコンテキストメニューへの項目追加
- カスタムサイドパネルパネルの登録機能