Repository navigation
v0.4.8
Egatari 1.0 WD 2026-10-24b に従う / Follows Egatari 1.0 Working Draft 2026-10-24b
Added
- Theme versions, as for components:
themes/<name>/theme.jsonhas aversion, earlier versions stay invendor/themes/<name>/<version>/andthemes.lock.jsonlists their hashes and changed colors (npm run themes:check, innpm test).
A lesson that recordeddefault1.0.0 keeps it: the build warnstheme pinned: …with old → new colors,--update-themesupdates it, and the editor shows the colors with swatches and offers Update theme. Single files pinthemesin theiregatari.json. Documents at a theme's root (README*,LICENSE*,*.md) are never read or hashed; theLICENSE*of a user or lesson-local theme travels in the single file. - Player: Listen with read-aloud (not saved as audio) in the control bar reads a step without audio with a voice of the device
(localspeechSynthesisvoices only), shows “Reading aloud (this device's voice)”, and stops on the next step; never in video or print (format spec §5.6) - Editor app: the Audio panel can read the current step or the selected word aloud with the device voice, with
{x|y}readings, the reading dictionary
andjoin-num-counter@1; nothing is written.app/read-aloud.jsexportsreadAloud(text, lang)for the Pronunciation button (#101) kit/core/read-aloud.mjs: the text to speak and the local-only voice choice, shared by the player (DECK.ReadAloud) and the editor- Build: every
deck-narrationturn carriesttsParts, the spoken pieces with readings applied (theinputHashinput; format spec §4), so the player's
read-aloud says η as “イータ”; older files fall back to the display text with “Pronunciations not applied (older file)”. No audio becomes stale
Changed
- Components v1.1.0 is the default version (1.0.0–1.0.3 are kept for lessons that recorded them).
m-kanbun: reading-order numbers of two or more digits no longer spill out of their box (only their font size shrinks; one-digit numbers draw the same pixels as before), and every reading-order number carriesdata-annot, so the quality check no longer applies its 24 px minimum text size to them.m-kobun: the conjugation card the viewer opened also closes when a step is re-entered (ctx.reset).m-codetree: the DOM no longer depends on the order ofrendercalls (nothing visible changes). Release notes: egatari/components v1.1.0 - Theme
default1.1.0,--emph#C50516 → #BE3012: the orange-leaning red that CUD guidance recommends for P/D-type colour vision, darkened to text strength (5.80:1 on white, WCAG AA); protan ΔE00 to the ink 22.5 → 26.0.
The previous crimson leaned bluish, which CUD advises against, and was never a deliberate choice.--emph-tintfollows;kokugokeeps its own red. Reasons:themes/default/README.md. - Theme
default1.1.0,--muted#6E6E6E → #5C5853: 5.10 → 7.06:1 on white (WCAG AAA level), for projectors and small text.kokugoinherits the new grey.
Trade-off: muted–ink ΔE00 25.6 → 18.2, acceptable because muted text also differs from the ink by role and position.
Fixed
egatari.json: every Studio writer (export and unpack, Save and Save as new lesson, the Attachments and Live panels, Update theme,
Rebuild with a replacement version,--update-themes,npm run portable -- attach) now changes only its own members and keeps every
other member byte for byte, in place, through one helperupdateConfig(oldText, patch)(kit/core/config-file.mjs). Before, the file was
parsed and re-serialized, which reformatted other producers' members, rounded large integers, turned1e400intonulland moved numeric
member names first (format spec §3.3: other producers' members are preserved unchanged). A file that is not a JSON object is now refused
instead of being overwrittenindex.themes[].versionis always the theme's own version, never Studio's (format spec §3.8, §6):kokugoandbusinessare 1.0.0 in
themes.lock.jsonwith the hashes lessons already recorded (their files are unchanged), and a user or lesson-local theme without aversionin
itstheme.jsonis recorded as"local"withsource: "embedded"and identified by its sha256 when rebuilt. Before, these themes recorded the
Studio version (e.g.0.4.7), and user themes were not recorded at all.npm run themes:checknow requires every bundled theme to be in the lock- The single file's
egatari.jsonthemesnow pins exactly the entries ofindex.themeswith their versions, including the parent of a theme
thatextendsanother and"local"themes (before, only themes pinned inthemes.lock.jsonwere listed)
editor-site-v0.4.8.tar.gz sha256: 96eafc6690845672c0cb9305ada6fffa4a9911e084f4b4c095a88769536a32c0