@beforesemicolon/builder 1.8.11 → 1.8.13
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/README.md +839 -142
- package/dist/cjs/docs/run.js +14 -14
- package/dist/cjs/docs/templates/fading-citrus/README.md +770 -0
- package/dist/cjs/docs/templates/fading-citrus/assets/logo.svg +8 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/_footer.js +7 -4
- package/dist/cjs/docs/templates/fading-citrus/layouts/_header.js +4 -4
- package/dist/cjs/docs/templates/fading-citrus/layouts/document.js +1 -1
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing.js +1 -1
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/common.css +6 -4
- package/dist/cjs/docs/types.js +1 -1
- package/dist/esm/docs/run.js +13 -13
- package/dist/esm/docs/templates/fading-citrus/README.md +770 -0
- package/dist/esm/docs/templates/fading-citrus/assets/logo.svg +8 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/_footer.js +7 -4
- package/dist/esm/docs/templates/fading-citrus/layouts/_header.js +4 -4
- package/dist/esm/docs/templates/fading-citrus/layouts/document.js +1 -1
- package/dist/esm/docs/templates/fading-citrus/layouts/landing.js +1 -1
- package/dist/esm/docs/templates/fading-citrus/stylesheets/common.css +6 -4
- package/dist/types/docs/types.d.ts +3 -2
- package/package.json +1 -1
- package/dist/cjs/docs/templates/fading-citrus/layouts/_logo.js +0 -31
- package/dist/esm/docs/templates/fading-citrus/layouts/_logo.js +0 -31
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 60" role="img" aria-label="Fading Citrus">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<circle cx="30" cy="30" r="23" fill="#f97316" />
|
|
4
|
+
<path d="M30 7a23 23 0 0 1 23 23H30z" fill="#22d3ee" opacity=".9" />
|
|
5
|
+
<path d="M30 7a23 23 0 0 0 0 46 23 23 0 0 1 0-46z" fill="#fff7ed" opacity=".35" />
|
|
6
|
+
<text x="68" y="37" fill="#f8fafc" font-family="Inter, Arial, sans-serif" font-size="22" font-weight="700">Docs</text>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import logo from './_logo.js'
|
|
2
|
-
|
|
3
1
|
const social = [
|
|
4
2
|
{
|
|
5
3
|
link: 'https://medium.com/before-semicolon',
|
|
@@ -33,11 +31,15 @@ const social = [
|
|
|
33
31
|
},
|
|
34
32
|
]
|
|
35
33
|
|
|
36
|
-
export default () =>
|
|
34
|
+
export default (props = {}) => {
|
|
35
|
+
const siteName =
|
|
36
|
+
props.projectMeta?.name || props.name || props.title || 'Documentation'
|
|
37
|
+
|
|
38
|
+
return `
|
|
37
39
|
<footer class="site-footer">
|
|
38
40
|
<div class="footer-inner wrapper">
|
|
39
41
|
<div class="footer-brand">
|
|
40
|
-
${logo
|
|
42
|
+
<img class="site-logo" src="/assets/logo.svg" alt="${siteName} logo" width="100" height="30" />
|
|
41
43
|
<p>A reactive HTML templating system for building dynamic UIs with pure JavaScript. No build step. No virtual DOM.</p>
|
|
42
44
|
</div>
|
|
43
45
|
<ul class="footer-links">
|
|
@@ -70,3 +72,4 @@ export default () => `
|
|
|
70
72
|
</div>
|
|
71
73
|
</footer>
|
|
72
74
|
`
|
|
75
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import logo from './_logo.js'
|
|
2
|
-
|
|
3
1
|
export default (props = {}) => {
|
|
4
2
|
const isDocs = props.path?.startsWith('/documentation')
|
|
3
|
+
const siteName =
|
|
4
|
+
props.projectMeta?.name || props.name || props.title || 'Documentation'
|
|
5
5
|
|
|
6
6
|
return `
|
|
7
7
|
<header class="site-header">
|
|
8
8
|
<div class="header-inner wrapper">
|
|
9
9
|
<h1>
|
|
10
|
-
<a href="/" aria-label="
|
|
11
|
-
${logo
|
|
10
|
+
<a href="/" aria-label="${siteName} home">
|
|
11
|
+
<img class="site-logo" src="/assets/logo.svg" alt="${siteName} logo" width="90" height="27" />
|
|
12
12
|
</a>
|
|
13
13
|
</h1>
|
|
14
14
|
${
|
|
@@ -341,7 +341,7 @@ footer .footer-brand {
|
|
|
341
341
|
min-width: 280px;
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
footer .footer-brand
|
|
344
|
+
footer .footer-brand .site-logo {
|
|
345
345
|
margin-bottom: 16px;
|
|
346
346
|
display: block;
|
|
347
347
|
}
|
|
@@ -663,8 +663,10 @@ header.site-header .header-inner {
|
|
|
663
663
|
justify-content: space-between;
|
|
664
664
|
}
|
|
665
665
|
|
|
666
|
-
header.site-header h1 a
|
|
666
|
+
header.site-header h1 a .site-logo {
|
|
667
667
|
height: 28px;
|
|
668
|
+
width: auto;
|
|
669
|
+
display: block;
|
|
668
670
|
}
|
|
669
671
|
|
|
670
672
|
header.site-header nav a {
|
|
@@ -704,10 +706,10 @@ header.site-header nav a.docs-github-link {
|
|
|
704
706
|
gap: 40px;
|
|
705
707
|
}
|
|
706
708
|
|
|
707
|
-
.site-footer .footer-brand
|
|
709
|
+
.site-footer .footer-brand .site-logo {
|
|
708
710
|
height: 28px;
|
|
709
711
|
width: auto;
|
|
710
|
-
|
|
712
|
+
display: block;
|
|
711
713
|
}
|
|
712
714
|
|
|
713
715
|
.site-footer .footer-brand p {
|
package/dist/cjs/docs/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var i=Object.defineProperty;var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var g=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of a(t))!p.call(e,r)&&r!==o&&i(e,r,{get:()=>t[r],enumerable:!(n=s(t,r))||n.enumerable});return e};var c=e=>g(i({},"__esModule",{value:!0}),e);var m={};module.exports=c(m);
|
package/dist/esm/docs/run.js
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
var
|
|
1
|
+
var ne=Object.defineProperty;var c=(e,t)=>ne(e,"name",{value:t,configurable:!0});import{Marked as ae}from"marked";import{cp as F,mkdir as v,readdir as ie,readFile as j,writeFile as x}from"fs/promises";import o from"path";import le from"front-matter";import ce from"isomorphic-dompurify";import{markedHighlight as me}from"marked-highlight";import Q from"highlight.js";import ue from"./templates/default.template.js";import fe from"./renderer/index.js";import{createMarkdownLayoutExtension as pe}from"./markdown-layout/index.js";import de from"clean-css";import he from"html-minifier";import*as X from"@putout/minify";import{fileURLToPath as ge,pathToFileURL as A}from"url";import f from"fs";let K;const V=new de({inline:["none"]}),R=new Map;R.set("default",ue);let W;const Y=c((e,t)=>t===!1?!1:t===void 0?e:e===!1||e===void 0?t:{...e,...t},"mergeThemeMode"),ye=c((e,t)=>{if(!(!e&&!t))return{light:Y(e?.light,t?.light),dark:Y(e?.dark,t?.dark)}},"mergeTheme"),we=c((e,t)=>({...e,...t,markdownLayouts:{...e.markdownLayouts,...t.markdownLayouts},scripts:{...e.scripts,...t.scripts},theme:ye(e.theme,t.theme)}),"mergeTemplateConfig"),ve=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(n=>t.includes(n)):r instanceof RegExp?r.test(t):r(t):!0},"scriptMatches"),De=c((e,t)=>e?Object.values(e).filter(r=>r!==!1).filter(r=>ve(r,t)).map(r=>typeof r=="function"?r():r.render()):[],"renderPageScripts"),G=c((e,t)=>{const r=Object.entries(t).filter(([n])=>n.startsWith("--")).map(([n,l])=>` ${n}: ${l};`).join(`
|
|
2
2
|
`);return r?`${e} {
|
|
3
3
|
${r}
|
|
4
|
-
}`:""},"renderThemeBlock"),
|
|
5
|
-
${G(" :root",
|
|
6
|
-
}`:"",
|
|
4
|
+
}`:""},"renderThemeBlock"),Se=c(e=>{if(!e)return"";const t=e.light===!1,r=e.light===!1?void 0:e.light,n=e.dark===!1?void 0:e.dark,l=r||n;return l?[G(":root",l),n&&!t?`@media (prefers-color-scheme: dark) {
|
|
5
|
+
${G(" :root",n)}
|
|
6
|
+
}`:"",r?G('[data-theme="light"]',r):"",n?G('[data-theme="dark"]',n):""].filter(Boolean).join(`
|
|
7
7
|
|
|
8
|
-
`)},"renderThemeStylesheet"),
|
|
8
|
+
`):""},"renderThemeStylesheet"),xe=c((e="")=>String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeXML"),be=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"),$e=c(e=>e==="/index.html"?"/":e.replace(/\/index\.html$/,"/").replace(/\.html$/,"").replace(/\/+/g,"/"),"pagePathToUrlPath"),Z=c((e,t)=>e?`${e.replace(/\/$/,"")}${t==="/"?"/":t}`:t,"canonicalUrl"),Pe=c(async(e,t)=>f.existsSync(e)?(await v(o.dirname(t),{recursive:!0}),await F(e,t),!0):!1,"copyIfExists"),Te=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"),ke=c((e,t)=>{if(!t)return"";const r=new Date().toISOString().slice(0,10);return`<?xml version="1.0" encoding="UTF-8"?>
|
|
9
9
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
10
10
|
${e.map(l=>{const m=l.urlPath==="/"?"1.0":"0.8";return` <url>
|
|
11
|
-
<loc>${
|
|
11
|
+
<loc>${xe(Z(t,l.urlPath))}</loc>
|
|
12
12
|
<lastmod>${r}</lastmod>
|
|
13
13
|
<changefreq>weekly</changefreq>
|
|
14
14
|
<priority>${m}</priority>
|
|
15
15
|
</url>`}).join(`
|
|
16
16
|
`)}
|
|
17
17
|
</urlset>
|
|
18
|
-
`},"generateSitemap"),
|
|
18
|
+
`},"generateSitemap"),Me=c(e=>`User-agent: *
|
|
19
19
|
Allow: /
|
|
20
20
|
${e?`
|
|
21
21
|
Sitemap: ${e.replace(/\/$/,"")}/sitemap.xml
|
|
22
22
|
Host: ${e.replace(/\/$/,"")}
|
|
23
23
|
`:""}
|
|
24
|
-
`,"generateRobots"),
|
|
24
|
+
`,"generateRobots"),je=c(e=>`# Documentation
|
|
25
25
|
|
|
26
26
|
## Page index
|
|
27
27
|
|
|
28
28
|
${e.map(t=>`- ${t.name}: ${t.urlPath} - ${t.description}`).join(`
|
|
29
29
|
`)}
|
|
30
|
-
`,"generateLlms"),
|
|
30
|
+
`,"generateLlms"),Ce=c((e,t)=>`# Documentation for AI agents
|
|
31
31
|
|
|
32
32
|
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.
|
|
33
33
|
|
|
34
34
|
${e.map(r=>`## ${r.title}
|
|
35
35
|
|
|
36
|
-
URL: ${
|
|
36
|
+
URL: ${Z(t,r.urlPath)}
|
|
37
37
|
Source: docs/${r.sourcePath}
|
|
38
38
|
Description: ${r.description}
|
|
39
39
|
|
|
40
40
|
${r.summary||r.description}
|
|
41
41
|
`).join(`
|
|
42
42
|
`)}
|
|
43
|
-
`,"generateLlmsFull"),
|
|
43
|
+
`,"generateLlmsFull"),Fe=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(l=>r.push(`/${l} /${l} 200`)),e.forEach(l=>{if(l.urlPath==="/")return;const m=l.urlPath.endsWith("/")?`${l.urlPath}index.html`:`${l.urlPath}.html`;r.push(`${l.urlPath} ${m} 200`),l.urlPath.endsWith("/")&&r.push(`${l.urlPath.replace(/\/$/,"")} ${m} 200`)}),`${[...new Set(r)].join(`
|
|
44
44
|
`)}
|
|
45
|
-
`},"generateNetlifyRedirects"),
|
|
45
|
+
`},"generateNetlifyRedirects"),Ge=c(e=>`[build]
|
|
46
46
|
command = "node build-docs.js"
|
|
47
47
|
publish = "${e||"website"}"
|
|
48
48
|
|
|
@@ -73,4 +73,4 @@ for = "/robots.txt"
|
|
|
73
73
|
[headers.values]
|
|
74
74
|
Content-Type = "text/plain; charset=utf-8"
|
|
75
75
|
Cache-Control = "public, max-age=0, must-revalidate"
|
|
76
|
-
`,"generateNetlifyToml"),
|
|
76
|
+
`,"generateNetlifyToml"),b=c(async(e,t,r,n)=>{if(await Pe(e,t))return;const l=r();if(!l){n&&console.warn(n);return}await v(o.dirname(t),{recursive:!0}),await x(t,l)},"writeGeneratedFile"),Ee=c(async({docsDir:e,docsSiteDir:t,pages:r,siteUrl:n,publicDir:l,generatedFiles:m})=>{m.sitemap&&await b(o.resolve(e,"sitemap.xml"),o.resolve(t,"sitemap.xml"),()=>ke(r,n),"Skipping generated sitemap.xml because buildDocs({ siteUrl }) is not set."),m.robots&&await b(o.resolve(e,"robots.txt"),o.resolve(t,"robots.txt"),()=>Me(n)),m.llms&&await b(o.resolve(e,"llms.txt"),o.resolve(t,"llms.txt"),()=>je(r)),m.llmsFull&&await b(o.resolve(e,"llms-full.txt"),o.resolve(t,"llms-full.txt"),()=>Ce(r,n)),m.netlify&&(await b(o.resolve(e,"_redirects"),o.resolve(t,"_redirects"),()=>Fe(r,m)),await b(o.resolve(e,"netlify.toml"),o.resolve(t,"netlify.toml"),()=>Ge(l&&o.basename(l))))},"writeGeneratedDocsFiles"),ee=c((e={},t,r)=>{const n=new ae(me({langPrefix:"hljs language-",highlight(l,m){const $=Q.getLanguage(m)?m:"plaintext";return Q.highlight(l,{language:$}).value}}));return n.use({renderer:fe}),n.use(pe({marked:n,handlers:e.markdownLayouts,renderMarkdown:r})),e.markedOptions&&n.use(e.markedOptions),t&&n.use(t),n},"createBaseMarked"),Le=c((e={},t)=>{const r=ee(e,t),n=c(m=>r.parse(m),"renderMarkdown"),l=ee(e,t,n);return l.use({hooks:{postprocess(m){const{layout:$="default",...g}=W.attributes,P=De(e.scripts,m);m=ce.sanitize(m);const T=[...m.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([^<]+)<\/a>/gm)].map(D=>({path:D[2],label:D[3],level:D[1]}));return R.get($)?.({...g,content:m,siteMap:W.siteMap,tableOfContent:T,projectMeta:K,renderMarkdown:n,scripts:P,themeStylesheet:e.theme?"/stylesheets/theme.css":void 0})||m}}}),l},"createMarked"),y=c(async e=>{const t=await ie(e),r=[];for(const n of t){const l=o.extname(n);/^[._]/.test(n)||(l?r.push(o.join(e,n)):/(stylesheets|assets|scripts)/.test(n)||r.push(...await y(o.join(e,n))))}return r},"traverseDirectory"),at=c(async({srcDir:e,publicDir:t,markedOptions:r,template:n,siteUrl:l,generatedFiles:m}={})=>{try{const s=o.resolve(process.cwd(),"package.json");f.existsSync(s)&&(K=JSON.parse(await j(s,"utf-8")))}catch(s){console.warn("Failed to load project package.json metadata",s)}const $=c(()=>{try{return __dirname}catch{return o.dirname(ge(import.meta.url))}},"getDirname"),g=n?o.resolve($(),"templates",n):null,P=g?o.resolve(g,"assets"):null,T=g?o.resolve(g,"stylesheets"):null,D=g?o.resolve(g,"layouts"):null;let k={};if(g)try{let s=o.resolve(g,"template.config.js");if(f.existsSync(s)||(s=s.replace(/\.js$/,".ts")),f.existsSync(s)){const a=await import(A(s).href);k=a.default||a}}catch(s){console.error(`Failed to load template config for ${n}`,s)}const p=e??o.resolve(process.cwd(),"docs"),u=t??o.resolve(process.cwd(),"website"),te=Te(m),w=o.resolve(p,"_template"),_=o.resolve(w,"assets"),B=o.resolve(w,"stylesheets"),N=o.resolve(w,"scripts"),U=o.resolve(w,"layouts"),z=o.resolve(p,"_layouts"),C=o.resolve(p,"assets"),q=o.resolve(p,"stylesheets"),E=o.resolve(p,"scripts");try{let s=o.resolve(w,"template.config.js");if(f.existsSync(s)||(s=s.replace(/\.js$/,".ts")),f.existsSync(s)){const a=await import(A(s).href),i=a.default||a;k=we(k,i)}}catch(s){console.error("Failed to load docs _template config",s)}const se=Le(k,r);if(await v(u,{recursive:!0}),P&&f.existsSync(P))try{await F(P,C.replace(p,u),{recursive:!0})}catch(s){console.warn(s)}if(f.existsSync(C))try{await F(C,C.replace(p,u),{recursive:!0})}catch(s){console.warn(s)}if(f.existsSync(_))try{await F(_,o.resolve(u,"assets"),{recursive:!0})}catch(s){console.warn(s)}try{const s=new Set;if(T&&f.existsSync(T)&&(await y(T)).forEach(i=>s.add(i)),f.existsSync(q)&&(await y(q)).forEach(i=>s.add(i)),f.existsSync(B)&&(await y(B)).forEach(i=>s.add(i)),s.size){await v(o.join(u,"stylesheets"),{recursive:!0});for(const i of s){const d=await j(i,"utf-8"),h=V.minify(d);h.errors.length&&h.errors.forEach(console.error);const M=i.startsWith(w)?i.replace(w,u):i.startsWith(p)?i.replace(p,u):o.join(u,"stylesheets",o.basename(i));await x(M,h.styles??d)}}const a=Se(k.theme);if(a){const i=V.minify(a);i.errors.length&&i.errors.forEach(console.error),await v(o.join(u,"stylesheets"),{recursive:!0}),await x(o.join(u,"stylesheets","theme.css"),i.styles??a)}}catch(s){console.error(s)}if(f.existsSync(E))try{const s=await y(E);s.length&&await v(E.replace(p,u),{recursive:!0});for(const a of s)try{const i=await j(a,"utf-8");await x(a.replace(p,u),X.minify(i))}catch(i){console.error(i)}}catch(s){console.warn(s)}if(f.existsSync(N))try{const s=await y(N);s.length&&await v(o.join(u,"scripts"),{recursive:!0});for(const a of s)try{const i=await j(a,"utf-8");await x(a.replace(w,u),X.minify(i))}catch(i){console.error(i)}}catch(s){console.warn(s)}try{const s=new Map;D&&f.existsSync(D)&&(await y(D)).forEach(a=>{/\.(j|t)s$/.test(a)&&s.set(o.basename(a).replace(/\.(j|t)s$/,""),a)}),f.existsSync(z)&&(await y(z)).forEach(a=>{/\.(j|t)s$/.test(a)&&s.set(o.basename(a).replace(/\.(j|t)s$/,""),a)}),f.existsSync(U)&&(await y(U)).forEach(a=>{/\.(j|t)s$/.test(a)&&s.set(o.basename(a).replace(/\.(j|t)s$/,""),a)});for(const[a,i]of s.entries()){const d=await import(A(i).href);R.set(a,d.default)}}catch(s){console.error("Template import failed",s)}const re=await y(p),H=new Map,I=(await Promise.all(re.filter(s=>s.endsWith(".md")).map(async s=>{const a=await j(s,"utf-8");return{filePath:s,...le(a)}}))).sort((s,a)=>(s.attributes.order??0)-(a.attributes.order??0)).map(({attributes:s,body:a,filePath:i})=>{const d=i.replace(p,"").replace(/\.md/,".html"),h=i.replace(p,u).replace(".md",".html"),M=h.replace(o.basename(h),""),L=o.basename(d)||"/",oe=d.replace(L,"").replace(/\/$/,"");let S=H;oe.split("/").filter(Boolean).forEach(O=>{S.has(O)||S.set(O,new Map),S=S.get(O)});const J={...s,path:d};return S.has(L)||S.set(L,J),{attributes:J,fileWebsitePath:h,fileDirWebsitePath:M,body:a,sourcePath:o.relative(p,i),siteMap:H}});for(const{attributes:s,body:a,fileDirWebsitePath:i,fileWebsitePath:d,siteMap:h}of I){W={attributes:s,siteMap:h};const M=await se.parse(a);await v(i,{recursive:!0}),await x(d,he.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 Ee({docsDir:p,docsSiteDir:u,pages:I.map(({attributes:s,body:a,sourcePath:i})=>{const d=$e(String(s.path)),h=be(a);return{sourcePath:i,urlPath:d,title:String(s.title||s.name||"").trim()||"Documentation",name:String(s.name||s.title||"").trim()||"Documentation",description:String(s.description||"").trim()||h.slice(0,156)||"Documentation page.",order:Number(s.order??999),summary:h.slice(0,320)}}),siteUrl:l,publicDir:u,generatedFiles:te})},"buildDocs");export{at as buildDocs};
|