BookField に戻る

BookField package format

wbpkg

wbpkg は、BookField が local-first の読書体験、オフライン検索、学習予定、構造化参照のために取り込む installable content package format です。

Version snapshot

workbook.toml
schema_version = 4
.wbpkg/manifest.json
schemaVersion = 5
reader_manifest.json
schemaVersion = 3
reader.rdoc
schemaVersion = 3
Reader SQLite schema
db_schema_version = 17

At a glance

BookField が検証し、取り込み、読める package

wbpkg package は 1 つの work と 1 つの edition を含みます。BookField が端末上で検証・install できるように、metadata、reader asset、navigation、必要に応じた schedule、locator index をまとめます。

Installable container

1 つの work と 1 つの edition をまとめる installable boundary です。

Manifest v5

manifest.json は identity、work、edition、assets、navigation、必要に応じた entries を定義します。

ReaderDoc v3

ReaderDoc content は import 用に準備されるため、Reader は runtime で EPUB、HTML、CSS を解析しません。

Navigation tree

navigationTree は entry point と package level の目次を決めます。

Locator indexes

locator index と bindings により、対応する package が端末にある場合は参照をオフラインで解決できます。

Study plans

study plan metadata がある package だけ、manifest.json に authored studyPlans を含めます。

Package layout

wbpkg 内の canonical file 構成

package path は package-root-relative POSIX path に統一します。Text package は reader/ 配下に ReaderDoc files を持ち、text asset がない image、audio、video only package では 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 contract

Manifest v5 が install contract を定義する

manifest.json は BookField が import 前に読む公開 contract です。legacy packageKind と presentation fields は現在の package shape に含めません。

packageId / packageVersion

install と replacement の判断に使う package identity と package version を定義します。

work / edition

package に含まれる work と edition を識別します。

assets

text、image、audio、video assets と、それぞれに属する local path を列挙します。

navigationTree

Reader がオフラインで開ける entry point と package navigation を定義します。

studyPlans

package に学習予定 metadata が含まれる場合だけ authored schedules を追加します。

bindings

authored references と locator index をつなぎ、offline resolution を可能にします。

Package creation

作成手段ではなく公開 package 境界を説明する

  1. 1

    Source content を用意する

    source content、metadata、media、必要に応じた authored schedules や references を準備します。

  2. 2

    wbpkg を作成する

    manifest metadata、ReaderDoc content、media、navigation、locator files を持つ installable package を作成します。

  3. 3

    配布前に検証する

    配布前に package structure と schema compatibility を確認します。

Reader import

BookField は installed package を端末内で読む

  1. 1

    Validate

    BookField は package shape を確認し、非対応または malformed package を拒否します。

  2. 2

    Unpack

    対応する package asset を app-owned local storage に展開します。

  3. 3

    SQLite に import

    ReaderDoc payload、navigation、locator index、search record、schedule をオフライン利用向けに登録します。

Compatibility

package を予測しやすく保つルール

  • legacy packageKind values は拒否します。
  • legacy presentation fields は拒否します。
  • non-canonical package paths は拒否します。
  • malformed structured references は拒否します。
  • installable wbpkg には source EPUB files を含めません。

Canonical references

Update policy

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

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

  • 00-spec-index.md

    このページで要約している version policy、shared manifest shape、package layout、path rules、study-plan storage、locator policy の正本です。

  • 04-manifest-json-schema.md

    manifest v5 contract、必須の navigationTree、package-root-relative paths、semantic validation boundary、rejection rules の正本です。

  • 08-reader-app-design.md

    BookField が package を検証し、展開し、ReaderDoc data を SQLite へ import し、installed package を端末内で読む方法を定義します。

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

    validation tooling が使う manifest.json と ReaderDoc payload の structural schema です。

canonical docs または schema files が変わった場合は、先に source を更新し、その後この公開 snapshot と説明を更新します。

BookField 向け package 配布を計画する

BookField の概要に戻るか、自社コンテンツに wbpkg distribution flow が合うか相談してください。