Skip to content

プラグインディレクトリ構造

このドキュメントでは、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ドキュメントをサポートしています。

重要な仕様:

  1. ルートREADME.md(必須)

    • 英語で記述する必要があります
    • プラグインのデフォルトドキュメントとして機能します
    • 要求された言語バージョンが存在しない場合のフォールバックとして使用されます
  2. readme/ディレクトリ(オプション)

    • 非英語のREADMEドキュメントを保存するために使用
    • ファイル命名形式: README_{言語コード}.md

サポートされる言語コード

RFC 4646標準に従い、LangBotは現在次の言語コードをサポートしています:

言語言語コードファイル名配置場所
英語enまたはen_USREADME.mdプラグインルートディレクトリ
簡体字中国語zh_HansREADME_zh_Hans.mdreadme/ディレクトリ
繁体字中国語zh_HantREADME_zh_Hant.mdreadme/ディレクトリ
日本語ja_JPREADME_ja_JP.mdreadme/ディレクトリ

ディレクトリ構造の例

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に非英語コンテンツが含まれる

markdown
# MyPlugin

This is a plugin...

これはプラグインです...    # ❌ 誤り: ルートREADME.mdは英語のみを含むべき

README言語フォールバックロジック

ユーザーが特定の言語でREADMEを要求した場合、LangBotは次の順序で検索します:

  1. readme/README_{言語コード}.mdを読み取ろうとします
  2. 見つからない場合は、ルート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/ディレクトリの画像を参照できます:

markdown
# MyPlugin

![](./assets/example.png)

![スクリーンショット](./assets/screenshot1.png)

注意: プラグインを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にリストされている依存関係を自動的にインストールします。

関連ドキュメント