Skip to content

v1.12.0

Choose a tag to compare

@moiku moiku released this 26 Oct 11:58
· 137 commits to main since this release

Added

  • m-syntax (series english 英語, purpose text-structure; not in the free pack for now): English sentence structure for 中学・高校 English lessons, the English counterpart of m-kobun / m-gendai. Short marked-up text inside the element, one sentence per line, = … the Japanese translation of the sentence above. [S …] [V …] [O …] [C …] [M …] (also O1 O2) mark the sentence elements: an underline under the words and the letter under it (28 px; colours --series-1..4, M --muted, the letter always carries the role); elements inside a bracket show in lower case (s v o c m) one row above, so the sentence's S V O C line up on one row. {形 …} {副 …} {名 …} mark phrases and clauses, drawn as ( ) < > [ ] (shape and name both carry the kind) with the name (形容詞句, 副詞節, …, 24 px) above the opening bracket; 句 or 節 is decided by a [V …] inside, or written ({形節 …}). Modifier arrows (--emph): {形^ …} to the word before the bracket, tall^ to the next word, {副^plays …} to the nearest plays outside the bracket; overlapping arrows take separate lanes, arrows to one word are spread over its width. boy[名] parts of speech (名 代 動 助 形 副 冠 前 接 関 間), shown under the words with pos="on". Steps: (parts of speech) → each element present, in the order S V O C M (shared by all sentences) → brackets (with the lower-case elements inside) → arrows → translation; build="whole" puts them all in one step, one after another; yaku="false" drops the translation step. Words are HTML in var(--font-sans) (36 px by default, never below 27; translation 28 px) and wrap between words; the space for brackets is kept from step 0 so the sentence never moves, underlines are cut per line and brackets stay beside their words across a wrap. Writing errors (unclosed or crossed brackets, unknown letters, kinds or parts of speech, an arrow head not found, a translation before any sentence), an arrow across lines and a sentence taller than the element are reported with console.warn. Lecture view: later steps at the theme's --preview-opacity. Readable layer (sr-only): sentence, elements, brackets, arrows, parts of speech, translation. Variants fade (0) and draw (underlines, brackets and arrows drawn as lines). README pack-visible 941 bytes (tools/pack-bytes.mjs)
  • Series english (英語, a subject series like kokugo and music) in tools/lint.mjs (SERIES, SERIES_LABEL) and CONTRIBUTING. No new purpose: m-syntax declares text-structure like the kokugo parts (pending the owner's and standards' approval)

Fixed

  • m-predict, m-timer: viewer input follows egatari-spec §8.4 (881bf76): ctx.reset (a touched part entering a step) no longer clears the counts, the learner's prediction or the ±1 分 extension; it only drops focus inside the part. Viewer input is cleared only on the render with ctx.entered, or, with a player that never passes ctx.entered, when deck:pos shows the slide entered from another slide. With Studio main@03eaf06 (which resets touched parts on every step entry) a prediction or count clicked at step 1 used to be gone at the answer step. m-timer also no longer re-applies a stored ctx.reset when it redraws after ±1 分. Notes in the READMEs' llm: omit blocks only: pack-visible bytes +0 for both (tools/pack-bytes.mjs)

Tests

  • The tests pin Egatari Studio by commit instead of by tag: tools/studio.json holds the full sha (now 03eaf06 on Studio's main, was v0.4.3 8419183), and tools/studio.mjs fetches exactly that commit (shallow fetch by sha), checks HEAD and refuses a short sha. EGATARI_STUDIO= still uses a checkout of your own. The overlay goes to vendor/components/<name>/0.0.0-test/, the default in components.lock.json
  • tools/test-studio-check.mjs (in tools/test-all.mjs): Studio's own checker (kit/check.mjs) on every demo; any error fails, R-narr-steps warnings are ignored (demos have no narration), other warnings are listed
  • tools/test-contrast.mjs: the business theme's --emph known issue is gone (business 1.0.1 reaches 4.66:1); tools/test-predict.mjs: digits typed into a counter (Studio #69) are now tested
  • tools/test-predict.mjs and tools/test-timer.mjs: real clicks with the pinned Studio (touch, next step, answer step keeps the value; a jump away and back clears it); ctx.reset keeps viewer input, ctx.entered clears it
  • tools/test-syntax.mjs (in tools/test-all.mjs): reading the mark-up (words and punctuation, roles and O1/O2, lower case inside brackets, nested brackets and 句/節, arrows to the next / previous / named nearest word and their lanes, parts of speech, translations), every writing error's warning, the steps (order S V O C M, two sentences sharing a step, pos, yaku, build="whole"), and in a browser: the arrow ends on top of its head word and starts on its bracket's name, brackets between the right words, the clause's s above the sentence's S, underlines and brackets across a wrapped line, console.warn for errors and for an arrow across lines, the readable layer
  • tools/test-shape.mjs: m-syntax's wrong-shape case (JSON instead of text); tools/variant-sync.mjs USERS: syntax

Pack-visible bytes (Egatari Studio's AI pack), change since v1.11.0

Counted with node tools/pack-bytes.mjs --base v1.11.0.

  • Free core (m-bars, m-flow, m-menu, m-predict): +0 each
  • Free by subject (m-curves, m-kpi, m-quad): +0 each
  • Kokugo (m-gendai, m-kanbun, m-kobun): +0 each
  • New, paid only: m-syntax 941; every other part +0

sha256 2ca2387ce51c7943192e60a4e205eb02c0a21ba1aea67ec82049406c066b20bd egatari-components-v1.12.0.tar.gz