diff --git a/README.md b/README.md index dcab97c..db9ac16 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ Orchestrator: `scripts/build-vite.js` (flags: `--local`, `--headless`, ## The registry: `apps.json` Each entry registers one doc app. A `slug` is required; the source is one of -`repo` (+ optional `version`), `localPath`, or `prebuilt`: +`repo` (+ optional `version`), `localPath`, `prebuilt`, or an `iframe` URL: ```jsonc [ @@ -97,6 +97,29 @@ Each entry registers one doc app. A `slug` is required; the source is one of ] ``` +### iframe onboarding (temporary) + +Teams that already host their docs elsewhere and can't yet produce a headless +package can be listed immediately with an **iframe** entry — no `repo`, +`marketplace.json`, or artifact needed. It renders as a full-viewport ` + + +) : ( + +)} diff --git a/src/styles/marketplace.css b/src/styles/marketplace.css index 8b436a7..fb91551 100644 --- a/src/styles/marketplace.css +++ b/src/styles/marketplace.css @@ -222,3 +222,11 @@ wf-body.mp-wrapped #sidebar { top: var(--mp-chrome-h) !important; } color: var(--text-muted); border: 1px solid var(--border); } + +/* iframe-onboarding entries (issue #10) — flags an externally embedded app */ +.mp-tag-external { + background: var(--color-kb-50); + color: var(--color-kb-600); + border-color: var(--color-kb-100); + font-weight: 600; +} diff --git a/src/utils/apps.js b/src/utils/apps.js index 1d5d129..cda9a19 100644 --- a/src/utils/apps.js +++ b/src/utils/apps.js @@ -39,6 +39,24 @@ export function getAppPages(cwd, headless) { const appDir = join(appsDir, app.slug); const appHeadless = app.headless ?? headless; + if (app.type === 'iframe') { + // iFrame onboarding mode: no artifact on disk — emit a single route that + // renders a full-viewport