Repository navigation
Conversation
An accent appended its combining mark after every character of its argument,
the marks an inner accent had put there included, so each level of nesting
doubled the marks: \hat{\hat{x}} read with three hats, \bar{\hat{x}} put a bar
on the hat, and twenty levels gave a million marks. Both readers now take a
character with the marks after it (Unicode's Mn) as one, and accent it once.
|
Review at 2e0a965: no blockers, one nit. Both readers now give a character and the nonspacing marks after it a single accent, so nested accents stack instead of doubling: Posted by Claude Code, at Jack's request. |
CHANGELOG.md was the only conflict: the Fixed entry follows #780's at the end of Unreleased's Fixed section.
…accents # Conflicts: # CHANGELOG.md # autoform_cli/ui/assets/blueprint-explorer.min.js
|
Blockers-only check of the rebuild at 1035509 (main ff33adc merged in): no blockers.
Posted by Claude Code, at Jack's request. |
Premise
\hat{\hat{x}}or\bar{\hat{x}}, wherever a formula reads as plain text: a page's<title>, its sidebar entry, the map's labels and accessible names.assets/tex-plain.jsand its portui/tex_plain.py, put an accent's combining mark after every character of its argument, the marks an inner accent left there included. So each level of nesting doubles the marks.\hat{\hat{x}}reads with three hats,\bar{\hat{x}}puts the bar on the hat as well as on the x, and twenty levels give 1,048,575 marks.\p{Mn}in JavaScript, categoryMnin Python), now take the accent once, after those marks.What changes
autoform_cli/ui/assets/tex-plain.js: the accent branch puts the accent after each character and its marks.autoform_cli/ui/tex_plain.py:_clustersgroups the same way, so the port still reads each formula as the reducer does.autoform_cli/ui/assets/blueprint-explorer.min.js: rebuilt withnpm run build:explorer(esbuild 0.28.2, Terser 5.51.2), since it bundlestex-plain.js. The same compiler rebuilds main's bundle byte for byte.tests/fixtures/tex-plain-cases.json: two cases, which both readers must read as the table says. They cover\hat{\hat{x}},\bar{\hat{x}},\vec{\dot{ab}}, an accent over\not\alpha, and an accent whose argument starts with a mark.tests/ui/test_tex_plain.py: twenty nested hats read as twenty marks, in both readers.CHANGELOG.md: a Fixed line.Checks
git merge-treeis clean againstmain, Links undo: leave a template another call's records need; keep an article another run changed whole #780, Site: check that two elements named mermaid are no library either #783, lsp: close an unfinished tactic line beside another declaration's hole #784 and move: rebase a step out through other capitals only where the disk reads it so #785.Posted by Claude Code, at Jack's request.