blume 2.1.1 → 2.1.3

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.
Files changed (171) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cli/{chunk-ncj7w596.js → chunk-0pmb4tr4.js} +22 -18
  3. package/dist/cli/{chunk-ncj7w596.js.map → chunk-0pmb4tr4.js.map} +3 -3
  4. package/dist/cli/{chunk-nq1d20w2.js → chunk-0w6hs479.js} +15 -15
  5. package/dist/cli/{chunk-ehweg4fr.js → chunk-124fvmzq.js} +1031 -903
  6. package/dist/cli/{chunk-ehweg4fr.js.map → chunk-124fvmzq.js.map} +20 -18
  7. package/dist/cli/{chunk-kma9f6sf.js → chunk-1f882900.js} +2 -2
  8. package/dist/cli/{chunk-e8xw9qkh.js → chunk-297ajdcv.js} +4 -4
  9. package/dist/cli/{chunk-e6atmn4h.js → chunk-32khwcb6.js} +7 -7
  10. package/dist/cli/{chunk-073rdvgb.js → chunk-36bxs9c7.js} +16 -16
  11. package/dist/cli/{chunk-mrcccgnh.js → chunk-53jqw8z0.js} +3 -3
  12. package/dist/cli/{chunk-ft9vfys6.js → chunk-58bt3hag.js} +4 -4
  13. package/dist/cli/{chunk-sds923fa.js → chunk-5cmts6dv.js} +3 -3
  14. package/dist/cli/{chunk-cfyg47zg.js → chunk-60hz265r.js} +4 -4
  15. package/dist/cli/{chunk-j134vrp2.js → chunk-74wfhv79.js} +1 -1
  16. package/dist/cli/{chunk-nrns10mj.js → chunk-9qzgg6mj.js} +3 -3
  17. package/dist/cli/{chunk-tphac74f.js → chunk-a57yh0h9.js} +5 -5
  18. package/dist/cli/{chunk-hebn0tpx.js → chunk-ave1wcbr.js} +1 -1
  19. package/dist/cli/{chunk-htrwgabr.js → chunk-bqxaqn5p.js} +6 -6
  20. package/dist/cli/{chunk-5vjtgs6e.js → chunk-bxwhtvw8.js} +5 -5
  21. package/dist/cli/{chunk-66w9j7p6.js → chunk-ckrcm08h.js} +5 -3
  22. package/dist/cli/{chunk-66w9j7p6.js.map → chunk-ckrcm08h.js.map} +3 -3
  23. package/dist/cli/{chunk-n0v7m8ry.js → chunk-desvm72z.js} +3 -3
  24. package/dist/cli/{chunk-3v3ffbrj.js → chunk-dhwtqnnd.js} +2 -2
  25. package/dist/cli/{chunk-gb420vvz.js → chunk-dpy8qdjf.js} +7 -4
  26. package/dist/cli/chunk-dpy8qdjf.js.map +17 -0
  27. package/dist/cli/{chunk-c1y538kd.js → chunk-dqhg54mr.js} +1 -1
  28. package/dist/cli/{chunk-42t4jxdx.js → chunk-dv2z0rzf.js} +1 -1
  29. package/dist/cli/{chunk-cm89scdv.js → chunk-es8h0v3j.js} +9 -11
  30. package/dist/cli/{chunk-cm89scdv.js.map → chunk-es8h0v3j.js.map} +3 -3
  31. package/dist/cli/{chunk-hx3xqnk9.js → chunk-gfc5fqvf.js} +14 -14
  32. package/dist/cli/{chunk-7ppf1rva.js → chunk-gxtg6ed2.js} +16 -16
  33. package/dist/cli/{chunk-8y2kmjv8.js → chunk-hvcxng5f.js} +6 -6
  34. package/dist/cli/{chunk-54ztw1nj.js → chunk-j1x92mx9.js} +1 -1
  35. package/dist/cli/{chunk-313vnn40.js → chunk-k3gr1nm9.js} +11 -9
  36. package/dist/cli/chunk-k3gr1nm9.js.map +10 -0
  37. package/dist/cli/{chunk-c887fj0s.js → chunk-kdpzw38a.js} +2 -2
  38. package/dist/cli/{chunk-t2m5j4pr.js → chunk-ms9z66nz.js} +2 -2
  39. package/dist/cli/{chunk-t2m5j4pr.js.map → chunk-ms9z66nz.js.map} +2 -2
  40. package/dist/cli/{chunk-ep6nd0rn.js → chunk-nbyvgnnm.js} +26 -14
  41. package/dist/cli/{chunk-ep6nd0rn.js.map → chunk-nbyvgnnm.js.map} +7 -7
  42. package/dist/cli/{chunk-w1r4vase.js → chunk-s0bdnc7v.js} +2 -2
  43. package/dist/cli/{chunk-fdrkhpjy.js → chunk-sc93apfs.js} +14 -14
  44. package/dist/cli/{chunk-dzwehpy7.js → chunk-tfycddbt.js} +2 -2
  45. package/dist/cli/{chunk-3x6x3pph.js → chunk-twy7psdz.js} +7 -7
  46. package/dist/cli/{chunk-e9q7a2ak.js → chunk-y4msrwm9.js} +15 -15
  47. package/dist/cli/{chunk-tdqhyxfz.js → chunk-ydp3065p.js} +5 -5
  48. package/dist/cli/index.js +18 -18
  49. package/dist/types/ai/ask.d.ts +24 -5
  50. package/dist/types/analytics/clics.d.ts +37 -0
  51. package/dist/types/analytics/index.d.ts +2 -0
  52. package/dist/types/analytics/schema.d.ts +18 -0
  53. package/dist/types/astro/integration.d.ts +6 -0
  54. package/dist/types/core/config-input.d.ts +7 -3
  55. package/dist/types/core/powered-by.d.ts +12 -0
  56. package/dist/types/core/schema.d.ts +109 -3
  57. package/dist/types/core/sources/lower.d.ts +10 -2
  58. package/dist/types/core/sources/notion.d.ts +8 -0
  59. package/dist/types/deploy/cloudflare-negotiation.d.ts +5 -2
  60. package/dist/types/deploy/node-headers.d.ts +12 -4
  61. package/dist/types/deploy/platforms/vercel.d.ts +2 -2
  62. package/dist/types/deploy/vercel-negotiation.d.ts +4 -2
  63. package/dist/types/narration/build.d.ts +34 -12
  64. package/dist/types/narration/provider.d.ts +96 -8
  65. package/dist/types/openapi/sentence.d.ts +11 -1
  66. package/dist/types/seo/jsonld.d.ts +11 -6
  67. package/dist/types/sources/notion.d.ts +8 -0
  68. package/dist/types/sources/registry.d.ts +9 -0
  69. package/docs/02-deployment.mdx +29 -1
  70. package/docs/03-upgrading.mdx +2 -1
  71. package/docs/04-migrating.mdx +9 -9
  72. package/docs/08-faq.mdx +12 -12
  73. package/docs/advanced/changelog.mdx +19 -2
  74. package/docs/advanced/custom-pages.mdx +1 -1
  75. package/docs/cli/doctor.mdx +1 -1
  76. package/docs/configuration/analytics.mdx +19 -1
  77. package/docs/configuration/index.mdx +1 -0
  78. package/docs/configuration/narration.mdx +43 -6
  79. package/docs/content/navigation.mdx +4 -2
  80. package/docs/content/sources/contentful.mdx +2 -0
  81. package/docs/content/sources/github-releases.mdx +2 -0
  82. package/docs/content/sources/notion.mdx +16 -1
  83. package/docs/content/sources/obsidian.mdx +2 -0
  84. package/docs/content/sources/payload.mdx +2 -0
  85. package/docs/content/sources/remote-mdx.mdx +2 -0
  86. package/docs/content/sources/sanity.mdx +2 -0
  87. package/docs/content/sources/strapi.mdx +2 -0
  88. package/docs/discoverability/mcp.mdx +2 -0
  89. package/docs/discoverability/structured-data.mdx +8 -6
  90. package/docs/references/asyncapi.mdx +2 -0
  91. package/docs/references/graphql.mdx +2 -0
  92. package/docs/references/openapi.mdx +14 -0
  93. package/package.json +7 -6
  94. package/skills/blume/SKILL.md +1 -1
  95. package/skills/blume-migrate/SKILL.md +1 -1
  96. package/skills/blume-migrate/assets/{oxfmt@0.67.0.patch → oxfmt@0.71.0.patch} +7 -7
  97. package/skills/blume-migrate/references/monorepo.md +5 -5
  98. package/src/ai/ask.ts +24 -6
  99. package/src/analytics/clics.ts +58 -0
  100. package/src/analytics/head.ts +5 -0
  101. package/src/analytics/index.ts +2 -0
  102. package/src/analytics/schema.ts +2 -0
  103. package/src/astro/generate.ts +13 -8
  104. package/src/astro/integration.ts +56 -9
  105. package/src/astro/render-deps.ts +10 -5
  106. package/src/astro/runtime-deps.ts +23 -2
  107. package/src/astro/templates.ts +4 -1
  108. package/src/cli/init/scaffold.ts +6 -3
  109. package/src/cli/required-secrets.ts +2 -1
  110. package/src/components/content/view-switcher.ts +7 -4
  111. package/src/components/layout/NavTree.astro +49 -5
  112. package/src/components/layout/NavTreeScript.astro +18 -0
  113. package/src/components/layout/PageLayout.astro +13 -3
  114. package/src/components/layout/RootLayout.astro +17 -12
  115. package/src/components/layout/analytics-client.ts +8 -8
  116. package/src/components/openapi/playground-client.ts +53 -53
  117. package/src/components/powered-by-middleware.ts +33 -0
  118. package/src/core/config-input.ts +11 -3
  119. package/src/core/powered-by.ts +12 -0
  120. package/src/core/schema.ts +5 -4
  121. package/src/core/sources/lower.ts +19 -3
  122. package/src/core/sources/notion.ts +27 -9
  123. package/src/deploy/cloudflare-negotiation.ts +36 -7
  124. package/src/deploy/headers.ts +15 -1
  125. package/src/deploy/node-headers.ts +32 -20
  126. package/src/deploy/platforms/cloudflare.ts +1 -0
  127. package/src/deploy/platforms/vercel.ts +4 -3
  128. package/src/deploy/vercel-negotiation.ts +38 -4
  129. package/src/markdown/base-links.ts +15 -14
  130. package/src/markdown/package-commands.ts +9 -8
  131. package/src/narration/build.ts +218 -40
  132. package/src/narration/provider.ts +89 -9
  133. package/src/openapi/render-mdx.ts +68 -8
  134. package/src/openapi/sentence.ts +29 -2
  135. package/src/registry/eject.ts +5 -1
  136. package/src/seo/jsonld.ts +38 -20
  137. package/src/sources/notion.ts +7 -0
  138. package/src/theme/color.ts +9 -10
  139. package/src/theme/entry.ts +14 -3
  140. package/dist/cli/chunk-313vnn40.js.map +0 -10
  141. package/dist/cli/chunk-gb420vvz.js.map +0 -17
  142. /package/dist/cli/{chunk-nq1d20w2.js.map → chunk-0w6hs479.js.map} +0 -0
  143. /package/dist/cli/{chunk-kma9f6sf.js.map → chunk-1f882900.js.map} +0 -0
  144. /package/dist/cli/{chunk-e8xw9qkh.js.map → chunk-297ajdcv.js.map} +0 -0
  145. /package/dist/cli/{chunk-e6atmn4h.js.map → chunk-32khwcb6.js.map} +0 -0
  146. /package/dist/cli/{chunk-073rdvgb.js.map → chunk-36bxs9c7.js.map} +0 -0
  147. /package/dist/cli/{chunk-mrcccgnh.js.map → chunk-53jqw8z0.js.map} +0 -0
  148. /package/dist/cli/{chunk-ft9vfys6.js.map → chunk-58bt3hag.js.map} +0 -0
  149. /package/dist/cli/{chunk-sds923fa.js.map → chunk-5cmts6dv.js.map} +0 -0
  150. /package/dist/cli/{chunk-cfyg47zg.js.map → chunk-60hz265r.js.map} +0 -0
  151. /package/dist/cli/{chunk-j134vrp2.js.map → chunk-74wfhv79.js.map} +0 -0
  152. /package/dist/cli/{chunk-nrns10mj.js.map → chunk-9qzgg6mj.js.map} +0 -0
  153. /package/dist/cli/{chunk-tphac74f.js.map → chunk-a57yh0h9.js.map} +0 -0
  154. /package/dist/cli/{chunk-hebn0tpx.js.map → chunk-ave1wcbr.js.map} +0 -0
  155. /package/dist/cli/{chunk-htrwgabr.js.map → chunk-bqxaqn5p.js.map} +0 -0
  156. /package/dist/cli/{chunk-5vjtgs6e.js.map → chunk-bxwhtvw8.js.map} +0 -0
  157. /package/dist/cli/{chunk-n0v7m8ry.js.map → chunk-desvm72z.js.map} +0 -0
  158. /package/dist/cli/{chunk-3v3ffbrj.js.map → chunk-dhwtqnnd.js.map} +0 -0
  159. /package/dist/cli/{chunk-c1y538kd.js.map → chunk-dqhg54mr.js.map} +0 -0
  160. /package/dist/cli/{chunk-42t4jxdx.js.map → chunk-dv2z0rzf.js.map} +0 -0
  161. /package/dist/cli/{chunk-hx3xqnk9.js.map → chunk-gfc5fqvf.js.map} +0 -0
  162. /package/dist/cli/{chunk-7ppf1rva.js.map → chunk-gxtg6ed2.js.map} +0 -0
  163. /package/dist/cli/{chunk-8y2kmjv8.js.map → chunk-hvcxng5f.js.map} +0 -0
  164. /package/dist/cli/{chunk-54ztw1nj.js.map → chunk-j1x92mx9.js.map} +0 -0
  165. /package/dist/cli/{chunk-c887fj0s.js.map → chunk-kdpzw38a.js.map} +0 -0
  166. /package/dist/cli/{chunk-w1r4vase.js.map → chunk-s0bdnc7v.js.map} +0 -0
  167. /package/dist/cli/{chunk-fdrkhpjy.js.map → chunk-sc93apfs.js.map} +0 -0
  168. /package/dist/cli/{chunk-dzwehpy7.js.map → chunk-tfycddbt.js.map} +0 -0
  169. /package/dist/cli/{chunk-3x6x3pph.js.map → chunk-twy7psdz.js.map} +0 -0
  170. /package/dist/cli/{chunk-e9q7a2ak.js.map → chunk-y4msrwm9.js.map} +0 -0
  171. /package/dist/cli/{chunk-tdqhyxfz.js.map → chunk-ydp3065p.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # blume
2
2
 
3
+ ## 2.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - e74161e: `npm install blume` and `npx blume init` finish again. `@vitejs/plugin-react` 6.1.2 asks for `oxc-transform-react` 0.152 while `@astrojs/react` 7.0.0 still asks for 0.145, and npm swapped between the two until it ran out of memory. Blume now pins `@vitejs/plugin-react` to 6.1.1, the version that matches the `oxc-transform-react` it ships, so npm, pnpm, and Bun all install without peer warnings.
8
+ - d2d72af: Update dependencies: `@astrojs/mdx` 8.0.2, `@astrojs/node` 11.1.6, `@iconify-json/lucide` 1.2.140, `@scalar/openapi-parser` 0.29.11, and `dotenv` 18.0.5.
9
+
10
+ ## 2.1.2
11
+
12
+ ### Patch Changes
13
+
14
+ - 18a35d0: Send an `X-Powered-By: Blume` response header from `blume dev` and from every host Blume sets headers on. Set `poweredBy: false` to leave it out.
15
+ - 7afeed7: A `cloudflare()` server build no longer writes `dist/server/node_modules`. The Worker bundles everything it imports, so the links to Blume's dependencies there were never loaded, but a copy of `dist/` that followed them (such as a CI artifact) uploaded every dependency as a Worker module and failed the deploy on the 64 MiB size limit. `dist/` now deploys the same wherever it's copied.
16
+ - 4d65f16: Add a `clics()` analytics adapter. It renders the Clics tracker tag with `projectId` as `data-project-id`, and the tracker counts pageviews (client-side navigations included) and outbound-link clicks. `allowLocalhost` and `disableOutboundLinks` set the tracker's matching flags. Blume's custom events don't reach Clics, whose tracker has no global event API.
17
+ - 44616f3: The homepage now emits a `WebPage` JSON-LD node with its description, language, and dates, including each locale's homepage, the root of a `basePath`, and sites without `deployment.site`. `PageLayout` takes a `lastModified` prop to date a custom homepage, and the "Last updated" date on every page is wrapped in a `<time>` element, so search engines no longer pick up an unrelated date from the page.
18
+ - 858c203: A zoomed image now closes with Escape, a click, or a scroll when the visitor's system asks for reduced motion. The zoom still opens and closes without animating, but it no longer stays stuck open until the page reloads.
19
+ - 9d3897a: An API reference page whose description opens with the lead-in to a list ("Supports two modes:") no longer ends its meta description in a dangling `:` or `:.`. The list's items now follow the lead-in ("Supports two modes: Explicit IDs; Select all."), on operation and overview pages and with `seoDescriptionSuffix` off. A lead-in to anything else, such as a code block, closes with a period, and a colon that belongs to the text, like inline code ending in `tenant:`, stays. Operation summaries on the agent surfaces close the same way.
20
+ - d1cf8d9: A build without the narration provider's key, such as a pull request from a fork, now still ships the generated clips its cache restored: only pages that need a new clip fall back to browser voices, and the warning prints only when a clip is missing.
21
+ - d1cf8d9: Narration can generate voices with `openai()` from `blume/ai`, not only `gateway()`. `narration: { provider: openai({ model, voice }) }` uses OpenAI's speech models, and with a `baseUrl` any server that serves OpenAI's `/audio/speech` endpoint, such as a self-hosted Kokoro-FastAPI, Speaches, or LiteLLM, so a site whose build can't reach a hosted service still gets generated voices. With a `baseUrl`, only the key `apiKeyEnv` names is sent, so `OPENAI_API_KEY` never reaches another server, and with none named the build calls the server without a bearer token instead of skipping generation. It speaks through `@ai-sdk/openai`, which `blume build` and `blume doctor` report when it isn't installed. A response that isn't MP3 fails its clip instead of being cached. Clips are cached per server and shared across languages, since OpenAI's speech API takes none, and `gateway()` clips keep their cache keys.
22
+ - b67d679: `notion()` takes `mdx: true` to read the text of a Notion page as MDX, so components like `<CardGroup>` and `<Card>`, expressions, and Markdown typed into paragraphs, headings, list items, quotes, and callouts render instead of showing as written. Blume 2 escapes that text by default, which left pages written this way under Blume 1 showing their tags. Code blocks, toggle titles, captions, and properties stay plain text. MDX runs code at build time, so turn this on only for a database whose editors you trust with the site's build.
23
+ - cfb5c51: The `blume-migrate` skill's bundled oxfmt patch now targets oxfmt 0.71.0, so a migrated repo that formats with Ultracite keeps its `:::` directives, titled fences like `:::warning[Heads up]` included, on the current oxfmt release.
24
+ - d23dda7: In `page` display mode, a sidebar group with an `index` page now links its row's name to that page, as `group` and `flat` mode already did: clicking the name opens the section's landing page with its panel open, even when the index page sets `sidebar.hidden: true`. Before, the row only slid the panel in and left the previous page on screen. The chevron beside the name still slides the panel in without leaving the page, and a group without an index page keeps its whole row as the drill-in button. The row of the section holding the current page is now highlighted too, so after the back arrow the parent panel still shows where you are, and clicking the name of the section's own page slides its panel back in without reloading.
25
+
3
26
  ## 2.1.1
4
27
 
5
28
  ### Patch Changes
@@ -50,6 +50,7 @@ import {
50
50
  escapeMarkdownText,
51
51
  guardBlockStart,
52
52
  renderInline,
53
+ renderInlineMdx,
53
54
  destination,
54
55
  linkParts,
55
56
  headingPrefix,
@@ -76,7 +77,7 @@ import {
76
77
  createModuleLoader,
77
78
  resolveProjectContext,
78
79
  loadConfig
79
- } from "./chunk-ehweg4fr.js";
80
+ } from "./chunk-124fvmzq.js";
80
81
  import {
81
82
  getBlumeVersion,
82
83
  BlumeError,
@@ -2072,7 +2073,7 @@ var materializeAssets = async (markdown, ctx) => {
2072
2073
  };
2073
2074
 
2074
2075
  // src/core/sources/notion.ts
2075
- var richToMarkdown = (rich = []) => {
2076
+ var richToMarkdown = (rich = [], mdx = false) => {
2076
2077
  const linked = [];
2077
2078
  for (const { annotations = {}, href, plain_text: text } of rich) {
2078
2079
  const run = {
@@ -2091,8 +2092,10 @@ var richToMarkdown = (rich = []) => {
2091
2092
  linked.push({ href: href ?? undefined, runs: [run] });
2092
2093
  }
2093
2094
  }
2094
- return renderInline(linked.flatMap(({ href, runs }) => linkParts(runs, href)));
2095
+ const parts = linked.flatMap(({ href, runs }) => linkParts(runs, href, mdx));
2096
+ return mdx ? renderInlineMdx(parts) : renderInline(parts);
2095
2097
  };
2098
+ var blockText2 = (rich, mdx) => mdx ? richToMarkdown(rich, true) : guardBlockStart(richToMarkdown(rich));
2096
2099
  var isBlockPayload = (value) => typeof value === "object";
2097
2100
  var payloadOf = (block) => {
2098
2101
  const value = block[block.type];
@@ -2151,9 +2154,9 @@ var renderVideo = (data) => {
2151
2154
  ${media}
2152
2155
  </Frame>` : media;
2153
2156
  };
2154
- var renderLeaf = (block) => {
2157
+ var renderLeaf = (block, mdx) => {
2155
2158
  const data = payloadOf(block) ?? {};
2156
- const text = guardBlockStart(richToMarkdown(blockField(block)));
2159
+ const text = blockText2(blockField(block), mdx);
2157
2160
  switch (block.type) {
2158
2161
  case "paragraph": {
2159
2162
  return text;
@@ -2199,6 +2202,7 @@ var renderLeaf = (block) => {
2199
2202
  };
2200
2203
  var notionSource = (options, ctx) => {
2201
2204
  const props = options.properties ?? {};
2205
+ const textAsMdx = options.mdx ?? false;
2202
2206
  const limit = pLimit(Math.max(1, options.concurrency ?? DEFAULT_CONCURRENCY));
2203
2207
  const downloads = pLimit(ASSET_DOWNLOAD_CONCURRENCY);
2204
2208
  const inFlight = new Map;
@@ -2238,7 +2242,7 @@ var notionSource = (options, ctx) => {
2238
2242
  };
2239
2243
  if (block.type === "callout") {
2240
2244
  const body = [
2241
- guardBlockStart(richToMarkdown(blockField(block))),
2245
+ blockText2(blockField(block), textAsMdx),
2242
2246
  await children(block)
2243
2247
  ].filter(Boolean).join(`
2244
2248
 
@@ -2269,7 +2273,7 @@ ${rendered.join(`
2269
2273
  };
2270
2274
  const renderBlocks = async (client, blocks) => {
2271
2275
  const parts = await Promise.all(blocks.map(async (block) => {
2272
- const leaf = renderLeaf(block);
2276
+ const leaf = renderLeaf(block, textAsMdx);
2273
2277
  if (leaf === null) {
2274
2278
  return renderContainer(client, block, renderBlocks);
2275
2279
  }
@@ -2965,7 +2969,7 @@ var inlineNodeParts2 = (node, options) => {
2965
2969
  }
2966
2970
  };
2967
2971
  var inlineText = (nodes, options) => guardBlockStart(renderInline(inlineParts2(nodes, options)));
2968
- var blockText2 = (node, options) => inlineText(children2(node), options);
2972
+ var blockText3 = (node, options) => inlineText(children2(node), options);
2969
2973
  var renderUpload = (node, options) => {
2970
2974
  const value = asObject(node.value);
2971
2975
  const url = value ? asString(value.url) : undefined;
@@ -3007,14 +3011,14 @@ ${sub}` : line));
3007
3011
  var renderBlock2 = (node, options) => {
3008
3012
  switch (typeOf(node)) {
3009
3013
  case "paragraph": {
3010
- return blockText2(node, options);
3014
+ return blockText3(node, options);
3011
3015
  }
3012
3016
  case "heading": {
3013
3017
  const level = Number((asString(node.tag) ?? "h1").slice(1));
3014
- return `${headingPrefix(level)}${blockText2(node, options)}`;
3018
+ return `${headingPrefix(level)}${blockText3(node, options)}`;
3015
3019
  }
3016
3020
  case "quote": {
3017
- return blockquote(blockText2(node, options));
3021
+ return blockquote(blockText3(node, options));
3018
3022
  }
3019
3023
  case "list": {
3020
3024
  return renderList2(node, options);
@@ -3350,12 +3354,12 @@ var inlineNodeParts3 = (node) => {
3350
3354
  }
3351
3355
  }
3352
3356
  };
3353
- var blockText3 = (nodes) => guardBlockStart(renderInline(inlineParts3(nodes)));
3357
+ var blockText4 = (nodes) => guardBlockStart(renderInline(inlineParts3(nodes)));
3354
3358
  var renderList3 = (node) => {
3355
3359
  const ordered = asString(node.format) === "ordered";
3356
3360
  return children3(node).map((item, index) => {
3357
3361
  const kids = children3(item);
3358
- const line = blockText3(kids.filter((kid) => typeOf2(kid) !== "list"));
3362
+ const line = blockText4(kids.filter((kid) => typeOf2(kid) !== "list"));
3359
3363
  const sub = kids.filter((kid) => typeOf2(kid) === "list").map((list) => renderList3(list)).join(`
3360
3364
  `);
3361
3365
  const body = sub ? `${line}
@@ -3375,13 +3379,13 @@ var renderImage = (node, options) => {
3375
3379
  var renderBlock4 = (node, options) => {
3376
3380
  switch (typeOf2(node)) {
3377
3381
  case "paragraph": {
3378
- return blockText3(children3(node));
3382
+ return blockText4(children3(node));
3379
3383
  }
3380
3384
  case "heading": {
3381
- return `${headingPrefix(asNumber(node.level) ?? 1)}${blockText3(children3(node))}`;
3385
+ return `${headingPrefix(asNumber(node.level) ?? 1)}${blockText4(children3(node))}`;
3382
3386
  }
3383
3387
  case "quote": {
3384
- return blockquote(blockText3(children3(node)));
3388
+ return blockquote(blockText4(children3(node)));
3385
3389
  }
3386
3390
  case "list": {
3387
3391
  return renderList3(node);
@@ -3852,5 +3856,5 @@ var scanProject = async (root, options = {}) => {
3852
3856
 
3853
3857
  export { directiveSource, validateSearchPopularIcons, validateNavTargets, contentIndexable, buildManifest, findFolderMetaFiles, isWithin, scanProject };
3854
3858
 
3855
- //# debugId=1F41F69354D6E33464756E2164756E21
3856
- //# sourceMappingURL=chunk-ncj7w596.js.map
3859
+ //# debugId=D6EC9010B970FDF164756E2164756E21
3860
+ //# sourceMappingURL=chunk-0pmb4tr4.js.map