Repository navigation
v1.12.0
Added
m-syntax(series english 英語, purposetext-structure; not in the free pack for now): English sentence structure for 中学・高校 English lessons, the English counterpart ofm-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 …](alsoO1O2) 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 nearestplaysoutside the bracket; overlapping arrows take separate lanes, arrows to one word are spread over its width.boy[名]parts of speech (名 代 動 助 形 副 冠 前 接 関 間), shown under the words withpos="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 invar(--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 withconsole.warn. Lecture view: later steps at the theme's--preview-opacity. Readable layer (sr-only): sentence, elements, brackets, arrows, parts of speech, translation. Variantsfade(0) anddraw(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) intools/lint.mjs(SERIES,SERIES_LABEL) and CONTRIBUTING. No new purpose:m-syntaxdeclarestext-structurelike 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 withctx.entered, or, with a player that never passesctx.entered, whendeck:posshows 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-timeralso no longer re-applies a storedctx.resetwhen it redraws after ±1 分. Notes in the READMEs'llm: omitblocks 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.jsonholds the full sha (now03eaf06on Studio'smain, was v0.4.38419183), andtools/studio.mjsfetches exactly that commit (shallow fetch by sha), checksHEADand refuses a short sha.EGATARI_STUDIO=still uses a checkout of your own. The overlay goes tovendor/components/<name>/0.0.0-test/, the default incomponents.lock.json tools/test-studio-check.mjs(intools/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 listedtools/test-contrast.mjs: the business theme's--emphknown issue is gone (business 1.0.1 reaches 4.66:1);tools/test-predict.mjs: digits typed into a counter (Studio #69) are now testedtools/test-predict.mjsandtools/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.resetkeeps viewer input,ctx.enteredclears ittools/test-syntax.mjs(intools/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 layertools/test-shape.mjs: m-syntax's wrong-shape case (JSON instead of text);tools/variant-sync.mjsUSERS: 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-syntax941; every other part +0
sha256 2ca2387ce51c7943192e60a4e205eb02c0a21ba1aea67ec82049406c066b20bd egatari-components-v1.12.0.tar.gz