各 SakeScript ZIP アーカイブは、1 つの学習コンテンツ単位(たとえばストーリー、ニュース記事、レッスン、練習問題)を表します。アーカイブには次が含まれます。
マニフェストファイル: 学習コンテンツのメタデータを含む manifest.json コンテンツファイル: main.json と、学習素材を構成する各種ファイル(テキスト、画像、音声) SakeScript アーカイブの作成には zip CLI を使えます。必要なファイル(JSON、画像など)をすべて含めてください。例:
zip my-story-name.zip manifest.json main.json images/* main.json: コンテンツファイル形式 main.json には学習素材の本文を記述します。SakeScript は現在、story と article の 2 種類をサポートしています。各形式は以下の通りです。
title: 言語コードからタイトルへのマップ(例: "en": "The Mountain Trail") cover: このフィールドは画像ファイルに対応します。uri には外部画像 URL(例: "https://example.org/cover.jpg")またはアーカイブ内画像ファイルへの相対パス(例: "images/cover.jpg")を指定できます。例: "cover": { "type": "image", "uri": "images/cover.jpg" // or "https://example.org/cover.jpg" } type: コンテンツ種別("story" または "article") chapters: 章の一覧 title (optional): 現時点では story 型でサポート。言語コードからタイトルへのマップ(例: "en": "About Tokyo") sentences: 文の一覧 ja: 日本語文 en: 英語文 { "title": { "en": "Journey Through Japan", "ja": "日本の旅" }, "cover": { "type": "image", "uri": "https://www3.nhk.or.jp/news/html/20231111/K10014254991_2311111600_1111160953_01_02.jpg" }, "type": "story", "chapters": [ { "title": { "en": "About Tokyo", "ja": "東京について" }, "sentences": [ { "ja": "東京は日本の首都です。", "en": "Tokyo is the capital of Japan." }, { "ja": "新宿はにぎやかな場所です。", "en": "Shinjuku is a bustling area." } ] } ] } manifest.json: メタデータ形式 各 SakeScript アーカイブの manifest.json には次のフィールドがあります。
...