@beforesemicolon/builder 1.8.24 → 2.0.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.
Files changed (184) hide show
  1. package/README.md +40 -915
  2. package/dist/cjs/build-modules.js +1 -1
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/esm/build-modules.js +1 -1
  5. package/dist/esm/index.js +1 -1
  6. package/dist/types/build-modules.d.ts +2 -21
  7. package/dist/types/index.d.ts +0 -1
  8. package/package.json +5 -25
  9. package/dist/cjs/.declarations.d.js +0 -1
  10. package/dist/cjs/docs/markdown-layout/index.js +0 -1
  11. package/dist/cjs/docs/markdown-layout/marked-extension.js +0 -1
  12. package/dist/cjs/docs/markdown-layout/parser.js +0 -7
  13. package/dist/cjs/docs/markdown-layout/renderer.js +0 -1
  14. package/dist/cjs/docs/markdown-layout/types.js +0 -1
  15. package/dist/cjs/docs/renderer/code.js +0 -11
  16. package/dist/cjs/docs/renderer/heading.js +0 -1
  17. package/dist/cjs/docs/renderer/index.js +0 -1
  18. package/dist/cjs/docs/renderer/link.js +0 -1
  19. package/dist/cjs/docs/run.js +0 -78
  20. package/dist/cjs/docs/templates/default.template.js +0 -17
  21. package/dist/cjs/docs/templates/fading-citrus/README.md +0 -822
  22. package/dist/cjs/docs/templates/fading-citrus/assets/facebook.svg +0 -8
  23. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/android-chrome-192x192.png +0 -0
  24. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/android-chrome-512x512.png +0 -0
  25. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/apple-touch-icon.png +0 -0
  26. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon-16x16.png +0 -0
  27. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon-32x32.png +0 -0
  28. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/favicon.ico +0 -0
  29. package/dist/cjs/docs/templates/fading-citrus/assets/favicon/site.webmanifest +0 -19
  30. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Black.otf +0 -0
  31. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BlackItalic.otf +0 -0
  32. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Bold.otf +0 -0
  33. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BoldItalic.otf +0 -0
  34. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBold.otf +0 -0
  35. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBoldItalic.otf +0 -0
  36. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLight.otf +0 -0
  37. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLightItalic.otf +0 -0
  38. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Italic.otf +0 -0
  39. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Light.otf +0 -0
  40. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-LightItalic.otf +0 -0
  41. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Medium.otf +0 -0
  42. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-MediumItalic.otf +0 -0
  43. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Regular.otf +0 -0
  44. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBold.otf +0 -0
  45. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBoldItalic.otf +0 -0
  46. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Thin.otf +0 -0
  47. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ThinItalic.otf +0 -0
  48. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/exo-2/SIL Open Font License.txt +0 -43
  49. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/Apache License.txt +0 -201
  50. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  51. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  52. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBold.ttf +0 -0
  53. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  54. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  55. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Light.ttf +0 -0
  56. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  57. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  58. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Semibold.ttf +0 -0
  59. package/dist/cjs/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-SemiboldItalic.ttf +0 -0
  60. package/dist/cjs/docs/templates/fading-citrus/assets/instagram.svg +0 -28
  61. package/dist/cjs/docs/templates/fading-citrus/assets/logo.dark.svg +0 -8
  62. package/dist/cjs/docs/templates/fading-citrus/assets/logo.light.svg +0 -8
  63. package/dist/cjs/docs/templates/fading-citrus/assets/logo.svg +0 -8
  64. package/dist/cjs/docs/templates/fading-citrus/assets/medium2.svg +0 -18
  65. package/dist/cjs/docs/templates/fading-citrus/assets/reddit.svg +0 -16
  66. package/dist/cjs/docs/templates/fading-citrus/assets/twitter.svg +0 -11
  67. package/dist/cjs/docs/templates/fading-citrus/assets/youtube.svg +0 -10
  68. package/dist/cjs/docs/templates/fading-citrus/layouts/_code-snippet.js +0 -128
  69. package/dist/cjs/docs/templates/fading-citrus/layouts/_footer.js +0 -72
  70. package/dist/cjs/docs/templates/fading-citrus/layouts/_head-meta.js +0 -235
  71. package/dist/cjs/docs/templates/fading-citrus/layouts/_header.js +0 -91
  72. package/dist/cjs/docs/templates/fading-citrus/layouts/_layout-utils.js +0 -109
  73. package/dist/cjs/docs/templates/fading-citrus/layouts/document.js +0 -100
  74. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-cta.js +0 -30
  75. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-ecosystem.js +0 -51
  76. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-features.js +0 -25
  77. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-hero.js +0 -89
  78. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-install.js +0 -116
  79. package/dist/cjs/docs/templates/fading-citrus/layouts/landing-showcase.js +0 -133
  80. package/dist/cjs/docs/templates/fading-citrus/layouts/landing.js +0 -29
  81. package/dist/cjs/docs/templates/fading-citrus/stylesheets/common.css +0 -900
  82. package/dist/cjs/docs/templates/fading-citrus/stylesheets/documentation.css +0 -562
  83. package/dist/cjs/docs/templates/fading-citrus/stylesheets/fonts.css +0 -1
  84. package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +0 -107
  85. package/dist/cjs/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +0 -107
  86. package/dist/cjs/docs/templates/fading-citrus/stylesheets/hybrid.hightlighter.css +0 -102
  87. package/dist/cjs/docs/templates/fading-citrus/stylesheets/landing.css +0 -1563
  88. package/dist/cjs/docs/templates/fading-citrus/stylesheets/normalize.css +0 -351
  89. package/dist/cjs/docs/templates/fading-citrus/template.config.js +0 -233
  90. package/dist/cjs/docs/types.js +0 -1
  91. package/dist/esm/.declarations.d.js +0 -0
  92. package/dist/esm/docs/markdown-layout/index.js +0 -1
  93. package/dist/esm/docs/markdown-layout/marked-extension.js +0 -1
  94. package/dist/esm/docs/markdown-layout/parser.js +0 -7
  95. package/dist/esm/docs/markdown-layout/renderer.js +0 -1
  96. package/dist/esm/docs/markdown-layout/types.js +0 -0
  97. package/dist/esm/docs/renderer/code.js +0 -11
  98. package/dist/esm/docs/renderer/heading.js +0 -1
  99. package/dist/esm/docs/renderer/index.js +0 -1
  100. package/dist/esm/docs/renderer/link.js +0 -1
  101. package/dist/esm/docs/run.js +0 -78
  102. package/dist/esm/docs/templates/default.template.js +0 -17
  103. package/dist/esm/docs/templates/fading-citrus/README.md +0 -822
  104. package/dist/esm/docs/templates/fading-citrus/assets/facebook.svg +0 -8
  105. package/dist/esm/docs/templates/fading-citrus/assets/favicon/android-chrome-192x192.png +0 -0
  106. package/dist/esm/docs/templates/fading-citrus/assets/favicon/android-chrome-512x512.png +0 -0
  107. package/dist/esm/docs/templates/fading-citrus/assets/favicon/apple-touch-icon.png +0 -0
  108. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon-16x16.png +0 -0
  109. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon-32x32.png +0 -0
  110. package/dist/esm/docs/templates/fading-citrus/assets/favicon/favicon.ico +0 -0
  111. package/dist/esm/docs/templates/fading-citrus/assets/favicon/site.webmanifest +0 -19
  112. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Black.otf +0 -0
  113. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BlackItalic.otf +0 -0
  114. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Bold.otf +0 -0
  115. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-BoldItalic.otf +0 -0
  116. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBold.otf +0 -0
  117. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraBoldItalic.otf +0 -0
  118. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLight.otf +0 -0
  119. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ExtraLightItalic.otf +0 -0
  120. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Italic.otf +0 -0
  121. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Light.otf +0 -0
  122. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-LightItalic.otf +0 -0
  123. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Medium.otf +0 -0
  124. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-MediumItalic.otf +0 -0
  125. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Regular.otf +0 -0
  126. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBold.otf +0 -0
  127. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-SemiBoldItalic.otf +0 -0
  128. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-Thin.otf +0 -0
  129. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/Exo2.0-ThinItalic.otf +0 -0
  130. package/dist/esm/docs/templates/fading-citrus/assets/fonts/exo-2/SIL Open Font License.txt +0 -43
  131. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/Apache License.txt +0 -201
  132. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
  133. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
  134. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBold.ttf +0 -0
  135. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf +0 -0
  136. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
  137. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Light.ttf +0 -0
  138. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-LightItalic.ttf +0 -0
  139. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
  140. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-Semibold.ttf +0 -0
  141. package/dist/esm/docs/templates/fading-citrus/assets/fonts/open-sans/OpenSans-SemiboldItalic.ttf +0 -0
  142. package/dist/esm/docs/templates/fading-citrus/assets/instagram.svg +0 -28
  143. package/dist/esm/docs/templates/fading-citrus/assets/logo.dark.svg +0 -8
  144. package/dist/esm/docs/templates/fading-citrus/assets/logo.light.svg +0 -8
  145. package/dist/esm/docs/templates/fading-citrus/assets/logo.svg +0 -8
  146. package/dist/esm/docs/templates/fading-citrus/assets/medium2.svg +0 -18
  147. package/dist/esm/docs/templates/fading-citrus/assets/reddit.svg +0 -16
  148. package/dist/esm/docs/templates/fading-citrus/assets/twitter.svg +0 -11
  149. package/dist/esm/docs/templates/fading-citrus/assets/youtube.svg +0 -10
  150. package/dist/esm/docs/templates/fading-citrus/layouts/_code-snippet.js +0 -128
  151. package/dist/esm/docs/templates/fading-citrus/layouts/_footer.js +0 -72
  152. package/dist/esm/docs/templates/fading-citrus/layouts/_head-meta.js +0 -235
  153. package/dist/esm/docs/templates/fading-citrus/layouts/_header.js +0 -91
  154. package/dist/esm/docs/templates/fading-citrus/layouts/_layout-utils.js +0 -109
  155. package/dist/esm/docs/templates/fading-citrus/layouts/document.js +0 -100
  156. package/dist/esm/docs/templates/fading-citrus/layouts/landing-cta.js +0 -30
  157. package/dist/esm/docs/templates/fading-citrus/layouts/landing-ecosystem.js +0 -51
  158. package/dist/esm/docs/templates/fading-citrus/layouts/landing-features.js +0 -25
  159. package/dist/esm/docs/templates/fading-citrus/layouts/landing-hero.js +0 -89
  160. package/dist/esm/docs/templates/fading-citrus/layouts/landing-install.js +0 -116
  161. package/dist/esm/docs/templates/fading-citrus/layouts/landing-showcase.js +0 -133
  162. package/dist/esm/docs/templates/fading-citrus/layouts/landing.js +0 -29
  163. package/dist/esm/docs/templates/fading-citrus/stylesheets/common.css +0 -900
  164. package/dist/esm/docs/templates/fading-citrus/stylesheets/documentation.css +0 -562
  165. package/dist/esm/docs/templates/fading-citrus/stylesheets/fonts.css +0 -1
  166. package/dist/esm/docs/templates/fading-citrus/stylesheets/github-dark.hightlighter.css +0 -107
  167. package/dist/esm/docs/templates/fading-citrus/stylesheets/github-light.hightlighter.css +0 -107
  168. package/dist/esm/docs/templates/fading-citrus/stylesheets/hybrid.hightlighter.css +0 -102
  169. package/dist/esm/docs/templates/fading-citrus/stylesheets/landing.css +0 -1563
  170. package/dist/esm/docs/templates/fading-citrus/stylesheets/normalize.css +0 -351
  171. package/dist/esm/docs/templates/fading-citrus/template.config.js +0 -233
  172. package/dist/esm/docs/types.js +0 -0
  173. package/dist/types/docs/markdown-layout/index.d.ts +0 -4
  174. package/dist/types/docs/markdown-layout/marked-extension.d.ts +0 -9
  175. package/dist/types/docs/markdown-layout/parser.d.ts +0 -12
  176. package/dist/types/docs/markdown-layout/renderer.d.ts +0 -3
  177. package/dist/types/docs/markdown-layout/types.d.ts +0 -36
  178. package/dist/types/docs/renderer/code.d.ts +0 -2
  179. package/dist/types/docs/renderer/heading.d.ts +0 -2
  180. package/dist/types/docs/renderer/index.d.ts +0 -3
  181. package/dist/types/docs/renderer/link.d.ts +0 -2
  182. package/dist/types/docs/run.d.ts +0 -19
  183. package/dist/types/docs/templates/default.template.d.ts +0 -3
  184. package/dist/types/docs/types.d.ts +0 -107
@@ -1,78 +0,0 @@
1
- var ie=Object.defineProperty;var c=(e,t)=>ie(e,"name",{value:t,configurable:!0});import{Marked as le}from"marked";import{cp as j,mkdir as S,readdir as ce,readFile as C,writeFile as $}from"fs/promises";import o from"path";import me from"front-matter";import ue from"isomorphic-dompurify";import{markedHighlight as pe}from"marked-highlight";import Q from"highlight.js";import fe from"./templates/default.template.js";import de from"./renderer/index.js";import{createMarkdownLayoutExtension as he}from"./markdown-layout/index.js";import ge from"clean-css";import ye from"html-minifier";import*as X from"@putout/minify";import{fileURLToPath as we,pathToFileURL as A}from"url";import p from"fs";let V,R="";const Y=new ge({inline:["none"]}),W=new Map;W.set("default",fe);let _;const Z=c((e,t)=>t===!1?!1:t===void 0?e:e===!1||e===void 0?t:{...e,...t},"mergeThemeMode"),ve=c((e,t)=>{if(!(!e&&!t))return{light:Z(e?.light,t?.light),dark:Z(e?.dark,t?.dark)}},"mergeTheme"),Se=c((e,t)=>({...e,...t,markdownLayouts:{...e.markdownLayouts,...t.markdownLayouts},headScripts:{...e.headScripts,...t.headScripts},scripts:{...e.scripts,...t.scripts},theme:ve(e.theme,t.theme),meta:{...e.meta,...t.meta},site:{...e.site,...t.site}}),"mergeTemplateConfig"),De=c((e,t)=>{if(typeof e=="function")return!0;const{match:r}=e;return r?typeof r=="string"?t.includes(r):Array.isArray(r)?r.some(a=>t.includes(a)):r instanceof RegExp?r.test(t):r(t):!0},"scriptMatches"),ee=c((e,t)=>e?Object.values(e).filter(r=>r!==!1).filter(r=>De(r,t)).map(r=>typeof r=="function"?r():r.render()):[],"renderPageScripts"),G=c((e,t)=>{const r=Object.entries(t).filter(([a])=>a.startsWith("--")).map(([a,i])=>` ${a}: ${i};`).join(`
2
- `);return r?`${e} {
3
- ${r}
4
- }`:""},"renderThemeBlock"),be=c(e=>{if(!e)return"";const t=e.light===!1,r=e.dark===!1,a=e.light===!1?void 0:e.light,i=r?void 0:e.dark,m=a||i;return m?[G(":root",m),i&&!t?`@media (prefers-color-scheme: dark) {
5
- ${G(" :root",i)}
6
- }`:"",a?G('[data-theme="light"]',a):"",i?G('[data-theme="dark"]',i):"",t&&i?`.site-logo-light { display: none; }
7
- .site-logo-dark { display: block; }`:"",r&&a?`.site-logo-light { display: block; }
8
- .site-logo-dark { display: none; }`:""].filter(Boolean).join(`
9
-
10
- `):""},"renderThemeStylesheet"),$e=c((e="")=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;"),"escapeXML"),xe=c((e="")=>e.replace(/```[\s\S]*?```/g," ").replace(/`([^`]+)`/g,"$1").replace(/!\[[^\]]*]\([^)]*\)/g," ").replace(/\[([^\]]+)]\([^)]*\)/g,"$1").replace(/^#{1,6}\s+/gm,"").replace(/^---+$/gm," ").replace(/[>*_~]/g,"").replace(/\s+/g," ").trim(),"stripMarkdown"),Pe=c(e=>e==="/index.html"?"/":e.replace(/\/index\.html$/,"/").replace(/\.html$/,"").replace(/\/+/g,"/"),"pagePathToUrlPath"),te=c((e,t)=>e?`${e.replace(/\/$/,"")}${t==="/"?"/":t}`:t,"canonicalUrl"),ke=c(async(e,t)=>p.existsSync(e)?(await S(o.dirname(t),{recursive:!0}),await j(e,t),!0):!1,"copyIfExists"),Te=c(async e=>{const t=o.resolve(e,"logo.svg");p.existsSync(t)&&await Promise.all(["logo.light.svg","logo.dark.svg"].map(async r=>{const a=o.resolve(e,r);p.existsSync(a)||await j(t,a)}))},"ensureLogoModeAssets"),Me=c(e=>{const t={sitemap:!0,robots:!0,llms:!0,llmsFull:!0,netlify:!1};return e===!1?{sitemap:!1,robots:!1,llms:!1,llmsFull:!1,netlify:!1}:e===!0||e===void 0?t:{...t,...e}},"normalizeGeneratedFilesConfig"),je=c((e,t)=>{if(!t)return"";const r=new Date().toISOString().slice(0,10);return`<?xml version="1.0" encoding="UTF-8"?>
11
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
12
- ${e.map(i=>{const m=i.urlPath==="/"?"1.0":"0.8";return` <url>
13
- <loc>${$e(te(t,i.urlPath))}</loc>
14
- <lastmod>${r}</lastmod>
15
- <changefreq>weekly</changefreq>
16
- <priority>${m}</priority>
17
- </url>`}).join(`
18
- `)}
19
- </urlset>
20
- `},"generateSitemap"),Ce=c(e=>`User-agent: *
21
- Allow: /
22
- ${e?`
23
- Sitemap: ${e.replace(/\/$/,"")}/sitemap.xml
24
- Host: ${e.replace(/\/$/,"")}
25
- `:""}
26
- `,"generateRobots"),Fe=c(e=>`# Documentation
27
-
28
- ## Page index
29
-
30
- ${e.map(t=>`- ${t.name}: ${t.urlPath} - ${t.description}`).join(`
31
- `)}
32
- `,"generateLlms"),Ge=c((e,t)=>`# Documentation for AI agents
33
-
34
- This file is generated at build time from the Markdown documentation. Use it to choose the most relevant page before reading the canonical HTML documentation.
35
-
36
- ${e.map(r=>`## ${r.title}
37
-
38
- URL: ${te(t,r.urlPath)}
39
- Source: docs/${r.sourcePath}
40
- Description: ${r.description}
41
-
42
- ${r.summary||r.description}
43
- `).join(`
44
- `)}
45
- `,"generateLlmsFull"),Le=c((e,t)=>{const r=["# Generated by @beforesemicolon/builder"];return[t.llms?"llms.txt":"",t.llmsFull?"llms-full.txt":"",t.sitemap?"sitemap.xml":"",t.robots?"robots.txt":""].filter(Boolean).forEach(i=>r.push(`/${i} /${i} 200`)),e.forEach(i=>{if(i.urlPath==="/")return;const m=i.urlPath.endsWith("/")?`${i.urlPath}index.html`:`${i.urlPath}.html`;r.push(`${i.urlPath} ${m} 200`),i.urlPath.endsWith("/")&&r.push(`${i.urlPath.replace(/\/$/,"")} ${m} 200`)}),`${[...new Set(r)].join(`
46
- `)}
47
- `},"generateNetlifyRedirects"),Ee=c(e=>`[build]
48
- command = "node build-docs.js"
49
- publish = "${e||"website"}"
50
-
51
- [[headers]]
52
- for = "/llms.txt"
53
-
54
- [headers.values]
55
- Content-Type = "text/plain; charset=utf-8"
56
- Cache-Control = "public, max-age=0, must-revalidate"
57
-
58
- [[headers]]
59
- for = "/llms-full.txt"
60
-
61
- [headers.values]
62
- Content-Type = "text/plain; charset=utf-8"
63
- Cache-Control = "public, max-age=0, must-revalidate"
64
-
65
- [[headers]]
66
- for = "/sitemap.xml"
67
-
68
- [headers.values]
69
- Content-Type = "application/xml; charset=utf-8"
70
- Cache-Control = "public, max-age=0, must-revalidate"
71
-
72
- [[headers]]
73
- for = "/robots.txt"
74
-
75
- [headers.values]
76
- Content-Type = "text/plain; charset=utf-8"
77
- Cache-Control = "public, max-age=0, must-revalidate"
78
- `,"generateNetlifyToml"),x=c(async(e,t,r,a)=>{if(await ke(e,t))return;const i=r();if(!i){a&&console.warn(a);return}await S(o.dirname(t),{recursive:!0}),await $(t,i)},"writeGeneratedFile"),Oe=c(async({docsDir:e,docsSiteDir:t,pages:r,siteUrl:a,publicDir:i,generatedFiles:m})=>{m.sitemap&&await x(o.resolve(e,"sitemap.xml"),o.resolve(t,"sitemap.xml"),()=>je(r,a),"Skipping generated sitemap.xml because buildDocs({ siteUrl }) is not set."),m.robots&&await x(o.resolve(e,"robots.txt"),o.resolve(t,"robots.txt"),()=>Ce(a)),m.llms&&await x(o.resolve(e,"llms.txt"),o.resolve(t,"llms.txt"),()=>Fe(r)),m.llmsFull&&await x(o.resolve(e,"llms-full.txt"),o.resolve(t,"llms-full.txt"),()=>Ge(r,a)),m.netlify&&(await x(o.resolve(e,"_redirects"),o.resolve(t,"_redirects"),()=>Le(r,m)),await x(o.resolve(e,"netlify.toml"),o.resolve(t,"netlify.toml"),()=>Ee(i&&o.basename(i))))},"writeGeneratedDocsFiles"),se=c((e={},t,r)=>{const a=new le(pe({langPrefix:"hljs language-",highlight(i,m){const d=Q.getLanguage(m)?m:"plaintext";return Q.highlight(i,{language:d}).value}}));return a.use({renderer:de}),a.use(he({marked:a,handlers:e.markdownLayouts,renderMarkdown:r,templateConfig:e})),e.markedOptions&&a.use(e.markedOptions),t&&a.use(t),a},"createBaseMarked"),Ae=c((e={},t,r)=>{const a=se(e,t),i=c(d=>a.parse(d),"renderMarkdown"),m=se(e,t,i);return m.use({hooks:{postprocess(d){const{layout:y="default",...P}=_.attributes,k=ee(e.headScripts,d),T=ee(e.scripts,d);d=ue.sanitize(d);const D=[...d.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([\s\S]*?)<\/a><\/h\1>/gm)].map(u=>({path:u[2],label:u[3].replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim(),level:u[1]}));return W.get(y)?.({...P,content:d,siteMap:_.siteMap,tableOfContent:D,projectMeta:V,renderMarkdown:i,headScripts:k,scripts:T,themeStylesheet:e.theme?`/stylesheets/theme.css?v=${R}`:void 0,cacheKey:R,siteUrl:r,templateConfig:e})||d}}}),m},"createMarked"),w=c(async e=>{const t=await ce(e),r=[];for(const a of t){const i=o.extname(a);/^[._]/.test(a)||(i?r.push(o.join(e,a)):/(stylesheets|assets|scripts)/.test(a)||r.push(...await w(o.join(e,a))))}return r},"traverseDirectory"),lt=c(async({srcDir:e,publicDir:t,markedOptions:r,template:a,siteUrl:i,generatedFiles:m}={})=>{R=Date.now().toString(36);try{const s=o.resolve(process.cwd(),"package.json");p.existsSync(s)&&(V=JSON.parse(await C(s,"utf-8")))}catch(s){console.warn("Failed to load project package.json metadata",s)}const d=c(()=>{try{return __dirname}catch{return o.dirname(we(import.meta.url))}},"getDirname"),y=a?o.resolve(d(),"templates",a):null,P=y?o.resolve(y,"assets"):null,k=y?o.resolve(y,"stylesheets"):null,T=y?o.resolve(y,"layouts"):null;let D={};if(y)try{let s=o.resolve(y,"template.config.js");if(p.existsSync(s)||(s=s.replace(/\.js$/,".ts")),p.existsSync(s)){const n=await import(A(s).href);D=n.default||n}}catch(s){console.error(`Failed to load template config for ${a}`,s)}const u=e??o.resolve(process.cwd(),"docs"),f=t??o.resolve(process.cwd(),"website"),re=Me(m),v=o.resolve(u,"_template"),B=o.resolve(v,"assets"),N=o.resolve(v,"stylesheets"),U=o.resolve(v,"scripts"),z=o.resolve(v,"layouts"),q=o.resolve(u,"_layouts"),F=o.resolve(u,"assets"),H=o.resolve(u,"stylesheets"),L=o.resolve(u,"scripts");try{let s=o.resolve(v,"template.config.js");if(p.existsSync(s)||(s=s.replace(/\.js$/,".ts")),p.existsSync(s)){const n=await import(A(s).href),l=n.default||n;D=Se(D,l)}}catch(s){console.error("Failed to load docs _template config",s)}const oe=Ae(D,r,i);if(await S(f,{recursive:!0}),P&&p.existsSync(P))try{await j(P,F.replace(u,f),{recursive:!0})}catch(s){console.warn(s)}if(p.existsSync(F))try{await j(F,F.replace(u,f),{recursive:!0})}catch(s){console.warn(s)}if(p.existsSync(B))try{await j(B,o.resolve(f,"assets"),{recursive:!0})}catch(s){console.warn(s)}await Te(o.resolve(f,"assets"));try{const s=new Set;if(k&&p.existsSync(k)&&(await w(k)).forEach(l=>s.add(l)),p.existsSync(H)&&(await w(H)).forEach(l=>s.add(l)),p.existsSync(N)&&(await w(N)).forEach(l=>s.add(l)),s.size){await S(o.join(f,"stylesheets"),{recursive:!0});for(const l of s){const h=await C(l,"utf-8"),g=Y.minify(h);g.errors.length&&g.errors.forEach(console.error);const M=l.startsWith(v)?l.replace(v,f):l.startsWith(u)?l.replace(u,f):o.join(f,"stylesheets",o.basename(l));await $(M,g.styles??h)}}const n=be(D.theme);if(n){const l=Y.minify(n);l.errors.length&&l.errors.forEach(console.error),await S(o.join(f,"stylesheets"),{recursive:!0}),await $(o.join(f,"stylesheets","theme.css"),l.styles??n)}}catch(s){console.error(s)}if(p.existsSync(L))try{const s=await w(L);s.length&&await S(L.replace(u,f),{recursive:!0});for(const n of s)try{const l=await C(n,"utf-8");await $(n.replace(u,f),X.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}if(p.existsSync(U))try{const s=await w(U);s.length&&await S(o.join(f,"scripts"),{recursive:!0});for(const n of s)try{const l=await C(n,"utf-8");await $(n.replace(v,f),X.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}try{const s=new Map;T&&p.existsSync(T)&&(await w(T)).forEach(n=>{/\.(j|t)s$/.test(n)&&s.set(o.basename(n).replace(/\.(j|t)s$/,""),n)}),p.existsSync(q)&&(await w(q)).forEach(n=>{/\.(j|t)s$/.test(n)&&s.set(o.basename(n).replace(/\.(j|t)s$/,""),n)}),p.existsSync(z)&&(await w(z)).forEach(n=>{/\.(j|t)s$/.test(n)&&s.set(o.basename(n).replace(/\.(j|t)s$/,""),n)});for(const[n,l]of s.entries()){const h=await import(A(l).href);W.set(n,h.default)}}catch(s){console.error("Template import failed",s)}const ae=await w(u),I=new Map,J=(await Promise.all(ae.filter(s=>s.endsWith(".md")).map(async s=>{const n=await C(s,"utf-8");return{filePath:s,...me(n)}}))).sort((s,n)=>(s.attributes.order??0)-(n.attributes.order??0)).map(({attributes:s,body:n,filePath:l})=>{const h=l.replace(u,"").replace(/\.md/,".html"),g=l.replace(u,f).replace(".md",".html"),M=g.replace(o.basename(g),""),E=o.basename(h)||"/",ne=h.replace(E,"").replace(/\/$/,"");let b=I;ne.split("/").filter(Boolean).forEach(O=>{b.has(O)||b.set(O,new Map),b=b.get(O)});const K={...s,path:h};return b.has(E)||b.set(E,K),{attributes:K,fileWebsitePath:g,fileDirWebsitePath:M,body:n,sourcePath:o.relative(u,l),siteMap:I}});for(const{attributes:s,body:n,fileDirWebsitePath:l,fileWebsitePath:h,siteMap:g}of J){_={attributes:s,siteMap:g};const M=await oe.parse(n);await S(l,{recursive:!0}),await $(h,ye.minify(M,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))}await Oe({docsDir:u,docsSiteDir:f,pages:J.map(({attributes:s,body:n,sourcePath:l})=>{const h=Pe(String(s.path)),g=xe(n);return{sourcePath:l,urlPath:h,title:String(s.title||s.name||"").trim()||"Documentation",name:String(s.name||s.title||"").trim()||"Documentation",description:String(s.description||"").trim()||g.slice(0,156)||"Documentation page.",order:Number(s.order??999),summary:g.slice(0,320)}}),siteUrl:i,publicDir:f,generatedFiles:re})},"buildDocs");export{lt as buildDocs};
@@ -1,17 +0,0 @@
1
- var o=Object.defineProperty;var a=(t,e)=>o(t,"name",{value:e,configurable:!0});var l=a(({title:t,description:e,content:i})=>`
2
- <!doctype html>
3
- <html lang="en">
4
- <head>
5
- <meta charset="UTF-8" />
6
- <meta
7
- name="viewport"
8
- content="width=device-width, initial-scale=1.0"
9
- />
10
- <meta name="description" content="${e}" />
11
- <title>${t}</title>
12
- </head>
13
- <body>
14
- ${i}
15
- </body>
16
- </html>
17
- `,"default");export{l as default};