BookField に戻る

BookFieldパッケージ形式

wbpkg

wbpkgは、BookFieldがローカルファーストの読書体験、オフライン検索、学習計画、構造化参照のために取り込むインストール可能なコンテンツパッケージ形式です。

バージョンスナップショット

workbook.toml
schema_version = 4
.wbpkg/manifest.json
schemaVersion = 5
reader_manifest.json
schemaVersion = 3
reader.rdoc
schemaVersion = 3
ReaderのSQLiteスキーマ
db_schema_version = 17

概要

BookFieldが検証・インストール・閲覧できるパッケージ

wbpkgパッケージは1つのworkと1つのeditionを含みます。BookFieldが端末上で検証・インストールできるように、メタデータ、リーダー用アセット、ナビゲーション、必要に応じたスケジュール、ロケーターインデックスをまとめます。

インストール可能なコンテナ

1つのworkと1つのeditionをまとめる、インストール可能な単位です。

Manifest v5

manifest.jsonはidentity、work、edition、assets、navigation、任意のentriesを定義します。

ReaderDoc v3

ReaderDocコンテンツはインポート用に準備されるため、Readerは実行時にEPUB、HTML、CSSを解析しません。

ナビゲーションツリー

navigationTreeはentry pointと、Readerにおけるパッケージ単位の目次を決めます。

ロケーターインデックス

locator indexとbindingsにより、対応するパッケージがインストールされていれば、作成者が定義した参照をオフラインで解決できます。

学習計画

学習計画のメタデータを含むパッケージだけ、manifest.jsonに作成済みのstudyPlansを格納します。

パッケージ構成

wbpkg内の正規ファイル構成

パッケージパスはパッケージルート相対のPOSIXパスに統一します。テキストパッケージはreader/配下にReaderDocファイルを持ち、テキストアセットがない画像・音声・動画のみのパッケージではreader/を省略できます。

.wbpkg
manifest.json
reader/{assetId}/reader_manifest.json
reader/{assetId}/reader.rdoc
images/{assetId}.{ext}
images/{assetId}-thumb.{ext}
media/{assetId}.{ext}
locator/{profileId}.json

Manifest仕様

Manifest v5がインストール仕様を定義

manifest.jsonは、BookFieldがインポート前に読む公開仕様です。legacy packageKindとpresentation fieldsは現在のパッケージ形式に含めません。

packageId / packageVersion

インストールや置換の判断に使うパッケージIDとバージョンを定義します。

work / edition

パッケージに含まれるworkとeditionを識別します。

assets

text、image、audio、videoのアセットと、それぞれに対応するローカルパスを列挙します。

navigationTree

Readerがオフラインで開けるentry pointとパッケージナビゲーションを定義します。

studyPlans

パッケージに学習計画メタデータがある場合に限り、作成済みスケジュールを追加します。

bindings

作成者が定義した参照とロケーターインデックスを結び付け、オフライン解決を可能にします。

パッケージの作成

作成ツールと公開パッケージの境界を分離

  1. 1

    ソースコンテンツを作成

    ソースコンテンツ、メタデータ、メディア、必要に応じて作成済みのスケジュールや参照を準備します。

  2. 2

    wbpkgを作成

    manifestメタデータ、ReaderDocコンテンツ、メディア、ナビゲーション、ロケーターファイルを含むインストール可能なパッケージを作成します。

  3. 3

    共有前に検証

    配布前にパッケージ構成とスキーマ互換性を確認します。

Readerへのインポート

BookFieldはインストール済みパッケージを端末内で読み込みます。

  1. 1

    検証

    BookFieldはパッケージ構成を確認し、未対応または不正なパッケージを拒否します。

  2. 2

    展開

    対応するパッケージアセットをアプリが管理するローカルストレージに展開します。

  3. 3

    SQLiteへインポート

    ReaderDocペイロード、ナビゲーション、ロケーターインデックス、検索レコード、スケジュールをオフライン利用向けに登録します。

互換性

パッケージを予測しやすく保つルール

  • legacy packageKindの値を拒否します。
  • legacy presentation fieldsを拒否します。
  • 正規でないパッケージパスを拒否します。
  • 不正な構造化参照を拒否します。
  • インストール可能なwbpkgにソースEPUBファイルを含めません。

正本リファレンス

更新方針

この公開ページは実装検討向けの概要であり、スキーマの正本ではありません。正本ドキュメントとスキーマファイルはBookFieldのソース資料側で管理します。

正本ドキュメントとスキーマファイル

  • 00-spec-index.md

    このページで要約しているバージョン方針、共有manifest形式、パッケージ構成、パス規則、学習計画の保存方法、ロケーター方針の正本です。

  • 04-manifest-json-schema.md

    manifest v5仕様、必須のnavigationTree、パッケージルート相対パス、意味検証の境界、拒否ルールの正本です。

  • 08-reader-app-design.md

    BookFieldがパッケージを検証・展開し、ReaderDocデータをSQLiteへインポートして、インストール済みパッケージを端末内で読む方法を定義します。

  • schemas/manifest-v5.schema.json / readerdoc-v3.schema.json

    検証ツールが使用するmanifest.jsonとReaderDocペイロードの構造スキーマです。

正本ドキュメントまたはスキーマファイルを変更した場合は、まずソースを更新し、その後この公開スナップショットと説明を更新します。

BookField向けパッケージ配布を計画する

BookFieldの概要に戻るか、wbpkgの配布フローが自社コンテンツのモデルに合うかご相談ください。