mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
MetaTagsParser's scanner treated `<!-- ... -->` like an element and ran the attribute quote tracker over its text. A comment holding an odd number of quote characters -- an apostrophe in "we don't" is enough -- left the scanner inside a phantom quoted attribute value, so every tag that followed was swallowed until the next matching quote character. brainstorm.world hits this: its head opens with a theme comment containing `don't`, `'dark'` and `'system'` (five apostrophes), and the scanner only resurfaced at the apostrophe in `manifest's`, several comments later. The whole og: block sat in between, so the parser saw 4 meta tags instead of 22 and none of them og:*. With no title/description/image, UrlInfoItem.fetchComplete() is false, UrlCachedPreviewer stores Empty and the note renders a bare link. Comments are now skipped to `-->`, declarations and processing instructions (`<!DOCTYPE ...>`, `<?xml ...?>`) to the next `>` without quote tracking, and script/style bodies to their end tag -- `for (i = 0; i < n; i++)` and quotes in JS strings are raw text, not markup, and can hide the same way. Also guards a peek() past the end of a body truncated right after a `/`. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FumxeDJPEgPqX8mz3xkM6b