Skip to content

feat(markdown-generator): add source_url and fix [object Object] in token output#708

Merged
GarthDB merged 3 commits intomainfrom
feat/markdown-generator-source-url
Feb 26, 2026
Merged

feat(markdown-generator): add source_url and fix [object Object] in token output#708
GarthDB merged 3 commits intomainfrom
feat/markdown-generator-source-url

Conversation

@GarthDB
Copy link
Member

@GarthDB GarthDB commented Feb 26, 2026

Summary

  • Adds source_url to generated markdown frontmatter so each token/component/registry page links back to its published URL on opensource.adobe.com
  • Fixes [object Object] rendering in generated token markdown tables (affected ~80+ tokens across color-aliases, typography, and other token files)
    • Nested sets resolution: tokens whose alias chains end at set-based tokens (e.g. accent-background-color-default -> accent-color-900 -> blue-900) now correctly flatten to scalar rgb(...) values per set
    • Array values: drop-shadow tokens with array values now render as CSS shorthand (0px 2px 8px 0px ...) instead of [object Object],[object Object],...
    • Object values: typography composite tokens with object values (fontFamily, fontSize, etc.) now render as readable key-value strings
  • Adds regression test asserting no generated markdown file contains [object Object]
  • Adds resolver test verifying nested sets resolve to scalar string values

Test plan

  • All 25 markdown-generator tests pass (pnpm exec ava tools/markdown-generator/test/**/*.test.js)
  • New regression test: generateTokenMarkdown never outputs [object Object] in token tables
  • New resolver test: getTokenDisplayInfo resolves nested sets to scalar values per set
  • Verify generated docs/markdown/ output after running moon run markdown-generator:generate
  • Verify the deployed site no longer shows [object Object] on token pages

Made with Cursor

Tokens with sets whose aliases chain through other set-based tokens
(e.g. accent-background-color-default -> accent-color-900 -> blue-900)
were producing nested objects that rendered as [object Object]. Fixed the
resolver to flatten nested sets and the display formatters to handle
objects and arrays (drop shadows, typography composites) gracefully.
Added regression test asserting no generated markdown contains
[object Object].

Made-with: Cursor
@changeset-bot
Copy link

changeset-bot bot commented Feb 26, 2026

⚠️ No Changeset found

Latest commit: d93b691

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@GarthDB
Copy link
Member Author

GarthDB commented Feb 26, 2026

Run report for d93b6915

Total time: 47.5s | Comparison time: 47.8s | Estimated savings: 337.4ms (0.7% faster)

Action Time Status Info
⬛️ SetupProto(0.51.4) 0ms Skipped
🟩 SyncWorkspace 7.6ms Passed
🟩 SyncProject(tokens) 0.4ms Passed
🟩 SyncProject(componentSchemas) 0.3ms Passed
🟩 SyncProject(design-system-registry) 0.4ms Passed
🟩 SyncProject(markdown-generator) 0.3ms Passed
🟩 SyncProject(site) 0.4ms Passed
⬛️ SetupToolchain(node:20.17.0) 1.3s Skipped
🟩 InstallWorkspaceDeps(node:20.17.0) 9.2s Passed
🟩 RunTask(tokens:buildManifest) 353.2ms Passed
🟩 RunTask(site:generateToolsPage) 1.1s Passed
🟩 RunTask(design-system-registry:test) 2s Passed
🟩 RunTask(componentSchemas:test) 3.5s Passed
🟩 RunTask(tokens:buildTokens) 34s Passed
🟩 RunTask(tokens:build) 13.4ms Passed
🟩 RunTask(markdown-generator:generate) 295.5ms Passed
🟩 RunTask(site:copyContent) 81ms Passed
🟩 RunTask(site:build) 2.5s Passed
🟩 RunTask(site:export) 8ms Passed
Touched files
docs/markdown/components/accordion.md
docs/markdown/components/action-bar.md
docs/markdown/components/action-button.md
docs/markdown/components/action-group.md
docs/markdown/components/alert-banner.md
docs/markdown/components/alert-dialog.md
docs/markdown/components/avatar-group.md
docs/markdown/components/avatar.md
docs/markdown/components/badge.md
docs/markdown/components/body.md
docs/markdown/components/bottom-navigation-android.md
docs/markdown/components/breadcrumbs.md
docs/markdown/components/button-group.md
docs/markdown/components/button.md
docs/markdown/components/calendar.md
docs/markdown/components/cards.md
docs/markdown/components/checkbox-group.md
docs/markdown/components/checkbox.md
docs/markdown/components/close-button.md
docs/markdown/components/coach-indicator.md
docs/markdown/components/coach-mark.md
docs/markdown/components/code.md
docs/markdown/components/color-area.md
docs/markdown/components/color-handle.md
docs/markdown/components/color-loupe.md
docs/markdown/components/color-slider.md
docs/markdown/components/color-wheel.md
docs/markdown/components/combo-box.md
docs/markdown/components/contextual-help.md
docs/markdown/components/date-picker.md
docs/markdown/components/detail.md
docs/markdown/components/divider.md
docs/markdown/components/drop-zone.md
docs/markdown/components/field-label.md
docs/markdown/components/heading.md
docs/markdown/components/help-text.md
docs/markdown/components/illustrated-message.md
docs/markdown/components/in-field-progress-button.md
docs/markdown/components/in-field-progress-circle.md
docs/markdown/components/in-line-alert.md
docs/markdown/components/link.md
docs/markdown/components/list-view.md
docs/markdown/components/menu.md
docs/markdown/components/meter.md
docs/markdown/components/number-field.md
docs/markdown/components/opacity-checkerboard.md
docs/markdown/components/picker.md
docs/markdown/components/popover.md
docs/markdown/components/progress-bar.md
docs/markdown/components/progress-circle.md
docs/markdown/components/radio-button.md
docs/markdown/components/radio-group.md
docs/markdown/components/rating.md
docs/markdown/components/scroll-zoom-bar.md
docs/markdown/components/search-field.md
docs/markdown/components/segmented-control.md
docs/markdown/components/select-box.md
docs/markdown/components/side-navigation.md
docs/markdown/components/slider.md
docs/markdown/components/standard-dialog.md
docs/markdown/components/standard-panel.md
docs/markdown/components/status-light.md
docs/markdown/components/steplist.md
docs/markdown/components/swatch-group.md
docs/markdown/components/swatch.md
docs/markdown/components/switch.md
docs/markdown/components/tab-bar-ios.md
docs/markdown/components/table.md
docs/markdown/components/tabs.md
docs/markdown/components/tag-field.md
docs/markdown/components/tag-group.md
docs/markdown/components/tag.md
docs/markdown/components/takeover-dialog.md
docs/markdown/components/text-area.md
docs/markdown/components/text-field.md
docs/markdown/components/thumbnail.md
docs/markdown/components/toast.md
docs/markdown/components/tooltip.md
docs/markdown/components/tray.md
docs/markdown/components/tree-view.md
docs/markdown/pages/404.md
docs/markdown/pages/ai.md
docs/markdown/pages/components/index.md
docs/markdown/pages/index.md
docs/markdown/pages/registry/index.md
docs/markdown/pages/tokens/index.md
docs/markdown/registry/anatomy-terms.md
docs/markdown/registry/categories.md
docs/markdown/registry/components.md
docs/markdown/registry/glossary.md
docs/markdown/registry/navigation-terms.md
docs/markdown/registry/platforms.md
docs/markdown/registry/scale-values.md
docs/markdown/registry/sizes.md
docs/markdown/registry/states.md
docs/markdown/registry/token-terminology.md
docs/markdown/registry/variants.md
docs/markdown/tokens/color-aliases.md
docs/markdown/tokens/color-component.md
docs/markdown/tokens/color-palette.md
docs/markdown/tokens/icons.md
docs/markdown/tokens/layout-component.md
docs/markdown/tokens/layout.md
docs/markdown/tokens/semantic-color-palette.md
docs/markdown/tokens/typography.md
tools/markdown-generator/src/components.js
tools/markdown-generator/src/constants.js
tools/markdown-generator/src/pages.js
tools/markdown-generator/src/registry.js
tools/markdown-generator/src/token-resolver.js
tools/markdown-generator/src/tokens.js
tools/markdown-generator/test/components.test.js
tools/markdown-generator/test/registry.test.js
tools/markdown-generator/test/token-resolver.test.js
tools/markdown-generator/test/tokens.test.js

@GarthDB GarthDB merged commit 956df11 into main Feb 26, 2026
2 checks passed
@GarthDB GarthDB deleted the feat/markdown-generator-source-url branch February 26, 2026 18:43
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.

1 participant