Imported from the uncommitted work of the main tree: Embed.mount runtime (public/scripts/embed-runtime.js), check:embed script, embeds migrated to the runtime, write-mdx-content and design-dataviz skills, create-html-embed skill rewrite, agent docs. The old TableOfContents.astro tweak is dropped since the component was replaced.
feat(layout)!: make the grid layout the default article template
Wire Hero, MetaColumns, Toc and DebugGrid into the page, move main onto the named-line grid (wide and full-width blocks, HtmlEmbed wide), single-column print through the tokens, and remove the old hero, TOC and 3-column CSS. The paper template keeps its own hero on a single-column grid.
BREAKING CHANGE: HeroArticle.astro and TableOfContents.astro are removed. tableOfContentsAutoCollapse is now an alias of tocExpanded: false.
Press G in astro dev or add ?grid to any URL. Lazy loaded, reads the live grid template so it always reflects the layout tokens. Shift+G toggles the baseline.
feat(layout): footer on the page grid with themed colors
From 1280px a sidenote is auto-placed by the grid next to the element before it, without JS or layout shift; a small script aligns it and avoids overlaps. Inline below.
Sticky rail aligned with the first body line, active section indicator and progress line, reading time revealed once stuck, sub-headings expanded unless tocExpanded is false, internal scroll keeping the active item visible, top bar and drawer below 1100px.
fix(glossary): render spans instead of divs so inline terms no longer break the paragraph
- Move thumbnail generation before print mode switch in export-pdf.mjs
(was generating in print media, showing wrong visual)
- Add --thumbnail-only flag to export-pdf for lightweight thumb generation
- Fix README.md thumbnail URL (was pointing to wrong Space)
- Remove thumb.* from .dockerignore so pre-generated thumbs are included
- CLI: auto-set thumbnail URL in README.md when deploying to HF Spaces
- Increase article template title size to match paper template (clamp 34-54px)
Made-with: Cursor
feat: add template preview cards and --template CLI flag
- Extract shared logic (normalizeAuthors, slugify, stripHtml, link icons)
into heroUtils.ts
- HeroArticle.astro: article template with banner, flex-row meta bar, PDF
access control - self-contained CSS, no external overrides
- HeroPaper.astro: paper template with centered inline meta, external link
pills with auto-detected icons - self-contained CSS, zero !important
- index.astro conditionally renders the right component based on template
- Remove ~90 lines of :global([data-template="paper"]) CSS overrides from
_layout.css (hero/meta rules only; content-grid rules kept)
- Delete old monolithic Hero.astro (843 lines, 24 :global overrides,
13 !important)
Made-with: Cursor
feat: auto-detect link icons in paper template hero
Automatically match link labels (github, paper, arxiv, code, demo,
data, dataset, model, video, blog) to inline SVG icons. Falls back
to icon-less display for unrecognized labels.
Made-with: Cursor
fix: force inline display on paper meta with !important for Astro scoping
- Add `links` frontmatter field for paper template hero (Paper, Code, Demo, Data buttons)
- Fix inline meta display for single affiliation (missing CSS rule on <p>)
- Update docs: README, getting-started.mdx, article-frontmatter skill
Made-with: Cursor
feat: agent-friendly project structure and paper template redesign
- Add .ai/skills/ as generic IDE-agnostic skill location (create-html-embed, article-frontmatter, deploy-to-hf-spaces)
- Add .cursor/skills symlink to .ai/skills/ for Cursor auto-detection
- Add GEMINI.md symlink to AGENTS.md for Gemini CLI support
- Update AGENTS.md with skill table, deploy section, and README tag warning
- Update CLAUDE.md to reference .ai/skills/ paths
- Update .gitignore to track .cursor/skills symlink
- Update scaffold CLI: preserve AGENTS.md, CLAUDE.md, GEMINI.md, and .ai/skills/ in generated projects
- Redesign paper template: inline meta layout, hero banner after meta, centered h2 with decorative rules
- Add gallery link and live test Space links to documentation
- Remove AUDIT-2026.md, ROADMAP-2026.md, CHANGELOG.md from tracked files
Made-with: Cursor
feat: add article template variant, npx CLI, and llms.txt auto-generation
- Template variants: `template: "paper"` (default) or `template: "article"`
in frontmatter. Article mode: centered single-column layout, no banner,
no figure numbering, no citation block (inspired by academic project pages)
- npx create-research-article: zero-dep CLI to scaffold new projects with
interactive prompts, template choice, and optional HF Space auto-deploy
- llms.txt: Astro integration that auto-generates /llms.txt at build time
with clean Markdown of the article content (llmstxt.org convention)
- Updated README, getting-started docs, and robots.txt
Made-with: Cursor
fix: improve mobile banner layout and PDF print styles
- Move hero description outside overflow:hidden banner container
- Use auto aspect-ratio on mobile to prevent banner truncation
- Add break-inside:avoid for Stack, cards, palettes, color-picker, notes
- Remove link backgrounds and force --surface-bg to white in print
- Remove card box-shadow in print to prevent gray artifacts
Made-with: Cursor
fix: prevent theme toggle transition flash on page load
Start moon icon with opacity:0 and defer animated class via
requestAnimationFrame so the CSS transition only applies after
initial render. Also add continuous-glider data asset.
Made-with: Cursor
feat: theme toggle with sun/moon crossfade and rotation animation
- Stack sun and moon icons with CSS grid, crossfade via JS-driven opacity
- Rotate 360deg CW when switching to dark, CCW when switching to light
- Avoid Astro scoping issues by managing icon visibility in JS
Made-with: Cursor
feat: improve PDF export with screenshot-based embed rendering and cover page layout