プラグインディレクトリ構造
目次
このドキュメントでは、LangBotプラグインの標準ディレクトリ構造とファイル組織仕様を紹介し、開発者が準拠したプラグインを作成できるように支援します。
基本ディレクトリ構造
標準的なLangBotプラグインは次のディレクトリ構造に従う必要があります:
MyPlugin/
├── manifest.yaml # プラグインマニフェストファイル(必須)
├── main.py # プラグインメインエントリファイル(必須)
├── README.md # 英語プラグインドキュメント(必須)
├── readme/ # 多言語READMEディレクトリ(オプション)
│ ├── README_zh_Hans.md # 簡体字中国語ドキュメント
│ ├── README_ja_JP.md # 日本語ドキュメント
│ └── README_zh_Hant.md # 繁体字中国語ドキュメント(オプション)
├── assets/ # リソースファイルディレクトリ
│ ├── icon.svg # プラグインアイコン(推奨)
│ └── ... # その他のリソースファイル
├── components/ # コンポーネントディレクトリ
│ ├── event_listener/ # イベントリスナーコンポーネント
│ ├── commands/ # コマンドコンポーネント
│ └── tools/ # ツールコンポーネント
├── requirements.txt # Python依存関係(オプション)
└── config/ # 設定ディレクトリ(オプション)多言語README仕様
ファイル配置仕様
LangBotプラグインは、異なる言語のユーザーにローカライズされたプラグイン説明を提供するために、多言語READMEドキュメントをサポートしています。
重要な仕様:
ルート
README.md(必須)- 英語で記述する必要があります
- プラグインのデフォルトドキュメントとして機能します
- 要求された言語バージョンが存在しない場合のフォールバックとして使用されます
readme/ディレクトリ(オプション)- 非英語のREADMEドキュメントを保存するために使用
- ファイル命名形式:
README_{言語コード}.md
サポートされる言語コード
RFC 4646標準に従い、LangBotは現在次の言語コードをサポートしています:
| 言語 | 言語コード | ファイル名 | 配置場所 |
|---|---|---|---|
| 英語 | enまたはen_US | README.md | プラグインルートディレクトリ |
| 簡体字中国語 | zh_Hans | README_zh_Hans.md | readme/ディレクトリ |
| 繁体字中国語 | zh_Hant | README_zh_Hant.md | readme/ディレクトリ |
| 日本語 | ja_JP | README_ja_JP.md | readme/ディレクトリ |
ディレクトリ構造の例
MyPlugin/
├── README.md # ✅ 英語版(必須、ルートディレクトリ)
└── readme/ # ✅ 多言語ディレクトリ
├── README_zh_Hans.md # ✅ 簡体字中国語
├── README_ja_JP.md # ✅ 日本語
└── README_zh_Hant.md # ✅ 繁体字中国語誤った例
❌ 誤り: readme/ディレクトリに英語READMEを配置
MyPlugin/
├── readme/
│ ├── README_en.md # ❌ 誤り: 英語はreadme/に配置すべきではない
│ └── README_zh_Hans.md❌ 誤り: ルートREADME.mdに非英語コンテンツが含まれる
# MyPlugin
This is a plugin...
これはプラグインです... # ❌ 誤り: ルートREADME.mdは英語のみを含むべきREADME言語フォールバックロジック
ユーザーが特定の言語でREADMEを要求した場合、LangBotは次の順序で検索します:
readme/README_{言語コード}.mdを読み取ろうとします- 見つからない場合は、ルート
README.md(英語版)にフォールバックします
例:
ユーザーが簡体字中国語(
zh_Hans)を要求- →
readme/README_zh_Hans.mdを検索 - → 見つからない場合は、
README.md(英語版)を返します
- →
ユーザーが日本語(
ja_JP)を要求- →
readme/README_ja_JP.mdを検索 - → 見つからない場合は、
README.md(英語版)を返します
- →
リソースファイルディレクトリ
assets/ディレクトリ
assets/ディレクトリはプラグインの静的リソースファイルを保存するために使用されます。
推奨構造:
assets/
├── icon.svg # プラグインアイコン(SVG形式推奨)
├── example.png # 例画像
├── screenshot1.png # スクリーンショット
└── logo.png # ロゴ画像アイコン仕様:
- プラグインアイコンとして
icon.svgを使用することを推奨 - サポートされる形式:
.svg、.png、.jpg、.jpeg、.gif - 推奨サイズ: 最低256x256ピクセル
manifest.yamlでの参照:icon: assets/icon.svg
READMEでのリソース参照
READMEドキュメントで相対パスを使用してassets/ディレクトリの画像を参照できます:
# MyPlugin

注意: プラグインをLangBot Spaceにアップロードすると、リソースファイルが自動的に処理およびホストされ、ユーザーがREADMEを表示したときに画像が正しく表示されます。
コンポーネントディレクトリ
プラグイン機能はコンポーネントを通じて実装され、タイプ別にcomponents/ディレクトリに整理する必要があります:
components/
├── event_listener/ # イベントリスナー
│ ├── on_message.py
│ └── on_message.yaml
├── commands/ # コマンド
│ ├── hello.py
│ └── hello.yaml
└── tools/ # ツール
├── search.py
└── search.yamlコンポーネント開発の詳細な仕様については、コンポーネントの追加を参照してください。
設定ファイル
manifest.yaml
プラグインマニフェストファイルmanifest.yamlはコア設定ファイルであり、プラグインメタデータ、設定項目、コンポーネントリストなどの情報が含まれます。
詳細な手順については、プラグイン設定情報の完成を参照してください。
requirements.txt
プラグインが追加のPython依存関係を必要とする場合は、ルートディレクトリにrequirements.txtファイルを作成します:
requests>=2.28.0
beautifulsoup4>=4.11.0
pillow>=9.0.0注意: LangBotは、プラグインのインストール時にrequirements.txtにリストされている依存関係を自動的にインストールします。
関連ドキュメント
- 基本チュートリアル - 最初のプラグインを作成する方法を学ぶ
- プラグイン設定情報の完成 - manifest.yamlの設定
- コンポーネントの追加 - プラグインコンポーネントの開発
- マーケットプレイスに公開 - プラグインを配布
