ユースケース
- 管理パネル:プラグインに視覚的な設定やデータ管理インターフェースを提供(例:FAQ管理、分析ダッシュボード)
- データ表示:ランタイムの統計データ、ログ、チャートなどを表示
- インタラクティブツール:フォーム、エディタなどの対話式インターフェースを提供

ページコンポーネントの追加
プラグインディレクトリでコマンドを実行します:components/pages/ディレクトリにページファイルが生成されます:
manifest.yamlにもコンポーネント検出設定が追加されます:
マニフェストファイル:ページ
バックエンド処理
PageコンポーネントのバックエンドハンドラーはPage基底クラスを継承し、handle_apiメソッドを実装してフロントエンドページからのAPIリクエストを処理します。
PageRequestフィールド
| フィールド | 型 | 説明 |
|---|---|---|
endpoint | str | APIエンドポイントパス(例:'/entries') |
method | str | HTTPメソッド(GET、POST、PUT、DELETE) |
body | Any | リクエストボディ(解析済みJSON、またはNone) |
PageResponseの構築
| メソッド | 説明 |
|---|---|
PageResponse.ok(data) | 成功レスポンス。dataはJSON変換可能な任意の値 |
PageResponse.fail(error) | エラーレスポンス。errorはエラーメッセージ文字列 |
フロントエンドページ開発
HTMLファイルにPage SDKを読み込んで、プラグインバックエンドと通信します:Page SDK API
| メソッド | 説明 |
|---|---|
langbot.onReady(callback) | SDK準備完了時に呼ばれる。callbackはctx(themeとlanguageを含む)を受け取る |
langbot.api(endpoint, body?, method?) | プラグインのhandle_apiを呼び出す。Promiseを返す |
langbot.t(key, fallback?) | 翻訳文字列を取得 |
langbot.onThemeChange(callback) | テーマ変更時のコールバック |
langbot.onLanguageChange(callback) | 言語変更時のコールバック |
langbot.applyI18n() | data-i18n翻訳を手動で再適用 |
ダークモード
SDKはページにCSSカスタムプロパティを自動設定します。直接使用できます:| CSS変数 | 用途 |
|---|---|
--langbot-bg | ページ背景色 |
--langbot-bg-card | カード背景色 |
--langbot-text | メインテキスト色 |
--langbot-text-muted | サブテキスト色 |
--langbot-border | ボーダー色 |
--langbot-accent | アクセント色 |
ページi18n
ページディレクトリ内にi18n/ディレクトリを作成し、JSON翻訳ファイルを配置します:
data-i18n属性を追加すると、SDKが自動的にテキストを翻訳します:
完全な例:FAQ管理ページ
FAQエントリのCRUD操作を実装した完全なPageコンポーネントの例です。 バックエンドハンドラー(components/pages/manager/manager.py):
components/pages/manager/index.html)ではlangbot.api()でバックエンドを呼び出します:
注意事項
- ページは
sandbox="allow-scripts allow-forms"のiframe内で実行され、ポップアップを開いたり親ページをナビゲートすることはできません self.pluginでプラグインインスタンスの共有状態にアクセスできます — PageとToolコンポーネントはデータを共有できますPageResponse.ok()とPageResponse.fail()を使用してレスポンスを構築し、一貫したフォーマットを確保してください- Page SDKの
<script>タグは、langbotオブジェクトを使用するコードの前に配置する必要があります
