.ked.json format
The portable book package: rows, settings, saved pages, and field reference.
What the file is for
A .ked.json package is the book. It carries tabular data, design settings, and — when you have typed on the canvas — saved page HTML. That is how a book moves from the KEd Studio web editor to desktop export without losing free typing.
Three things travel together:
- Data —
columnsandrows, plusbook_type. - Design —
templateandbook_settings(cover layers, page size, fonts). - Pages — optional
pagesHTML for WYSIWYG restore.
Save and open
In the editor, the header Export KEd file icon writes the package. Import book… in the Books dropdown reads one back. If pages is present, Studio restores that HTML. If it is missing, Studio rebuilds from rows and the template.
On save, Studio syncs cover title, subtitle, and author back into title, subtitle, and metadata.author, and writes the current book_settings (including compose layers). A blank book that was never imported still saves a valid package with book_type: blank.
Example
Compact teaching package (numbers 0–3). A larger file is sample.ked.json.
Field reference
Required fields are what a generator or blank book must include. Optional fields are how Studio remembers a designed book.
| Field | Need | Meaning |
|---|---|---|
ked_version | Optional | Format version string (e.g. "1.0"). Helps tools know which package shape to expect as the format grows. Older files without this field still load. |
source_app | Optional | Where the package was created. Examples: ked-studio, kifuliiru-data-generators. Useful for debugging handoffs between tools. |
book_type | Required | Kind of book or dataset. Common values include numbers, verbs, blank, or generator-specific types. Studio uses this to suggest layouts. |
title / subtitle | Required | Book title (required) and optional subtitle. Shown on the cover and in exports. Saving from Studio can sync these with cover title fields. |
languages | Optional | Language codes or labels for the book. Often listed on the cover language line (e.g. kifuliiru, english, french, kiswahili). |
columns | Required | Field definitions for each row. Each column has a key (used in rows) and an optional label (shown in tables/cards). |
rows | Required | Data records for generated or tabular books. An array of objects whose keys match columns. Blank books may use an empty rows array. |
metadata | Optional | Extra info such as author or generation range. Free-form object. Studio often stores author here and may merge cover author on save. |
template | Optional | Preferred layout hint. Includes id (e.g. numbers_cards or professional_table), page_size, and orientation. |
book_settings | Optional | Full Studio design settings. Cover theme, fonts, margins, cover studio layers, readability, interior chrome, and related options so reopen looks the same. |
book_design_template_id | Optional | Look that was last applied. Set when you apply a Look in Design. Helps Studio remember which gallery item you chose. |
pages | Optional | Saved page HTML for WYSIWYG handoff. When present, Studio restores free typing and formatting instead of rebuilding only from rows. Critical for web → desktop export. |
pages[]
Each saved page is an object:
id— stable id (coveror a page id).type—coverorcontent.label— sidebar name.number— 0 for the cover, then 1, 2, …html— the page body Studio restores.
Without pages, a generator file still opens: Studio builds cards or a table from rows. Free typing you did in the browser is only durable if you saved after it landed in pages.
book_settings
This object is the full design state. You do not have to author it by hand — Studio writes it. Groups that matter for generators and tools:
- Cover copy — title, subtitle, author, badge, language line, footer, and show/hide flags.
- Cover compose — theme, background, artwork, frame, readability, studio layers, optional image.
- Type — body and cover fonts and sizes.
- Interior — page size, orientation, margins, header/footer chrome, cards vs table, visible columns, intro/about/contact flags.
book_design_template_id (top-level or inside settings) records which Look was last applied.
.ked-cover.json
A sibling format, not a full book. The file has kind: "ked.cover", a title, a timestamp, and a book_settings patch (cover fields and layers only). Import it in the editor to apply that cover to the open book.
Legacy book packages
Older files may use type instead of book_type, and data instead of rows. Studio normalizes those on load. Template ids such as number_cards alias to the current numbers_cards layout.