create-thally-docs 0.10.74 → 0.10.76

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.
@@ -162,6 +162,16 @@ function updateSiteConfig(targetDir, projectName, description, brandPreset, repo
162
162
  }
163
163
  writeFileSync(siteFile, source, "utf8");
164
164
  }
165
+ function pruneMissingSiteLinks(targetDir, pageIds) {
166
+ const siteFile = join(targetDir, "src", "data", "site.ts");
167
+ if (!existsSync(siteFile)) return;
168
+ const source = readFileSync(siteFile, "utf8");
169
+ const pruned = source.replace(
170
+ /\r?\n[ \t]*\{[ \t]*label:[ \t]*'(?:\\.|[^'\\\r\n])*',[ \t]*href:[ \t]*'\/([\w/-]*)'[ \t]*\},?/g,
171
+ (match, pageId) => pageIds.has(pageId) ? match : ""
172
+ );
173
+ if (pruned !== source) writeFileSync(siteFile, pruned, "utf8");
174
+ }
165
175
  function updatePackageIdentity(targetDir, packageName) {
166
176
  const packagePath = join(targetDir, "package.json");
167
177
  const packageJson = readJsonObject(packagePath, "package.json");
@@ -221,6 +231,7 @@ function personalizeStarter(targetDir, options) {
221
231
  export {
222
232
  updateStarterDocsConfig,
223
233
  updateSiteConfig,
234
+ pruneMissingSiteLinks,
224
235
  updatePackageIdentity,
225
236
  updateCloudflareRuntimeName,
226
237
  updateEnvExample,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  STABLE_SCAFFOLD_RELEASE
4
- } from "./chunk-ZV5ARFUQ.js";
4
+ } from "./chunk-S5ZQSE5V.js";
5
5
 
6
6
  // src/starter-sync.ts
7
7
  import { createHash } from "crypto";
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readStarterReleaseManifest
4
- } from "./chunk-65U6RKP2.js";
4
+ } from "./chunk-7KLBTC3I.js";
5
5
  import {
6
6
  STABLE_SCAFFOLD_RELEASE
7
- } from "./chunk-ZV5ARFUQ.js";
7
+ } from "./chunk-S5ZQSE5V.js";
8
8
 
9
9
  // src/download.ts
10
10
  import { Readable, Transform, pipeline } from "stream";
@@ -3,19 +3,19 @@
3
3
  // src/stable-scaffold-release.json
4
4
  var stable_scaffold_release_default = {
5
5
  schemaVersion: 1,
6
- id: "2026-10-01.4f272434.177e20c9",
6
+ id: "2026-10-02.644cbada.498675f5",
7
7
  source: {
8
8
  repository: "thallylabs/starter",
9
- commitSha: "4f2724342aadc6151fc2aa3dfdb8b7e169ee370c",
10
- treeSha: "93e8a046393c3aca94fb9616c8c317fb1a670bd9",
11
- archiveUrl: "https://codeload.github.com/thallylabs/starter/tar.gz/4f2724342aadc6151fc2aa3dfdb8b7e169ee370c",
9
+ commitSha: "644cbada1c1651e43149875a31711b907dcf00ea",
10
+ treeSha: "3486dd205040a82d0b78f824211807ba81a64aac",
11
+ archiveUrl: "https://codeload.github.com/thallylabs/starter/tar.gz/644cbada1c1651e43149875a31711b907dcf00ea",
12
12
  manifestPath: "starter-release.json",
13
- manifestSha256: "b312bbe6e7bb102c877b16c8a8d22fc803a0dfa7eff92243717b1171c7fb70fc"
13
+ manifestSha256: "403e7ae7b642f35b383626dc3b7c3734f9b518483a032bbe52ec11884e5ff507"
14
14
  },
15
15
  runtime: {
16
16
  repository: "thallylabs/thally",
17
- commitSha: "177e20c9a6aab3fdea9971f25082b42bf662c7a1",
18
- treeSha: "be9afded1c3838af0c290a93a51241a2d865a3c7",
17
+ commitSha: "498675f5a219c875ec2bb7915cb5420e5adb80c8",
18
+ treeSha: "ba1d019a08c8ce86ec545dc21f94698af3d271a3",
19
19
  contentSource: "assets",
20
20
  identityContractVersion: 1
21
21
  },
@@ -24,6 +24,26 @@ var stable_scaffold_release_default = {
24
24
 
25
25
  // src/previous-scaffold-releases.json
26
26
  var previous_scaffold_releases_default = [
27
+ {
28
+ schemaVersion: 1,
29
+ id: "2026-10-01.4f272434.177e20c9",
30
+ source: {
31
+ repository: "thallylabs/starter",
32
+ commitSha: "4f2724342aadc6151fc2aa3dfdb8b7e169ee370c",
33
+ treeSha: "93e8a046393c3aca94fb9616c8c317fb1a670bd9",
34
+ archiveUrl: "https://codeload.github.com/thallylabs/starter/tar.gz/4f2724342aadc6151fc2aa3dfdb8b7e169ee370c",
35
+ manifestPath: "starter-release.json",
36
+ manifestSha256: "b312bbe6e7bb102c877b16c8a8d22fc803a0dfa7eff92243717b1171c7fb70fc"
37
+ },
38
+ runtime: {
39
+ repository: "thallylabs/thally",
40
+ commitSha: "177e20c9a6aab3fdea9971f25082b42bf662c7a1",
41
+ treeSha: "be9afded1c3838af0c290a93a51241a2d865a3c7",
42
+ contentSource: "assets",
43
+ identityContractVersion: 1
44
+ },
45
+ starterVersion: 2
46
+ },
27
47
  {
28
48
  schemaVersion: 1,
29
49
  id: "2026-09-30.f7cdf474.f4a15647",
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  personalizeStarter,
4
4
  updateEnvExample
5
- } from "./chunk-XYRM4GAT.js";
5
+ } from "./chunk-4VKRBJV2.js";
6
6
  import {
7
7
  downloadStarter
8
- } from "./chunk-EONUB6XH.js";
8
+ } from "./chunk-PXGRHNHB.js";
9
9
 
10
10
  // src/scaffold.ts
11
11
  import { existsSync, mkdirSync, readdirSync } from "fs";
@@ -5,7 +5,10 @@ import {
5
5
  readDocsJson,
6
6
  scaffold,
7
7
  writeDocsJson
8
- } from "./chunk-5VNHBNTK.js";
8
+ } from "./chunk-VXDTKVBA.js";
9
+ import {
10
+ pruneMissingSiteLinks
11
+ } from "./chunk-4VKRBJV2.js";
9
12
 
10
13
  // src/migrate/index.ts
11
14
  import { existsSync as existsSync3, mkdirSync, mkdtempSync, readFileSync as readFileSync4, rmSync, writeFileSync } from "fs";
@@ -469,7 +472,8 @@ function extractHeadingAnchors(content) {
469
472
  forEachNonFencedLine(content, (line) => {
470
473
  const heading = /^ {0,3}#{1,6}\s+(.+?)\s*#*\s*$/.exec(line);
471
474
  if (heading) {
472
- const base = slugify(renderedHeadingText(heading[1]));
475
+ const explicit = /\{\/\*\s*#(\S+?)\s*\*\/\}$/.exec(heading[1]);
476
+ const base = explicit?.[1] ?? slugify(renderedHeadingText(heading[1]));
473
477
  const occurrence = (occurrences.get(base) ?? 0) + 1;
474
478
  occurrences.set(base, occurrence);
475
479
  anchors.add(occurrence === 1 ? base : `${base}-${occurrence}`);
@@ -1007,6 +1011,7 @@ async function migrateDocs(options) {
1007
1011
  colors: bundle.site?.colors
1008
1012
  });
1009
1013
  resetFreshMigrationContent(projectDir);
1014
+ pruneMissingSiteLinks(projectDir, new Set(bundle.pages.map((page) => page.id)));
1010
1015
  } else if (!existsSync3(projectDir)) {
1011
1016
  throw new Error(`Project directory "${projectDir}" does not exist. Use without --into to scaffold a new one.`);
1012
1017
  }
@@ -37,6 +37,11 @@ declare function updateSiteConfig(targetDir: string, projectName: string, descri
37
37
  light?: string;
38
38
  dark?: string;
39
39
  }): void;
40
+ /**
41
+ * Drop starter footer links to sample pages a migration did not bring along
42
+ * (the starter's `/quickstart` and `/changelog`), so no link leads to a 404.
43
+ */
44
+ declare function pruneMissingSiteLinks(targetDir: string, pageIds: ReadonlySet<string>): void;
40
45
  /** Rename only the root package identity; dependency pins belong to starter. */
41
46
  declare function updatePackageIdentity(targetDir: string, packageName: string): void;
42
47
  /** Update the provider-portable Worker name without recreating its config. */
@@ -46,4 +51,4 @@ declare function updateEnvExample(targetDir: string): void;
46
51
  /** Apply the complete, intentionally narrow owner-personalization contract. */
47
52
  declare function personalizeStarter(targetDir: string, options: StarterPersonalizationOptions): void;
48
53
 
49
- export { type StarterLocale, type StarterPersonalizationOptions, personalizeStarter, updateCloudflareRuntimeName, updateEnvExample, updatePackageIdentity, updateSiteConfig, updateStarterDocsConfig };
54
+ export { type StarterLocale, type StarterPersonalizationOptions, personalizeStarter, pruneMissingSiteLinks, updateCloudflareRuntimeName, updateEnvExample, updatePackageIdentity, updateSiteConfig, updateStarterDocsConfig };
package/dist/customize.js CHANGED
@@ -1,14 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  personalizeStarter,
4
+ pruneMissingSiteLinks,
4
5
  updateCloudflareRuntimeName,
5
6
  updateEnvExample,
6
7
  updatePackageIdentity,
7
8
  updateSiteConfig,
8
9
  updateStarterDocsConfig
9
- } from "./chunk-XYRM4GAT.js";
10
+ } from "./chunk-4VKRBJV2.js";
10
11
  export {
11
12
  personalizeStarter,
13
+ pruneMissingSiteLinks,
12
14
  updateCloudflareRuntimeName,
13
15
  updateEnvExample,
14
16
  updatePackageIdentity,
package/dist/index.js CHANGED
@@ -3,17 +3,17 @@ import {
3
3
  migrateDocs,
4
4
  parseFrontmatter,
5
5
  runCheck
6
- } from "./chunk-63K6TG5R.js";
6
+ } from "./chunk-ZYCWMJ6K.js";
7
7
  import {
8
8
  logo,
9
9
  scaffold,
10
10
  slugify,
11
11
  success
12
- } from "./chunk-5VNHBNTK.js";
13
- import "./chunk-XYRM4GAT.js";
14
- import "./chunk-EONUB6XH.js";
15
- import "./chunk-65U6RKP2.js";
16
- import "./chunk-ZV5ARFUQ.js";
12
+ } from "./chunk-VXDTKVBA.js";
13
+ import "./chunk-4VKRBJV2.js";
14
+ import "./chunk-PXGRHNHB.js";
15
+ import "./chunk-7KLBTC3I.js";
16
+ import "./chunk-S5ZQSE5V.js";
17
17
 
18
18
  // src/index.ts
19
19
  import { existsSync as existsSync2, readdirSync } from "fs";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  migrateDocs
4
- } from "../chunk-63K6TG5R.js";
5
- import "../chunk-5VNHBNTK.js";
6
- import "../chunk-XYRM4GAT.js";
7
- import "../chunk-EONUB6XH.js";
8
- import "../chunk-65U6RKP2.js";
9
- import "../chunk-ZV5ARFUQ.js";
4
+ } from "../chunk-ZYCWMJ6K.js";
5
+ import "../chunk-VXDTKVBA.js";
6
+ import "../chunk-4VKRBJV2.js";
7
+ import "../chunk-PXGRHNHB.js";
8
+ import "../chunk-7KLBTC3I.js";
9
+ import "../chunk-S5ZQSE5V.js";
10
10
  export {
11
11
  migrateDocs
12
12
  };
package/dist/release.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  STABLE_SCAFFOLD_RELEASE,
4
4
  SUPPORTED_SCAFFOLD_RELEASES,
5
5
  isStableScaffoldRelease
6
- } from "./chunk-ZV5ARFUQ.js";
6
+ } from "./chunk-S5ZQSE5V.js";
7
7
  export {
8
8
  STABLE_SCAFFOLD_RELEASE,
9
9
  SUPPORTED_SCAFFOLD_RELEASES,
package/dist/scaffold.js CHANGED
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  scaffold
4
- } from "./chunk-5VNHBNTK.js";
5
- import "./chunk-XYRM4GAT.js";
4
+ } from "./chunk-VXDTKVBA.js";
5
+ import "./chunk-4VKRBJV2.js";
6
6
  import {
7
7
  STARTER_ARCHIVE_ROOT,
8
8
  STARTER_COMMIT_SHA,
9
9
  STARTER_REPOSITORY,
10
10
  validateStarterArchiveEntry
11
- } from "./chunk-EONUB6XH.js";
12
- import "./chunk-65U6RKP2.js";
11
+ } from "./chunk-PXGRHNHB.js";
12
+ import "./chunk-7KLBTC3I.js";
13
13
  import {
14
14
  STABLE_SCAFFOLD_RELEASE
15
- } from "./chunk-ZV5ARFUQ.js";
15
+ } from "./chunk-S5ZQSE5V.js";
16
16
  export {
17
17
  STABLE_SCAFFOLD_RELEASE,
18
18
  STARTER_ARCHIVE_ROOT,
@@ -8,8 +8,8 @@ import {
8
8
  planStarterRuntimeSync,
9
9
  readStarterReleaseManifest,
10
10
  starterManifestSha256
11
- } from "./chunk-65U6RKP2.js";
12
- import "./chunk-ZV5ARFUQ.js";
11
+ } from "./chunk-7KLBTC3I.js";
12
+ import "./chunk-S5ZQSE5V.js";
13
13
  export {
14
14
  applyStarterRuntimeSyncPlan,
15
15
  classifyStarterPath,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  downloadStarter
4
- } from "./chunk-EONUB6XH.js";
4
+ } from "./chunk-PXGRHNHB.js";
5
5
  import {
6
6
  applyStarterRuntimeSyncPlan,
7
7
  mergeStarterOwnershipContracts,
@@ -9,11 +9,11 @@ import {
9
9
  planStarterRuntimeSync,
10
10
  readStarterReleaseManifest,
11
11
  starterManifestSha256
12
- } from "./chunk-65U6RKP2.js";
12
+ } from "./chunk-7KLBTC3I.js";
13
13
  import {
14
14
  STABLE_SCAFFOLD_RELEASE,
15
15
  SUPPORTED_SCAFFOLD_RELEASES
16
- } from "./chunk-ZV5ARFUQ.js";
16
+ } from "./chunk-S5ZQSE5V.js";
17
17
 
18
18
  // src/starter-update.ts
19
19
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-thally-docs",
3
- "version": "0.10.74",
3
+ "version": "0.10.76",
4
4
  "description": "Scaffold an open-source Thally docs site for people, search engines, and AI tools.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -44,8 +44,8 @@
44
44
  "dependencies": {
45
45
  "@anthropic-ai/sdk": "^0.36.0",
46
46
  "@inquirer/prompts": "^7.0.0",
47
- "@thallylabs/core": "0.2.9",
48
- "@thallylabs/migrate": "0.2.22",
47
+ "@thallylabs/core": "0.2.10",
48
+ "@thallylabs/migrate": "0.2.23",
49
49
  "p-limit": "^6.1.0",
50
50
  "remark-mdx": "^3.1.1",
51
51
  "remark-parse": "^11.0.0",