Skip to content

feat: add meteor docs platform#1170

Draft
Fabian Hüske (fabianhueske) wants to merge 69 commits into
mainfrom
feat/add-docs-platform
Draft

feat: add meteor docs platform#1170
Fabian Hüske (fabianhueske) wants to merge 69 commits into
mainfrom
feat/add-docs-platform

Conversation

@fabianhueske

@fabianhueske Fabian Hüske (fabianhueske) commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

To Do

Pre-Launch:

  • Test custom "component to plain md" implementation (maybe even set up an automatic testing flow?)
  • Clarify preview and prod deployment
  • Check content on components page
  • Add roadmap page?

Post-Launch:

  • Publish on meteor.shopware.com
  • Remove mdx and unecessary stories from Storybook
  • Adjust content and links on developers.shopware.com and shopware.design
  • TBD: Add link from component docs page to Storybook page?

Alastair Fraser (@alastair-simon) Arnold Stoba (@arnoldstoba) Feel free to add to dos here.

@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
meteor-component-library Error Error Jun 24, 2026 1:26pm

Request Review

Replace the fragile runtime regex pipeline with build-time example
source extraction served via a prerendered API route, modeled on
Nuxt UI v4 docs:

- collect example sources once in the component-meta module, strip
  library imports there (single transform shared by app and server),
  and refresh templates on example file changes in dev
- serve sources via /api/component-example/:name.json with payload
  caching and prerendering
- ComponentExample.vue fetches prepared source, renders it once via
  MDC, supports a #code slot for hand-written examples and a layout
  prop for preview arrangement
- raw markdown/llms export reuses the same sources and honors #code
  overrides
- pre-bundle meteor component library and shiki deps to fix dev
  server freezes
- Fix MDCSlot unwrap="ul" returning empty by removing the outer ul
  wrapper and letting MDCSlot render slot content directly; contentClass
  descendant selectors handle ul/li styling
- Convert banner.md plain ## Do / ## Don't headings to ::do-dont
  component with #do and #dont slots, matching button.md format
- Add meteor-device-helper client plugin to provide $device.onResize
  and removeResizeListener without importing the full library entry
  (avoids loading index.css which conflicts with the docs theme)
Remove all custom behavior additions and reduce content to two example
pages so the platform can be evaluated and rebuilt on a stable foundation.

Removed:
- Custom plugins (meteor-device-helper, meteor-i18n)
- Custom content components (ComponentExample, ComponentImport, PropsTable,
  DoDont, ColorPalette, TokenBrowser, TypographyScale, ElevationSurfaces,
  InteractionStates)
- All example Vue components (button, banner, card)
- Custom composables (useComponentExampleSource, useTokenDictionary)
- Custom Nuxt module (component-meta) and all server utilities/routes
- All content pages except index.md
- Unused dependencies (vue-component-meta, vue-i18n)

Kept:
- Docus slot components (AppHeaderLogo, DocsAsideLeftBody,
  DocsAsideRightBottom, DocsPageHeaderLinks)
- CSS token mappings (app.css, assets/css/main.css)
- App config, page templates, and docus layer

Added:
- content/1.getting-started/1.introduction.md (example docs page)
- content/2.components/1.button.md (example component docs page)
- drop page and component forks that only carried the unused meteor
  frontmatter feature or duplicated docus defaults
- move useful-resources links into app.config toc.bottom
- slim AppHeaderLogo to the minimal fork needed for the h-7 logo
- move .agents/.claude skills and skills-lock.json into apps/docs
- merge app/app.config.ts shim into single app/app.config.ts
- delete root app.config.ts re-export
- delete app/pages/index.vue (Docus default landing template takes over)
- delete content.config.ts (Docus default content collections take over)
Adds a :component-props MDC component that renders prop tables extracted
from the component library SFCs via nuxt-component-meta (incl. JSDoc
descriptions and defaults), replacing hand-written tables that drift out
of sync.

For the markdown exports the dynamic component is converted server-side
into real GFM tables: a custom /raw/[...slug].md route replaces the
built-in one, and a nitro plugin hooks llms-full.txt generation. The
transform emits raw strings for the minimark stringifier and table AST
nodes for the @nuxt/content stringifier, matching their inverse
serialization behavior.
- comment out most --ui-* token mappings while iterating on the theme
- remove the AppHeaderLogo fork in favor of the docus default
- drop ineffective eslint-disable (the docs app has no eslint)
- remove resolved TODO comment on llms.domain
- polish token mapping comment wording
…oggle

Examples are SFCs under app/components/content/examples; their source is
the displayed code (single source of truth). A #code slot allows manual
overrides. The raw/llms exports replace the component with a real vue
code block via the extended transformMeteorMdc.

Examples import components via package subpaths (e.g. .../MtButton) so
only component-scoped CSS loads, keeping the library's global stylesheet
out of the docs page.
Replace content/index.md with a custom app/pages/index.vue that owns the
/ route (Docus skips its landing collection when this file exists). Adds
a theme-adaptive hero with a dark-mode starfield, a bento of section
cards with inline previews, and a useful-resources section. Also drops a
couple of unused agent-page navigation icons and adjusts the UI
radius/primary tokens.
Override the footer to a centered "Meteor is maintained by Shopware"
credit, dropping the copyright, GitHub button, and color-mode switch. In
light mode the hero now shows a gray dot grid fading to white instead of
the night-sky starfield, which is kept for dark mode.
Show the full search bar in the header center only on the landing page;
docs pages hide it and surface a compact search icon button in the right
section instead.
- Custom hero with theme-aware backgrounds: light dot grid with a
  cursor spotlight reveal, dark starfield with scaling meteors
- Add a shy, cursor-aware UFO companion in dark mode (appears on idle,
  scans, flees on movement)
- Add value-prop, "Explore the docs", packages, FAQ, and a contribute
  CTA banner; slim buzzword ticker under the hero
- Rebuild the footer with grouped links and a legal bar
- Refine section cards, spacing, headline, and squircle CTA buttons
Rewrite the contributing guide's Local development section as a full
build, publish, add, install walkthrough with concrete commands, and
link to it from a new Local builds section on the developers page.
Add a sync-changelogs script that builds an in-site Changelog page from each
published package's CHANGELOG.md (one tab per package), wired into pre
dev/build/generate. Repoint all changelog links from GitHub releases to the
in-site /getting-started/changelog route. Add a ResponsiveTabs content
component and the transformMeteorMdc handlers that flatten tabs/changelog
blocks for the raw/llms exports. Document the component lifecycle in the docs
and remove the stale LIFECYCLE.md.
Add an Admin SDK doc link on the migration page, in the introduction
Resources cards, and in the per-page Useful resources sidebar.
Add a Composables sidebar section (below Components) documenting the
public useSnackbar composable, and cross-link it from the Snackbar
component page.
- do-dont: re-wrap inline/paragraph slot content in a <p> so cards no
  longer serialize glued to the next block in the /raw and llms exports
  (affected 6 pages incl. components, elevation, icons, wording)
- raw route: guard the h1 insert against a missing page.title
- transformMeteorMdc: extract a matchPart visitor so the CellPart
  discrimination lives in one place across tableString/tableNode
- composables: extract shared useFetchDocsJson helper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Generate docs/components manifest for agents

1 participant