feat: add meteor docs platform#1170
Draft
Fabian Hüske (fabianhueske) wants to merge 69 commits into
Draft
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
To Do
Pre-Launch:
Post-Launch:
Alastair Fraser (@alastair-simon) Arnold Stoba (@arnoldstoba) Feel free to add to dos here.