create-zudo-doc 5.24.2 → 5.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/scaffold.d.ts +1 -1
- package/dist/scaffold.js +20 -8
- package/package.json +1 -1
- package/templates/base/scripts/check-links.js +20 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,23 @@ The format is based on Keep a Changelog, and release notes are generated from th
|
|
|
8
8
|
|
|
9
9
|
No unreleased changes.
|
|
10
10
|
|
|
11
|
+
## [5.26.0] - 2026-09-20
|
|
12
|
+
|
|
13
|
+
### Other Changes
|
|
14
|
+
|
|
15
|
+
- Generated projects now pin `@takazudo/zfb`, `@takazudo/zfb-runtime`, and `@takazudo/zfb-md-wasm` to `2.19.0`. zfb 2.19 adds the opt-in `ZFB_KEEP_BUILD_SHADOW=1` build-diagnostics mode and adopts a YAML parser patch verified equivalent across all 18 upstream baseline cases. The runtime has no package-specific behavior change; md-wasm rebuilds its artifacts without changing exports or public APIs. Existing projects need no config migration. (4c2048528)
|
|
16
|
+
|
|
17
|
+
## [5.25.0] - 2026-09-16
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
- The generated `scripts/check-links.js`'s MDX id scan no longer lets an escaped `\<` in prose start a fake tag that swallows a later element's static `id` across a blank line, wrongly reporting a valid anchor as broken. Projects that copied `scripts/check-links.js` from the template can re-copy it to pick up the fix. (0ea5eeae6)
|
|
22
|
+
|
|
23
|
+
### Other Changes
|
|
24
|
+
|
|
25
|
+
- New scaffolds no longer add a `.zudo-doc/` entry to the generated `.gitignore`. The staging step it was for was removed from `@takazudo/zudo-doc`'s route injection — see that package's changelog. (54a3f12a9)
|
|
26
|
+
- Generated projects now pin `@takazudo/zfb`, `@takazudo/zfb-runtime`, and `@takazudo/zfb-md-wasm` to `2.18.0` (e4d4b64b3). That release reworks package-injected routes and plugin virtual modules and changes no API, export, or config default, so existing projects need no migration.
|
|
27
|
+
|
|
11
28
|
## [5.24.2] - 2026-09-15
|
|
12
29
|
|
|
13
30
|
### Bug Fixes
|
package/dist/scaffold.d.ts
CHANGED
|
@@ -31,5 +31,5 @@ export declare function deriveDocSkillName(projectName: string): string;
|
|
|
31
31
|
*
|
|
32
32
|
* Bumped in lockstep by scripts/release-create-zudo-doc.sh.
|
|
33
33
|
*/
|
|
34
|
-
export declare const ZUDO_DOC_PIN = "^5.
|
|
34
|
+
export declare const ZUDO_DOC_PIN = "^5.26.0";
|
|
35
35
|
export declare function scaffold(choices: UserChoices): Promise<void>;
|
package/dist/scaffold.js
CHANGED
|
@@ -47,7 +47,7 @@ export function deriveDocSkillName(projectName) {
|
|
|
47
47
|
*
|
|
48
48
|
* Bumped in lockstep by scripts/release-create-zudo-doc.sh.
|
|
49
49
|
*/
|
|
50
|
-
export const ZUDO_DOC_PIN = "^5.
|
|
50
|
+
export const ZUDO_DOC_PIN = "^5.26.0";
|
|
51
51
|
/**
|
|
52
52
|
* Files in `templates/base/**` that must not be copied by the unconditional
|
|
53
53
|
* base mirror. Each entry is matched against the path relative to
|
|
@@ -466,9 +466,6 @@ export async function scaffold(choices) {
|
|
|
466
466
|
"# Cloudflare Wrangler",
|
|
467
467
|
".wrangler/",
|
|
468
468
|
"",
|
|
469
|
-
"# zudo-doc build artifact (routes-src/ staged here at build time)",
|
|
470
|
-
".zudo-doc/",
|
|
471
|
-
"",
|
|
472
469
|
];
|
|
473
470
|
// The doc-lookup skill is only generated when skillSymlinker is selected
|
|
474
471
|
// (the setup-doc-skill.sh script and `setup:doc-skill` npm script are gated
|
|
@@ -778,9 +775,24 @@ function generatePackageJson(choices, localePlan) {
|
|
|
778
775
|
// moved sizes; zfb-runtime and zfb-adapter-cloudflare change only their
|
|
779
776
|
// README/description. No public API, export, config default, or engine
|
|
780
777
|
// requirement moves, so a fresh scaffold needs no migration.
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
778
|
+
// 2.18.0: zfb reworks package-injected routes and plugin virtual modules —
|
|
779
|
+
// the islands scanner now resolves plugin virtual modules and is seeded with
|
|
780
|
+
// package-route entrypoints, dev CSS content globs are seeded from injected
|
|
781
|
+
// routes, injected-route entrypoints and their import closure are staged as
|
|
782
|
+
// exact files, and SSR virtual modules may import those canonical files while
|
|
783
|
+
// the hidden-path guard still holds. zfb-runtime, zfb-adapter-cloudflare, and
|
|
784
|
+
// md-wasm carry no package-specific change. No public API, export, config
|
|
785
|
+
// default, or engine requirement moves, so a fresh scaffold needs no migration.
|
|
786
|
+
// 2.19.0: zfb adds the opt-in `ZFB_KEEP_BUILD_SHADOW=1` diagnostic flag and
|
|
787
|
+
// moves its YAML parser to noyalib-serde-yaml 0.0.44, which upstream verified
|
|
788
|
+
// as equivalent across all 18 baseline cases. zfb-runtime and
|
|
789
|
+
// zfb-adapter-cloudflare have no package-specific change. md-wasm rebuilds
|
|
790
|
+
// its four artifacts with that parser patch, changing byte sizes and digests
|
|
791
|
+
// without changing exports or public APIs. A fresh scaffold needs no config
|
|
792
|
+
// migration.
|
|
793
|
+
"@takazudo/zfb": "2.19.0",
|
|
794
|
+
"@takazudo/zfb-runtime": "2.19.0",
|
|
795
|
+
"@takazudo/zfb-md-wasm": "2.19.0",
|
|
784
796
|
// @takazudo/zudo-doc — published from this monorepo via
|
|
785
797
|
// .github/workflows/publish-zudo-doc.yml. The pin here is bumped in
|
|
786
798
|
// lockstep by scripts/release-create-zudo-doc.sh whenever zudo-doc's
|
|
@@ -913,7 +925,7 @@ function generatePackageJson(choices, localePlan) {
|
|
|
913
925
|
// `/exclude` at module scope from the always-bundled chrome graph; #3110
|
|
914
926
|
// moved compileExclude into @takazudo/zudo-doc, so projects with both
|
|
915
927
|
// docHistory and assetViewer off no longer need the package at all.
|
|
916
|
-
deps["@takazudo/zudo-doc-history-server"] = "^5.
|
|
928
|
+
deps["@takazudo/zudo-doc-history-server"] = "^5.26.0";
|
|
917
929
|
// tsx is no longer needed here: the relocated package plugin imports the
|
|
918
930
|
// runner directly (no `tsx -e` spawn) since the package ships compiled
|
|
919
931
|
// dist/ — package-first migration #2321 (#2337).
|
package/package.json
CHANGED
|
@@ -663,8 +663,27 @@ function extractStaticMdxIds(body) {
|
|
|
663
663
|
// (#4048). The rest of this pattern keeps its own semantics — `\bid` also
|
|
664
664
|
// accepts `data-id`, and only non-empty quoted values count, unlike the
|
|
665
665
|
// built-HTML id scan.
|
|
666
|
+
//
|
|
667
|
+
// Two extra guards, scoped to this MDX scan only (the shared
|
|
668
|
+
// HTML_ATTRIBUTE_RUN above is untouched — the built-HTML scans still rely on
|
|
669
|
+
// multi-line quoted attributes):
|
|
670
|
+
//
|
|
671
|
+
// - MDX_UNESCAPED_LT_LOOKBEHIND: an escaped `\<` in prose is valid MDX and
|
|
672
|
+
// must not start a fake tag. Parity matters, not just "preceded by a
|
|
673
|
+
// backslash" — `\\<` is an escaped backslash followed by an active `<`.
|
|
674
|
+
// The lookbehind is anchored at the run's start (`(?<!\\)`) so it judges
|
|
675
|
+
// the whole contiguous backslash run, not a suffix of it.
|
|
676
|
+
// - MDX_ID_ATTRIBUTE_RUN: without this, a fake tag opened by an escaped `<`
|
|
677
|
+
// can have prose apostrophes read as a `'...'` quoted value that crosses
|
|
678
|
+
// a real `>` and swallows a real element's id on a later line (#4218).
|
|
679
|
+
// Disallowing a blank line inside a quoted value bounds the damage to a
|
|
680
|
+
// single paragraph while still letting a real JSX tag — including a
|
|
681
|
+
// quoted value spanning one newline — match.
|
|
682
|
+
const MDX_UNESCAPED_LT_LOOKBEHIND = /(?<!(?<!\\)(?:\\\\)*\\)/.source;
|
|
683
|
+
const MDX_ID_ATTRIBUTE_RUN =
|
|
684
|
+
/(?:"(?:(?!\r?\n[ \t]*\r?\n)[^"])*"|'(?:(?!\r?\n[ \t]*\r?\n)[^'])*'|[^>"'])/.source;
|
|
666
685
|
const regex = new RegExp(
|
|
667
|
-
|
|
686
|
+
`${MDX_UNESCAPED_LT_LOOKBEHIND}<[A-Za-z]${MDX_ID_ATTRIBUTE_RUN}*?\\bid\\s*=\\s*(?:"([^"]+)"|'([^']+)')${MDX_ID_ATTRIBUTE_RUN}*>`,
|
|
668
687
|
"gs",
|
|
669
688
|
);
|
|
670
689
|
let match;
|