blueprints: serve /blueprints/ from Nuxt - #5794
Conversation
✅ Deploy Preview for flowfuse-website ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
863b964 to
6e0bb20
Compare
6e0bb20 to
4f221a8
Compare
4f221a8 to
2adf1cd
Compare
|
Rebased on
Four fixes from the review pass over the whole migration, all in the sync:
Also moved the This still needs rebasing onto #5694 once that lands, per the note in #5777. |
2adf1cd to
b950471
Compare
|
Rebased onto |
b950471 to
534dcb7
Compare
Ports the Blueprint Library, the last route group still generated by 11ty. src/blueprints.njk, src/blueprints/submit.njk and the templates they pulled in are replaced by pages under nuxt/pages/blueprints/. The blueprints themselves live in the separate FlowFuse/blueprint-library repo, so this also moves the build step that brings them in. scripts/copy_blueprints.js wrote a Nunjucks-shaped tree into src/blueprints/; nuxt/lib/blueprints-sync.mjs writes the markdown into nuxt/content/blueprints/ and the screenshots and flow exports into nuxt/public/blueprints/, and nuxt/modules/blueprints-source.ts runs it during a Nuxt build or dev start the way docs-source does for the product docs. scripts/sync_blueprints.mjs is the same sync for callers with no Nuxt yet, which is what the Build Site workflow runs before committing to the `live` branch Netlify deploys. The library is private, so unlike the docs there is no clone fallback. Source precedence is FLOWFUSE_BLUEPRINTS_LOCAL, then a sibling checkout, then the tree already committed by that workflow. A production build that resolves nothing fails rather than publishing an empty library.
534dcb7 to
bbfaabf
Compare
| @@ -0,0 +1,10 @@ | |||
| <script setup lang="ts"> | |||
There was a problem hiding this comment.
I thought we already had a CTA component?
There was a problem hiding this comment.
We do, but they are all buttons through cta/CtaButton.vue. This one is the one-line text band with an inline link, ported from contact-us-cta-line.njk, so there is no button to share. Renamed it to CtaContactUsLine.vue so it sits with the rest of the family.
The wider point stands though: the teardown branch ends up with thirteen CTA-ish components. Consolidating them touches pages across five of the open migration PRs, so better as its own PR once 5777 is done.
…istry Keeps the URL in the one place the other Cta* components read it from. The band stays its own component because it is prose with an inline link rather than a button through cta/CtaButton.vue, and it stays untracked because the .njk it ports was.
|
There is Pushed a change so it at least reads its href from The |
Without the prefix the dev middleware keeps proxying to 11ty, so npm run dev shows the old page. The middleware returns early unless NODE_ENV is development, which is why CI and the deploy preview both looked correct.
|
Correction to my earlier comment: #5815 is closed, the registration belongs in each migration PR instead. Pushed here. |
Both glyphs are stock Heroicons, byte-identical to the files SiteArt inlined, so they go through <UIcon> and the component, its generated util and its generator script come out. Each call site carries the size the source SVG had.
|
Cross-PR pass over the four patterns. Two applied:
This also closes out the open thread on #5792, which asked for No |
|
Separate finding from the preview, not from the icon change and not a blocker.
11ty never did this, so it only shows up now that these render through Sampled the 12 blueprints linked from the index and 1 is affected, so it is narrow: only blueprints whose markdown uses a linked heading. The fix belongs in the blueprint content rather than here (heading and link as separate lines), since the markdown is synced from Flagging rather than fixing, as it is pre-existing to my commits and outside this PR. |
|
Fix for the hydration mismatch is up: https://github.com/FlowFuse/blueprint-library/pull/182 It was the only linked heading across all 19 blueprints, and the link was dead anyway ( |
# Conflicts: # nuxt/server/middleware/legacy.ts
|
Conflicts resolved, main is merged in. Same shape as the other migration PRs: the registry files take the union, so |
# Conflicts: # nuxt/server/middleware/legacy.ts
# Conflicts: # nuxt/server/middleware/legacy.ts

Description
Moves
/blueprints/to Nuxt: the paginated library, the detail pages and the submission page.The blueprints come from the separate
FlowFuse/blueprint-libraryrepository, so the build step that pulls them in moves too.nuxt/lib/blueprints-sync.mjswrites the markdown intonuxt/content/blueprints/and the screenshots intonuxt/public/blueprints/; a Nuxt module runs it during a build or dev start, the way the product docs already work.npm run blueprintskeeps its name, so the Build Site workflow is unchanged apart from the path it commits.The library is private, so the sync resolves its source in precedence order:
FLOWFUSE_BLUEPRINTS_LOCAL, a sibling checkout, an authenticated sparse clone, then whatever is already on disk. Only a production deploy that resolves nothing is fatal.Rebased onto #5694, which landed on 14 September and owns the authenticated clone path.
The listing is ordered by path, descending. Eleventy ordered by date and reversed, but no blueprint README carries a date, so they all fell back to their checkout timestamp and the tie broke on path. The one blueprint that does set a date sorted to the very end there and now sits with its category.
Related Issue(s)
Part of #5777
Checklist