docmedown 0.9.1 → 0.9.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.
- package/README.md +5 -2
- package/dist/cli.js +128 -128
- package/dist/docmedown.cjs +4 -4
- package/dist/docmedown.iife.js +4 -4
- package/dist/docmedown.mjs +9 -4
- package/dist/docmedown.web.js +4 -4
- package/package.json +2 -2
package/dist/docmedown.cjs
CHANGED
|
@@ -95,16 +95,16 @@ ${o}
|
|
|
95
95
|
`)}function Ff(e){let t=Mf(e),n=e=>e.replace(/\|/g,`\\|`).replace(/\r?\n/g,`<br>`).trim(),r=e=>`| ${Nf(e,t).map(n).join(` | `)} |`,i=Array.from({length:t},(t,n)=>{let r=e.aligns[n];return r===`center`?`:---:`:r===`right`?`---:`:r===`left`?`:---`:`---`});return[r(e.headers),`| ${i.join(` | `)} |`,...e.rows.map(r)].join(`
|
|
96
96
|
`)}function If(e){let t=Mf(e),n=t=>e.aligns[t]?` style="text-align: ${e.aligns[t]}"`:``,r=(e,r)=>` <tr>\n${Nf(r,t).map((t,r)=>` <${e}${n(r)}>${Gd(t)}</${e}>`).join(`
|
|
97
97
|
`)}\n </tr>`;return`<table>\n${e.headers.length?` <thead>\n${r(`th`,e.headers)}\n </thead>\n`:``}${` <tbody>\n${e.rows.map(e=>r(`td`,e)).join(`
|
|
98
|
-
`)}\n </tbody>`}\n</table>`}function Lf(e,t){return t===`csv`?Pf(e):t===`html`?If(e):Ff(e)}function Rf(e){let t=e=>(e.textContent??``).replace(/\s+/g,` `).trim(),n=e=>{let t=e.getAttribute(`data-align`);return t===`left`||t===`center`||t===`right`?t:null},r=e.querySelector(`thead tr`),i=r?Array.from(r.children).map(t):[],a=r?Array.from(r.children).map(n):Array.from(e.querySelector(`tbody tr`)?.children??[]).map(n);return{headers:i,rows:Array.from(e.querySelectorAll(`tbody tr`)).map(e=>Array.from(e.children).map(t)),aligns:a}}Wd.default.languages.svelte={script:{pattern:/(<script\b[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,greedy:!0,inside:Wd.default.languages.javascript},style:{pattern:/(<style\b[^>]*>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,greedy:!0,inside:Wd.default.languages.css},comment:/<!--[\s\S]*?-->/,"svelte-directive":{pattern:/<\/?svelte:[\w-]+(?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?\/?>(?=\s|$)/i,greedy:!0,inside:Wd.default.languages.markup},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s+(?:[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?))*\s*\/?>/,greedy:!0,inside:Wd.default.languages.markup},interpolation:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,greedy:!0,inside:Wd.default.languages.javascript}};function zf(e){return`<div class="dmd-diagram-host" data-dmd-diagram="${uf(e)}"></div>`}var Bf={js:`javascript`,ts:`typescript`,py:`python`,sh:`bash`,shell:`bash`,zsh:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,golang:`go`,kt:`kotlin`,rb:`ruby`,cs:`csharp`,"c++":`cpp`,"c#":`csharp`,gql:`graphql`},Vf={ts:`#3178c6`,tsx:`#3178c6`,js:`#f7df1e`,jsx:`#f7df1e`,mjs:`#f7df1e`,cjs:`#f7df1e`,css:`#a855f7`,scss:`#a855f7`,less:`#a855f7`,html:`#f97316`,htm:`#f97316`,json:`#eab308`,jsonc:`#eab308`,yaml:`#ef4444`,yml:`#ef4444`,md:`#94a3b8`,markdown:`#94a3b8`,py:`#3b82f6`,sh:`#22c55e`,bash:`#22c55e`,zsh:`#22c55e`,rs:`#f97316`,go:`#38bdf8`,svelte:`#ff3e00`,vue:`#42b883`,svg:`#a855f7`,xml:`#f97316`,sql:`#a78bfa`,graphql:`#a855f7`,gql:`#a855f7`,dockerfile:`#38bdf8`,txt:`#64748b`,toml:`#94a3b8`,ini:`#94a3b8`},Hf={typescript:Vf.ts,javascript:Vf.js,jsx:Vf.jsx,tsx:Vf.tsx,python:Vf.py,bash:Vf.sh,css:Vf.css,scss:Vf.scss,json:Vf.json,jsonc:Vf.json,yaml:Vf.yaml,markdown:Vf.md,html:Vf.html,sql:Vf.sql,svelte:Vf.svelte,go:Vf.go,rust:Vf.rs,graphql:Vf.graphql,xml:Vf.xml,toml:Vf.toml};function Uf(e){let t=e.trim().toLowerCase();return Bf[t]||t}function Wf(e,t,n){let r=Uf(e);Wd.default.languages[r]=t,n&&(Hf[r]=n,Vf[r]=n)}function Gf(e,t=``){let n=Uf(t);if(n===`mermaid`)return zf(e);if(!n||n===`text`||n===`plain`||n===`txt`)return Gd(e);let r=Wd.default.languages[n];return r?Wd.default.highlight(e,r,n):Gd(e)}var Kf=`<svg class="dmd-code-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;function qf(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);if(n===-1)return`<span class="dmd-code-filename" style="color:${Vf[t.includes(`.`)?t.split(`.`).pop().toLowerCase():``]||`#94a3b8`}">${Kf}${Gd(t)}</span>`;let r=t.slice(0,n+1),i=t.slice(n+1),a=Vf[i.includes(`.`)?i.split(`.`).pop().toLowerCase():``]||`#94a3b8`;return`<span class="dmd-code-path">${Gd(r)}</span><span class="dmd-code-filename" style="color:${a}">${Kf}${Gd(i)}</span>`}var Jf=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,Yf=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><line x1="12" y1="12" x2="18" y2="12" stroke-width="2"/><line x1="12" y1="16" x2="16" y2="16" stroke-width="2"/></svg>`,Xf=`<svg class="check-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`;function Zf(e,t=``){let n=Uf(t.trim().split(/\s+/)[0]||`text`)||`text`,r=``,i=t.match(/title=["']([^"']+)["']/);if(i&&(r=i[1]),n.toLowerCase()===`mermaid`)return zf(e);if(n===`csv`||n===`tsv`)return jf(e,t,n,e=>Bd.parseInline(e));
|
|
98
|
+
`)}\n </tbody>`}\n</table>`}function Lf(e,t){return t===`csv`?Pf(e):t===`html`?If(e):Ff(e)}function Rf(e){let t=e=>(e.textContent??``).replace(/\s+/g,` `).trim(),n=e=>{let t=e.getAttribute(`data-align`);return t===`left`||t===`center`||t===`right`?t:null},r=e.querySelector(`thead tr`),i=r?Array.from(r.children).map(t):[],a=r?Array.from(r.children).map(n):Array.from(e.querySelector(`tbody tr`)?.children??[]).map(n);return{headers:i,rows:Array.from(e.querySelectorAll(`tbody tr`)).map(e=>Array.from(e.children).map(t)),aligns:a}}Wd.default.languages.svelte={script:{pattern:/(<script\b[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,greedy:!0,inside:Wd.default.languages.javascript},style:{pattern:/(<style\b[^>]*>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,greedy:!0,inside:Wd.default.languages.css},comment:/<!--[\s\S]*?-->/,"svelte-directive":{pattern:/<\/?svelte:[\w-]+(?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?\/?>(?=\s|$)/i,greedy:!0,inside:Wd.default.languages.markup},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s+(?:[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?))*\s*\/?>/,greedy:!0,inside:Wd.default.languages.markup},interpolation:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,greedy:!0,inside:Wd.default.languages.javascript}};function zf(e){return`<div class="dmd-diagram-host" data-dmd-diagram="${uf(e)}"></div>`}var Bf={js:`javascript`,ts:`typescript`,py:`python`,sh:`bash`,shell:`bash`,zsh:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,golang:`go`,kt:`kotlin`,rb:`ruby`,cs:`csharp`,"c++":`cpp`,"c#":`csharp`,gql:`graphql`},Vf={ts:`#3178c6`,tsx:`#3178c6`,js:`#f7df1e`,jsx:`#f7df1e`,mjs:`#f7df1e`,cjs:`#f7df1e`,css:`#a855f7`,scss:`#a855f7`,less:`#a855f7`,html:`#f97316`,htm:`#f97316`,json:`#eab308`,jsonc:`#eab308`,yaml:`#ef4444`,yml:`#ef4444`,md:`#94a3b8`,markdown:`#94a3b8`,py:`#3b82f6`,sh:`#22c55e`,bash:`#22c55e`,zsh:`#22c55e`,rs:`#f97316`,go:`#38bdf8`,svelte:`#ff3e00`,vue:`#42b883`,svg:`#a855f7`,xml:`#f97316`,sql:`#a78bfa`,graphql:`#a855f7`,gql:`#a855f7`,dockerfile:`#38bdf8`,txt:`#64748b`,toml:`#94a3b8`,ini:`#94a3b8`},Hf={typescript:Vf.ts,javascript:Vf.js,jsx:Vf.jsx,tsx:Vf.tsx,python:Vf.py,bash:Vf.sh,css:Vf.css,scss:Vf.scss,json:Vf.json,jsonc:Vf.json,yaml:Vf.yaml,markdown:Vf.md,html:Vf.html,sql:Vf.sql,svelte:Vf.svelte,go:Vf.go,rust:Vf.rs,graphql:Vf.graphql,xml:Vf.xml,toml:Vf.toml};function Uf(e){let t=e.trim().toLowerCase();return Bf[t]||t}function Wf(e,t,n){let r=Uf(e);Wd.default.languages[r]=t,n&&(Hf[r]=n,Vf[r]=n)}function Gf(e,t=``){let n=Uf(t);if(n===`mermaid`)return zf(e);if(!n||n===`text`||n===`plain`||n===`txt`)return Gd(e);let r=Wd.default.languages[n];return r?Wd.default.highlight(e,r,n):Gd(e)}var Kf=`<svg class="dmd-code-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;function qf(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);if(n===-1)return`<span class="dmd-code-filename" style="color:${Vf[t.includes(`.`)?t.split(`.`).pop().toLowerCase():``]||`#94a3b8`}">${Kf}${Gd(t)}</span>`;let r=t.slice(0,n+1),i=t.slice(n+1),a=Vf[i.includes(`.`)?i.split(`.`).pop().toLowerCase():``]||`#94a3b8`;return`<span class="dmd-code-path">${Gd(r)}</span><span class="dmd-code-filename" style="color:${a}">${Kf}${Gd(i)}</span>`}var Jf=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,Yf=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><line x1="12" y1="12" x2="18" y2="12" stroke-width="2"/><line x1="12" y1="16" x2="16" y2="16" stroke-width="2"/></svg>`,Xf=`<svg class="check-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`;function Zf(e,t=``){let n=Uf(t.trim().split(/\s+/)[0]||`text`)||`text`,r=``,i=t.match(/title=["']([^"']+)["']/);if(i&&(r=i[1]),n.toLowerCase()===`mermaid`)return zf(e);if(n===`csv`||n===`tsv`)return jf(e,t,n,e=>Bd.parseInline(e));function a(e,t,n){let r=5381,i=`${t}:${n}:${e}`;for(let e=0;e<i.length;e++)r=(r<<5)+r^i.charCodeAt(e);return`code-${(r>>>0).toString(36)}`}let o=Gf(e,n),s=a(e,n,t),c=Qf(t),l=c.size>0,u=Hf[n];return`
|
|
99
99
|
<div class="dmd-code-block-wrapper" data-lang="${n}">
|
|
100
100
|
<div class="dmd-code-header">
|
|
101
|
-
<div class="dmd-code-header-left">${r?`<span class="dmd-code-title">${qf(r)}</span>`:`<span class="dmd-code-lang"${
|
|
101
|
+
<div class="dmd-code-header-left">${r?`<span class="dmd-code-title">${qf(r)}</span>`:`<span class="dmd-code-lang"${u?` style="--dmd-lang-color:${u}"`:``}>${n.toUpperCase()}</span>`}</div>
|
|
102
102
|
<div class="dmd-code-header-right">
|
|
103
|
-
${
|
|
103
|
+
${l?`<button type="button" class="dmd-copy-btn dmd-copy-selected-btn" data-dmd-copy-selected aria-label="Copy highlighted lines" title="Copy highlighted lines">${Yf}${Xf}</button>`:``}
|
|
104
104
|
<button type="button" class="dmd-copy-btn" data-dmd-copy aria-label="Copy code" title="Copy code">${Jf}${Xf}</button>
|
|
105
105
|
</div>
|
|
106
106
|
</div>
|
|
107
|
-
<pre class="language-${n}" tabindex="0"><code id="${
|
|
107
|
+
<pre class="language-${n}" tabindex="0"><code id="${s}" class="language-${n}">${$f(o,c)}</code></pre>
|
|
108
108
|
</div>
|
|
109
109
|
`}function Qf(e){let t=new Set,n=/\{([\d\s,-]+)\}/.exec(e);if(!n)return t;for(let e of n[1].split(`,`)){let[n,r]=e.split(`-`).map(e=>Number.parseInt(e.trim(),10));if(Number.isNaN(n))continue;let i=r===void 0||Number.isNaN(r)?n:r;for(let e=Math.max(1,n);e<=i;e++)t.add(e)}return t}function $f(e,t=new Set){let n=[],r=``,i=!1,a=1,o=0,s=!1,c=[],l=()=>{o=n.length,i=!1,r=``,s=c.length>0,n.push(`<span class="dmd-code-line${t.has(a)?` dmd-code-line-active`:``}">`);for(let e of c)n.push(e)},u=()=>{s||(r=ep(r));for(let e=0;e<c.length;e++)r+=`</span>`;n.push(r,`</span>`),a++};l();let d=0;for(;d<e.length;)if(e[d]===`<`){let t=e.indexOf(`>`,d);if(t===-1){r+=e.slice(d),i=!0;break}let n=e.slice(d,t+1);d=t+1,r+=n,n.startsWith(`</`)?c.pop():c.push(n)}else{let t=e.indexOf(`<`,d);t===-1&&(t=e.length);let n=e.slice(d,t).split(`
|
|
110
110
|
`);d=t;for(let e=0;e<n.length;e++)e>0&&(u(),l()),n[e]!==``&&(r+=n[e],i=!0)}return i||c.length>0?u():n.length=o,n.join(``)}function ep(e){let t=0,n=``;for(;t<e.length;)if(e[t]===` `)n+=`<span class="dmd-ws-space"> </span>`,t++;else if(e[t]===` `)n+=`<span class="dmd-ws-tab"> </span>`,t++;else break;return t>0?n+e.slice(t):e}var tp=new Set([`badge`,`button`,`kbd`]),np=tp,rp=/<([A-Z][A-Za-z0-9]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)(\/?)>/g,ip=/<(\/?)([A-Z][A-Za-z0-9]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)(\/?)>/g,ap=/<\/([A-Z][A-Za-z0-9]*)\s*>/g;function op(e,t){let n=t.flags.includes(`g`)?t.flags:`${t.flags}g`,r=new RegExp(t.source,n),i=[],a=r.exec(e);for(;a!==null;)i.push([a.index,a.index+a[0].length]),a=r.exec(e);return i}function sp(e,t){for(let n=0;n<t.length;n++)if(e>=t[n][0]&&e<t[n][1])return!0;return!1}function cp(e){return[...op(e,/(`{3,})[\s\S]*?\1/g),...op(e,/(~{3,})[\s\S]*?\1/g),...op(e,/(`+)[\s\S]*?\1/g)]}function lp(e,t,n){rp.lastIndex=t;let r;for(;;){if(r=rp.exec(e),r===null)return null;if(!sp(r.index,n)&&!tp.has(r[1].toLowerCase()))return{tag:r[1],full:r[0],start:r.index,end:r.index+r[0].length,selfClosing:r[3]===`/`}}}function up(e,t,n){let r=1;ip.lastIndex=t.end;let i;for(;i=ip.exec(e),i!==null;)if(!sp(i.index,n)&&i[2]===t.tag&&i[4]!==`/`){if(i[1]===`/`){if(--r,r===0)return{full:i[0],start:i.index,end:i.index+i[0].length}}else r+=1}for(ap.lastIndex=t.end;;){if(i=ap.exec(e),i===null)return null;if(!sp(i.index,n)&&i[1].toLowerCase()===t.tag.toLowerCase())return{full:i[0],start:i.index,end:i.index+i[0].length}}}function dp(e){let t=e.split(`
|
package/dist/docmedown.iife.js
CHANGED
|
@@ -3685,16 +3685,16 @@ Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on l
|
|
|
3685
3685
|
`)}function lPt(e){let t=sPt(e),n=e=>e.replace(/\|/g,`\\|`).replace(/\r?\n/g,`<br>`).trim(),r=e=>`| ${g7(e,t).map(n).join(` | `)} |`,i=Array.from({length:t},(t,n)=>{let r=e.aligns[n];return r===`center`?`:---:`:r===`right`?`---:`:r===`left`?`:---`:`---`});return[r(e.headers),`| ${i.join(` | `)} |`,...e.rows.map(r)].join(`
|
|
3686
3686
|
`)}function uPt(e){let t=sPt(e),n=t=>e.aligns[t]?` style="text-align: ${e.aligns[t]}"`:``,r=(e,r)=>` <tr>\n${g7(r,t).map((t,r)=>` <${e}${n(r)}>${Da(t)}</${e}>`).join(`
|
|
3687
3687
|
`)}\n </tr>`;return`<table>\n${e.headers.length?` <thead>\n${r(`th`,e.headers)}\n </thead>\n`:``}${` <tbody>\n${e.rows.map(e=>r(`td`,e)).join(`
|
|
3688
|
-
`)}\n </tbody>`}\n</table>`}function dPt(e,t){return t===`csv`?cPt(e):t===`html`?uPt(e):lPt(e)}function fPt(e){let t=e=>(e.textContent??``).replace(/\s+/g,` `).trim(),n=e=>{let t=e.getAttribute(`data-align`);return t===`left`||t===`center`||t===`right`?t:null},r=e.querySelector(`thead tr`),i=r?Array.from(r.children).map(t):[],a=r?Array.from(r.children).map(n):Array.from(e.querySelector(`tbody tr`)?.children??[]).map(n);return{headers:i,rows:Array.from(e.querySelectorAll(`tbody tr`)).map(e=>Array.from(e.children).map(t)),aligns:a}}Ea.default.languages.svelte={script:{pattern:/(<script\b[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,greedy:!0,inside:Ea.default.languages.javascript},style:{pattern:/(<style\b[^>]*>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,greedy:!0,inside:Ea.default.languages.css},comment:/<!--[\s\S]*?-->/,"svelte-directive":{pattern:/<\/?svelte:[\w-]+(?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?\/?>(?=\s|$)/i,greedy:!0,inside:Ea.default.languages.markup},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s+(?:[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?))*\s*\/?>/,greedy:!0,inside:Ea.default.languages.markup},interpolation:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,greedy:!0,inside:Ea.default.languages.javascript}};function pPt(e){return`<div class="dmd-diagram-host" data-dmd-diagram="${BNt(e)}"></div>`}var mPt={js:`javascript`,ts:`typescript`,py:`python`,sh:`bash`,shell:`bash`,zsh:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,golang:`go`,kt:`kotlin`,rb:`ruby`,cs:`csharp`,"c++":`cpp`,"c#":`csharp`,gql:`graphql`},_7={ts:`#3178c6`,tsx:`#3178c6`,js:`#f7df1e`,jsx:`#f7df1e`,mjs:`#f7df1e`,cjs:`#f7df1e`,css:`#a855f7`,scss:`#a855f7`,less:`#a855f7`,html:`#f97316`,htm:`#f97316`,json:`#eab308`,jsonc:`#eab308`,yaml:`#ef4444`,yml:`#ef4444`,md:`#94a3b8`,markdown:`#94a3b8`,py:`#3b82f6`,sh:`#22c55e`,bash:`#22c55e`,zsh:`#22c55e`,rs:`#f97316`,go:`#38bdf8`,svelte:`#ff3e00`,vue:`#42b883`,svg:`#a855f7`,xml:`#f97316`,sql:`#a78bfa`,graphql:`#a855f7`,gql:`#a855f7`,dockerfile:`#38bdf8`,txt:`#64748b`,toml:`#94a3b8`,ini:`#94a3b8`},hPt={typescript:_7.ts,javascript:_7.js,jsx:_7.jsx,tsx:_7.tsx,python:_7.py,bash:_7.sh,css:_7.css,scss:_7.scss,json:_7.json,jsonc:_7.json,yaml:_7.yaml,markdown:_7.md,html:_7.html,sql:_7.sql,svelte:_7.svelte,go:_7.go,rust:_7.rs,graphql:_7.graphql,xml:_7.xml,toml:_7.toml};function gPt(e){let t=e.trim().toLowerCase();return mPt[t]||t}function _Pt(e,t,n){let r=gPt(e);Ea.default.languages[r]=t,n&&(hPt[r]=n,_7[r]=n)}function vPt(e,t=``){let n=gPt(t);if(n===`mermaid`)return pPt(e);if(!n||n===`text`||n===`plain`||n===`txt`)return Da(e);let r=Ea.default.languages[n];return r?Ea.default.highlight(e,r,n):Da(e)}var yPt=`<svg class="dmd-code-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;function bPt(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);if(n===-1)return`<span class="dmd-code-filename" style="color:${_7[t.includes(`.`)?t.split(`.`).pop().toLowerCase():``]||`#94a3b8`}">${yPt}${Da(t)}</span>`;let r=t.slice(0,n+1),i=t.slice(n+1),a=_7[i.includes(`.`)?i.split(`.`).pop().toLowerCase():``]||`#94a3b8`;return`<span class="dmd-code-path">${Da(r)}</span><span class="dmd-code-filename" style="color:${a}">${yPt}${Da(i)}</span>`}var xPt=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,SPt=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><line x1="12" y1="12" x2="18" y2="12" stroke-width="2"/><line x1="12" y1="16" x2="16" y2="16" stroke-width="2"/></svg>`,CPt=`<svg class="check-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`;function wPt(e,t=``){let n=gPt(t.trim().split(/\s+/)[0]||`text`)||`text`,r=``,i=t.match(/title=["']([^"']+)["']/);if(i&&(r=i[1]),n.toLowerCase()===`mermaid`)return pPt(e);if(n===`csv`||n===`tsv`)return oPt(e,t,n,e=>Ta.parseInline(e));
|
|
3688
|
+
`)}\n </tbody>`}\n</table>`}function dPt(e,t){return t===`csv`?cPt(e):t===`html`?uPt(e):lPt(e)}function fPt(e){let t=e=>(e.textContent??``).replace(/\s+/g,` `).trim(),n=e=>{let t=e.getAttribute(`data-align`);return t===`left`||t===`center`||t===`right`?t:null},r=e.querySelector(`thead tr`),i=r?Array.from(r.children).map(t):[],a=r?Array.from(r.children).map(n):Array.from(e.querySelector(`tbody tr`)?.children??[]).map(n);return{headers:i,rows:Array.from(e.querySelectorAll(`tbody tr`)).map(e=>Array.from(e.children).map(t)),aligns:a}}Ea.default.languages.svelte={script:{pattern:/(<script\b[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,greedy:!0,inside:Ea.default.languages.javascript},style:{pattern:/(<style\b[^>]*>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,greedy:!0,inside:Ea.default.languages.css},comment:/<!--[\s\S]*?-->/,"svelte-directive":{pattern:/<\/?svelte:[\w-]+(?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?\/?>(?=\s|$)/i,greedy:!0,inside:Ea.default.languages.markup},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s+(?:[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?))*\s*\/?>/,greedy:!0,inside:Ea.default.languages.markup},interpolation:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,greedy:!0,inside:Ea.default.languages.javascript}};function pPt(e){return`<div class="dmd-diagram-host" data-dmd-diagram="${BNt(e)}"></div>`}var mPt={js:`javascript`,ts:`typescript`,py:`python`,sh:`bash`,shell:`bash`,zsh:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,golang:`go`,kt:`kotlin`,rb:`ruby`,cs:`csharp`,"c++":`cpp`,"c#":`csharp`,gql:`graphql`},_7={ts:`#3178c6`,tsx:`#3178c6`,js:`#f7df1e`,jsx:`#f7df1e`,mjs:`#f7df1e`,cjs:`#f7df1e`,css:`#a855f7`,scss:`#a855f7`,less:`#a855f7`,html:`#f97316`,htm:`#f97316`,json:`#eab308`,jsonc:`#eab308`,yaml:`#ef4444`,yml:`#ef4444`,md:`#94a3b8`,markdown:`#94a3b8`,py:`#3b82f6`,sh:`#22c55e`,bash:`#22c55e`,zsh:`#22c55e`,rs:`#f97316`,go:`#38bdf8`,svelte:`#ff3e00`,vue:`#42b883`,svg:`#a855f7`,xml:`#f97316`,sql:`#a78bfa`,graphql:`#a855f7`,gql:`#a855f7`,dockerfile:`#38bdf8`,txt:`#64748b`,toml:`#94a3b8`,ini:`#94a3b8`},hPt={typescript:_7.ts,javascript:_7.js,jsx:_7.jsx,tsx:_7.tsx,python:_7.py,bash:_7.sh,css:_7.css,scss:_7.scss,json:_7.json,jsonc:_7.json,yaml:_7.yaml,markdown:_7.md,html:_7.html,sql:_7.sql,svelte:_7.svelte,go:_7.go,rust:_7.rs,graphql:_7.graphql,xml:_7.xml,toml:_7.toml};function gPt(e){let t=e.trim().toLowerCase();return mPt[t]||t}function _Pt(e,t,n){let r=gPt(e);Ea.default.languages[r]=t,n&&(hPt[r]=n,_7[r]=n)}function vPt(e,t=``){let n=gPt(t);if(n===`mermaid`)return pPt(e);if(!n||n===`text`||n===`plain`||n===`txt`)return Da(e);let r=Ea.default.languages[n];return r?Ea.default.highlight(e,r,n):Da(e)}var yPt=`<svg class="dmd-code-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;function bPt(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);if(n===-1)return`<span class="dmd-code-filename" style="color:${_7[t.includes(`.`)?t.split(`.`).pop().toLowerCase():``]||`#94a3b8`}">${yPt}${Da(t)}</span>`;let r=t.slice(0,n+1),i=t.slice(n+1),a=_7[i.includes(`.`)?i.split(`.`).pop().toLowerCase():``]||`#94a3b8`;return`<span class="dmd-code-path">${Da(r)}</span><span class="dmd-code-filename" style="color:${a}">${yPt}${Da(i)}</span>`}var xPt=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,SPt=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><line x1="12" y1="12" x2="18" y2="12" stroke-width="2"/><line x1="12" y1="16" x2="16" y2="16" stroke-width="2"/></svg>`,CPt=`<svg class="check-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`;function wPt(e,t=``){let n=gPt(t.trim().split(/\s+/)[0]||`text`)||`text`,r=``,i=t.match(/title=["']([^"']+)["']/);if(i&&(r=i[1]),n.toLowerCase()===`mermaid`)return pPt(e);if(n===`csv`||n===`tsv`)return oPt(e,t,n,e=>Ta.parseInline(e));function a(e,t,n){let r=5381,i=`${t}:${n}:${e}`;for(let e=0;e<i.length;e++)r=(r<<5)+r^i.charCodeAt(e);return`code-${(r>>>0).toString(36)}`}let o=vPt(e,n),s=a(e,n,t),l=TPt(t),u=l.size>0,d=hPt[n];return`
|
|
3689
3689
|
<div class="dmd-code-block-wrapper" data-lang="${n}">
|
|
3690
3690
|
<div class="dmd-code-header">
|
|
3691
|
-
<div class="dmd-code-header-left">${r?`<span class="dmd-code-title">${bPt(r)}</span>`:`<span class="dmd-code-lang"${
|
|
3691
|
+
<div class="dmd-code-header-left">${r?`<span class="dmd-code-title">${bPt(r)}</span>`:`<span class="dmd-code-lang"${d?` style="--dmd-lang-color:${d}"`:``}>${n.toUpperCase()}</span>`}</div>
|
|
3692
3692
|
<div class="dmd-code-header-right">
|
|
3693
|
-
${
|
|
3693
|
+
${u?`<button type="button" class="dmd-copy-btn dmd-copy-selected-btn" data-dmd-copy-selected aria-label="Copy highlighted lines" title="Copy highlighted lines">${SPt}${CPt}</button>`:``}
|
|
3694
3694
|
<button type="button" class="dmd-copy-btn" data-dmd-copy aria-label="Copy code" title="Copy code">${xPt}${CPt}</button>
|
|
3695
3695
|
</div>
|
|
3696
3696
|
</div>
|
|
3697
|
-
<pre class="language-${n}" tabindex="0"><code id="${
|
|
3697
|
+
<pre class="language-${n}" tabindex="0"><code id="${s}" class="language-${n}">${EPt(o,l)}</code></pre>
|
|
3698
3698
|
</div>
|
|
3699
3699
|
`}function TPt(e){let t=new Set,n=/\{([\d\s,-]+)\}/.exec(e);if(!n)return t;for(let e of n[1].split(`,`)){let[n,r]=e.split(`-`).map(e=>Number.parseInt(e.trim(),10));if(Number.isNaN(n))continue;let i=r===void 0||Number.isNaN(r)?n:r;for(let e=Math.max(1,n);e<=i;e++)t.add(e)}return t}function EPt(e,t=new Set){let n=[],r=``,i=!1,a=1,o=0,s=!1,l=[],u=()=>{o=n.length,i=!1,r=``,s=l.length>0,n.push(`<span class="dmd-code-line${t.has(a)?` dmd-code-line-active`:``}">`);for(let e of l)n.push(e)},d=()=>{s||(r=DPt(r));for(let e=0;e<l.length;e++)r+=`</span>`;n.push(r,`</span>`),a++};u();let f=0;for(;f<e.length;)if(e[f]===`<`){let t=e.indexOf(`>`,f);if(t===-1){r+=e.slice(f),i=!0;break}let n=e.slice(f,t+1);f=t+1,r+=n,n.startsWith(`</`)?l.pop():l.push(n)}else{let t=e.indexOf(`<`,f);t===-1&&(t=e.length);let n=e.slice(f,t).split(`
|
|
3700
3700
|
`);f=t;for(let e=0;e<n.length;e++)e>0&&(d(),u()),n[e]!==``&&(r+=n[e],i=!0)}return i||l.length>0?d():n.length=o,n.join(``)}function DPt(e){let t=0,n=``;for(;t<e.length;)if(e[t]===` `)n+=`<span class="dmd-ws-space"> </span>`,t++;else if(e[t]===` `)n+=`<span class="dmd-ws-tab"> </span>`,t++;else break;return t>0?n+e.slice(t):e}var v7=new Set([`badge`,`button`,`kbd`]),OPt=v7,kPt=/<([A-Z][A-Za-z0-9]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)(\/?)>/g,APt=/<(\/?)([A-Z][A-Za-z0-9]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)(\/?)>/g,jPt=/<\/([A-Z][A-Za-z0-9]*)\s*>/g;function MPt(e,t){let n=t.flags.includes(`g`)?t.flags:`${t.flags}g`,r=new RegExp(t.source,n),i=[],a=r.exec(e);for(;a!==null;)i.push([a.index,a.index+a[0].length]),a=r.exec(e);return i}function NPt(e,t){for(let n=0;n<t.length;n++)if(e>=t[n][0]&&e<t[n][1])return!0;return!1}function PPt(e){return[...MPt(e,/(`{3,})[\s\S]*?\1/g),...MPt(e,/(~{3,})[\s\S]*?\1/g),...MPt(e,/(`+)[\s\S]*?\1/g)]}function FPt(e,t,n){kPt.lastIndex=t;let r;for(;;){if(r=kPt.exec(e),r===null)return null;if(!NPt(r.index,n)&&!v7.has(r[1].toLowerCase()))return{tag:r[1],full:r[0],start:r.index,end:r.index+r[0].length,selfClosing:r[3]===`/`}}}function IPt(e,t,n){let r=1;APt.lastIndex=t.end;let i;for(;i=APt.exec(e),i!==null;)if(!NPt(i.index,n)&&i[2]===t.tag&&i[4]!==`/`){if(i[1]===`/`){if(--r,r===0)return{full:i[0],start:i.index,end:i.index+i[0].length}}else r+=1}for(jPt.lastIndex=t.end;;){if(i=jPt.exec(e),i===null)return null;if(!NPt(i.index,n)&&i[1].toLowerCase()===t.tag.toLowerCase())return{full:i[0],start:i.index,end:i.index+i[0].length}}}function LPt(e){let t=e.split(`
|
package/dist/docmedown.mjs
CHANGED
|
@@ -7257,17 +7257,22 @@ function $f(e, t = "") {
|
|
|
7257
7257
|
let n = Gf(t.trim().split(/\s+/)[0] || "text") || "text", r = "", i = t.match(/title=["']([^"']+)["']/);
|
|
7258
7258
|
if (i && (r = i[1]), n.toLowerCase() === "mermaid") return Vf(e);
|
|
7259
7259
|
if (n === "csv" || n === "tsv") return Nf(e, t, n, (e) => Hd.parseInline(e));
|
|
7260
|
-
|
|
7260
|
+
function a(e, t, n) {
|
|
7261
|
+
let r = 5381, i = `${t}:${n}:${e}`;
|
|
7262
|
+
for (let e = 0; e < i.length; e++) r = (r << 5) + r ^ i.charCodeAt(e);
|
|
7263
|
+
return `code-${(r >>> 0).toString(36)}`;
|
|
7264
|
+
}
|
|
7265
|
+
let o = qf(e, n), s = a(e, n, t), c = ep(t), l = c.size > 0, u = Wf[n];
|
|
7261
7266
|
return `
|
|
7262
7267
|
<div class="dmd-code-block-wrapper" data-lang="${n}">
|
|
7263
7268
|
<div class="dmd-code-header">
|
|
7264
|
-
<div class="dmd-code-header-left">${r ? `<span class="dmd-code-title">${Yf(r)}</span>` : `<span class="dmd-code-lang"${
|
|
7269
|
+
<div class="dmd-code-header-left">${r ? `<span class="dmd-code-title">${Yf(r)}</span>` : `<span class="dmd-code-lang"${u ? ` style="--dmd-lang-color:${u}"` : ""}>${n.toUpperCase()}</span>`}</div>
|
|
7265
7270
|
<div class="dmd-code-header-right">
|
|
7266
|
-
${
|
|
7271
|
+
${l ? `<button type="button" class="dmd-copy-btn dmd-copy-selected-btn" data-dmd-copy-selected aria-label="Copy highlighted lines" title="Copy highlighted lines">${Zf}${Qf}</button>` : ""}
|
|
7267
7272
|
<button type="button" class="dmd-copy-btn" data-dmd-copy aria-label="Copy code" title="Copy code">${Xf}${Qf}</button>
|
|
7268
7273
|
</div>
|
|
7269
7274
|
</div>
|
|
7270
|
-
<pre class="language-${n}" tabindex="0"><code id="${
|
|
7275
|
+
<pre class="language-${n}" tabindex="0"><code id="${s}" class="language-${n}">${tp(o, c)}</code></pre>
|
|
7271
7276
|
</div>
|
|
7272
7277
|
`;
|
|
7273
7278
|
}
|
package/dist/docmedown.web.js
CHANGED
|
@@ -96,16 +96,16 @@ ${o}
|
|
|
96
96
|
`)}function qf(e){let t=Wf(e),n=e=>e.replace(/\|/g,`\\|`).replace(/\r?\n/g,`<br>`).trim(),r=e=>`| ${Gf(e,t).map(n).join(` | `)} |`,i=Array.from({length:t},(t,n)=>{let r=e.aligns[n];return r===`center`?`:---:`:r===`right`?`---:`:r===`left`?`:---`:`---`});return[r(e.headers),`| ${i.join(` | `)} |`,...e.rows.map(r)].join(`
|
|
97
97
|
`)}function Jf(e){let t=Wf(e),n=t=>e.aligns[t]?` style="text-align: ${e.aligns[t]}"`:``,r=(e,r)=>` <tr>\n${Gf(r,t).map((t,r)=>` <${e}${n(r)}>${ef(t)}</${e}>`).join(`
|
|
98
98
|
`)}\n </tr>`;return`<table>\n${e.headers.length?` <thead>\n${r(`th`,e.headers)}\n </thead>\n`:``}${` <tbody>\n${e.rows.map(e=>r(`td`,e)).join(`
|
|
99
|
-
`)}\n </tbody>`}\n</table>`}function Yf(e,t){return t===`csv`?Kf(e):t===`html`?Jf(e):qf(e)}function Xf(e){let t=e=>(e.textContent??``).replace(/\s+/g,` `).trim(),n=e=>{let t=e.getAttribute(`data-align`);return t===`left`||t===`center`||t===`right`?t:null},r=e.querySelector(`thead tr`),i=r?Array.from(r.children).map(t):[],a=r?Array.from(r.children).map(n):Array.from(e.querySelector(`tbody tr`)?.children??[]).map(n);return{headers:i,rows:Array.from(e.querySelectorAll(`tbody tr`)).map(e=>Array.from(e.children).map(t)),aligns:a}}$d.default.languages.svelte={script:{pattern:/(<script\b[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,greedy:!0,inside:$d.default.languages.javascript},style:{pattern:/(<style\b[^>]*>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,greedy:!0,inside:$d.default.languages.css},comment:/<!--[\s\S]*?-->/,"svelte-directive":{pattern:/<\/?svelte:[\w-]+(?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?\/?>(?=\s|$)/i,greedy:!0,inside:$d.default.languages.markup},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s+(?:[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?))*\s*\/?>/,greedy:!0,inside:$d.default.languages.markup},interpolation:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,greedy:!0,inside:$d.default.languages.javascript}};function Zf(e){return`<div class="dmd-diagram-host" data-dmd-diagram="${Sf(e)}"></div>`}var Qf={js:`javascript`,ts:`typescript`,py:`python`,sh:`bash`,shell:`bash`,zsh:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,golang:`go`,kt:`kotlin`,rb:`ruby`,cs:`csharp`,"c++":`cpp`,"c#":`csharp`,gql:`graphql`},$f={ts:`#3178c6`,tsx:`#3178c6`,js:`#f7df1e`,jsx:`#f7df1e`,mjs:`#f7df1e`,cjs:`#f7df1e`,css:`#a855f7`,scss:`#a855f7`,less:`#a855f7`,html:`#f97316`,htm:`#f97316`,json:`#eab308`,jsonc:`#eab308`,yaml:`#ef4444`,yml:`#ef4444`,md:`#94a3b8`,markdown:`#94a3b8`,py:`#3b82f6`,sh:`#22c55e`,bash:`#22c55e`,zsh:`#22c55e`,rs:`#f97316`,go:`#38bdf8`,svelte:`#ff3e00`,vue:`#42b883`,svg:`#a855f7`,xml:`#f97316`,sql:`#a78bfa`,graphql:`#a855f7`,gql:`#a855f7`,dockerfile:`#38bdf8`,txt:`#64748b`,toml:`#94a3b8`,ini:`#94a3b8`},ep={typescript:$f.ts,javascript:$f.js,jsx:$f.jsx,tsx:$f.tsx,python:$f.py,bash:$f.sh,css:$f.css,scss:$f.scss,json:$f.json,jsonc:$f.json,yaml:$f.yaml,markdown:$f.md,html:$f.html,sql:$f.sql,svelte:$f.svelte,go:$f.go,rust:$f.rs,graphql:$f.graphql,xml:$f.xml,toml:$f.toml};function tp(e){let t=e.trim().toLowerCase();return Qf[t]||t}function np(e,t,n){let r=tp(e);$d.default.languages[r]=t,n&&(ep[r]=n,$f[r]=n)}function rp(e,t=``){let n=tp(t);if(n===`mermaid`)return Zf(e);if(!n||n===`text`||n===`plain`||n===`txt`)return ef(e);let r=$d.default.languages[n];return r?$d.default.highlight(e,r,n):ef(e)}var ip=`<svg class="dmd-code-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;function ap(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);if(n===-1)return`<span class="dmd-code-filename" style="color:${$f[t.includes(`.`)?t.split(`.`).pop().toLowerCase():``]||`#94a3b8`}">${ip}${ef(t)}</span>`;let r=t.slice(0,n+1),i=t.slice(n+1),a=$f[i.includes(`.`)?i.split(`.`).pop().toLowerCase():``]||`#94a3b8`;return`<span class="dmd-code-path">${ef(r)}</span><span class="dmd-code-filename" style="color:${a}">${ip}${ef(i)}</span>`}var op=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,sp=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><line x1="12" y1="12" x2="18" y2="12" stroke-width="2"/><line x1="12" y1="16" x2="16" y2="16" stroke-width="2"/></svg>`,cp=`<svg class="check-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`;function lp(e,t=``){let n=tp(t.trim().split(/\s+/)[0]||`text`)||`text`,r=``,i=t.match(/title=["']([^"']+)["']/);if(i&&(r=i[1]),n.toLowerCase()===`mermaid`)return Zf(e);if(n===`csv`||n===`tsv`)return Uf(e,t,n,e=>Yd.parseInline(e));
|
|
99
|
+
`)}\n </tbody>`}\n</table>`}function Yf(e,t){return t===`csv`?Kf(e):t===`html`?Jf(e):qf(e)}function Xf(e){let t=e=>(e.textContent??``).replace(/\s+/g,` `).trim(),n=e=>{let t=e.getAttribute(`data-align`);return t===`left`||t===`center`||t===`right`?t:null},r=e.querySelector(`thead tr`),i=r?Array.from(r.children).map(t):[],a=r?Array.from(r.children).map(n):Array.from(e.querySelector(`tbody tr`)?.children??[]).map(n);return{headers:i,rows:Array.from(e.querySelectorAll(`tbody tr`)).map(e=>Array.from(e.children).map(t)),aligns:a}}$d.default.languages.svelte={script:{pattern:/(<script\b[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,greedy:!0,inside:$d.default.languages.javascript},style:{pattern:/(<style\b[^>]*>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,greedy:!0,inside:$d.default.languages.css},comment:/<!--[\s\S]*?-->/,"svelte-directive":{pattern:/<\/?svelte:[\w-]+(?:\s+(?:[^>"']|"[^"]*"|'[^']*')*)?\/?>(?=\s|$)/i,greedy:!0,inside:$d.default.languages.markup},tag:{pattern:/<\/?(?!\d)[^\s>/=$<%]+(?:\s+(?:[^\s>/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?))*\s*\/?>/,greedy:!0,inside:$d.default.languages.markup},interpolation:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,greedy:!0,inside:$d.default.languages.javascript}};function Zf(e){return`<div class="dmd-diagram-host" data-dmd-diagram="${Sf(e)}"></div>`}var Qf={js:`javascript`,ts:`typescript`,py:`python`,sh:`bash`,shell:`bash`,zsh:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,golang:`go`,kt:`kotlin`,rb:`ruby`,cs:`csharp`,"c++":`cpp`,"c#":`csharp`,gql:`graphql`},$f={ts:`#3178c6`,tsx:`#3178c6`,js:`#f7df1e`,jsx:`#f7df1e`,mjs:`#f7df1e`,cjs:`#f7df1e`,css:`#a855f7`,scss:`#a855f7`,less:`#a855f7`,html:`#f97316`,htm:`#f97316`,json:`#eab308`,jsonc:`#eab308`,yaml:`#ef4444`,yml:`#ef4444`,md:`#94a3b8`,markdown:`#94a3b8`,py:`#3b82f6`,sh:`#22c55e`,bash:`#22c55e`,zsh:`#22c55e`,rs:`#f97316`,go:`#38bdf8`,svelte:`#ff3e00`,vue:`#42b883`,svg:`#a855f7`,xml:`#f97316`,sql:`#a78bfa`,graphql:`#a855f7`,gql:`#a855f7`,dockerfile:`#38bdf8`,txt:`#64748b`,toml:`#94a3b8`,ini:`#94a3b8`},ep={typescript:$f.ts,javascript:$f.js,jsx:$f.jsx,tsx:$f.tsx,python:$f.py,bash:$f.sh,css:$f.css,scss:$f.scss,json:$f.json,jsonc:$f.json,yaml:$f.yaml,markdown:$f.md,html:$f.html,sql:$f.sql,svelte:$f.svelte,go:$f.go,rust:$f.rs,graphql:$f.graphql,xml:$f.xml,toml:$f.toml};function tp(e){let t=e.trim().toLowerCase();return Qf[t]||t}function np(e,t,n){let r=tp(e);$d.default.languages[r]=t,n&&(ep[r]=n,$f[r]=n)}function rp(e,t=``){let n=tp(t);if(n===`mermaid`)return Zf(e);if(!n||n===`text`||n===`plain`||n===`txt`)return ef(e);let r=$d.default.languages[n];return r?$d.default.highlight(e,r,n):ef(e)}var ip=`<svg class="dmd-code-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>`;function ap(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);if(n===-1)return`<span class="dmd-code-filename" style="color:${$f[t.includes(`.`)?t.split(`.`).pop().toLowerCase():``]||`#94a3b8`}">${ip}${ef(t)}</span>`;let r=t.slice(0,n+1),i=t.slice(n+1),a=$f[i.includes(`.`)?i.split(`.`).pop().toLowerCase():``]||`#94a3b8`;return`<span class="dmd-code-path">${ef(r)}</span><span class="dmd-code-filename" style="color:${a}">${ip}${ef(i)}</span>`}var op=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`,sp=`<svg class="copy-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><line x1="12" y1="12" x2="18" y2="12" stroke-width="2"/><line x1="12" y1="16" x2="16" y2="16" stroke-width="2"/></svg>`,cp=`<svg class="check-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`;function lp(e,t=``){let n=tp(t.trim().split(/\s+/)[0]||`text`)||`text`,r=``,i=t.match(/title=["']([^"']+)["']/);if(i&&(r=i[1]),n.toLowerCase()===`mermaid`)return Zf(e);if(n===`csv`||n===`tsv`)return Uf(e,t,n,e=>Yd.parseInline(e));function a(e,t,n){let r=5381,i=`${t}:${n}:${e}`;for(let e=0;e<i.length;e++)r=(r<<5)+r^i.charCodeAt(e);return`code-${(r>>>0).toString(36)}`}let o=rp(e,n),s=a(e,n,t),c=up(t),l=c.size>0,u=ep[n];return`
|
|
100
100
|
<div class="dmd-code-block-wrapper" data-lang="${n}">
|
|
101
101
|
<div class="dmd-code-header">
|
|
102
|
-
<div class="dmd-code-header-left">${r?`<span class="dmd-code-title">${ap(r)}</span>`:`<span class="dmd-code-lang"${
|
|
102
|
+
<div class="dmd-code-header-left">${r?`<span class="dmd-code-title">${ap(r)}</span>`:`<span class="dmd-code-lang"${u?` style="--dmd-lang-color:${u}"`:``}>${n.toUpperCase()}</span>`}</div>
|
|
103
103
|
<div class="dmd-code-header-right">
|
|
104
|
-
${
|
|
104
|
+
${l?`<button type="button" class="dmd-copy-btn dmd-copy-selected-btn" data-dmd-copy-selected aria-label="Copy highlighted lines" title="Copy highlighted lines">${sp}${cp}</button>`:``}
|
|
105
105
|
<button type="button" class="dmd-copy-btn" data-dmd-copy aria-label="Copy code" title="Copy code">${op}${cp}</button>
|
|
106
106
|
</div>
|
|
107
107
|
</div>
|
|
108
|
-
<pre class="language-${n}" tabindex="0"><code id="${
|
|
108
|
+
<pre class="language-${n}" tabindex="0"><code id="${s}" class="language-${n}">${dp(o,c)}</code></pre>
|
|
109
109
|
</div>
|
|
110
110
|
`}function up(e){let t=new Set,n=/\{([\d\s,-]+)\}/.exec(e);if(!n)return t;for(let e of n[1].split(`,`)){let[n,r]=e.split(`-`).map(e=>Number.parseInt(e.trim(),10));if(Number.isNaN(n))continue;let i=r===void 0||Number.isNaN(r)?n:r;for(let e=Math.max(1,n);e<=i;e++)t.add(e)}return t}function dp(e,t=new Set){let n=[],r=``,i=!1,a=1,o=0,s=!1,c=[],l=()=>{o=n.length,i=!1,r=``,s=c.length>0,n.push(`<span class="dmd-code-line${t.has(a)?` dmd-code-line-active`:``}">`);for(let e of c)n.push(e)},u=()=>{s||(r=fp(r));for(let e=0;e<c.length;e++)r+=`</span>`;n.push(r,`</span>`),a++};l();let d=0;for(;d<e.length;)if(e[d]===`<`){let t=e.indexOf(`>`,d);if(t===-1){r+=e.slice(d),i=!0;break}let n=e.slice(d,t+1);d=t+1,r+=n,n.startsWith(`</`)?c.pop():c.push(n)}else{let t=e.indexOf(`<`,d);t===-1&&(t=e.length);let n=e.slice(d,t).split(`
|
|
111
111
|
`);d=t;for(let e=0;e<n.length;e++)e>0&&(u(),l()),n[e]!==``&&(r+=n[e],i=!0)}return i||c.length>0?u():n.length=o,n.join(``)}function fp(e){let t=0,n=``;for(;t<e.length;)if(e[t]===` `)n+=`<span class="dmd-ws-space"> </span>`,t++;else if(e[t]===` `)n+=`<span class="dmd-ws-tab"> </span>`,t++;else break;return t>0?n+e.slice(t):e}var pp=new Set([`badge`,`button`,`kbd`]),mp=pp,hp=/<([A-Z][A-Za-z0-9]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)(\/?)>/g,gp=/<(\/?)([A-Z][A-Za-z0-9]*)\b((?:[^>"']|"[^"]*"|'[^']*')*)(\/?)>/g,_p=/<\/([A-Z][A-Za-z0-9]*)\s*>/g;function vp(e,t){let n=t.flags.includes(`g`)?t.flags:`${t.flags}g`,r=new RegExp(t.source,n),i=[],a=r.exec(e);for(;a!==null;)i.push([a.index,a.index+a[0].length]),a=r.exec(e);return i}function yp(e,t){for(let n=0;n<t.length;n++)if(e>=t[n][0]&&e<t[n][1])return!0;return!1}function bp(e){return[...vp(e,/(`{3,})[\s\S]*?\1/g),...vp(e,/(~{3,})[\s\S]*?\1/g),...vp(e,/(`+)[\s\S]*?\1/g)]}function xp(e,t,n){hp.lastIndex=t;let r;for(;;){if(r=hp.exec(e),r===null)return null;if(!yp(r.index,n)&&!pp.has(r[1].toLowerCase()))return{tag:r[1],full:r[0],start:r.index,end:r.index+r[0].length,selfClosing:r[3]===`/`}}}function Sp(e,t,n){let r=1;gp.lastIndex=t.end;let i;for(;i=gp.exec(e),i!==null;)if(!yp(i.index,n)&&i[2]===t.tag&&i[4]!==`/`){if(i[1]===`/`){if(--r,r===0)return{full:i[0],start:i.index,end:i.index+i[0].length}}else r+=1}for(_p.lastIndex=t.end;;){if(i=_p.exec(e),i===null)return null;if(!yp(i.index,n)&&i[1].toLowerCase()===t.tag.toLowerCase())return{full:i[0],start:i.index,end:i.index+i[0].length}}}function Cp(e){let t=e.split(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docmedown",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "The simplest MarkDown documenter yet. CLI, web script, and static-site compiler with AI-native distribution.",
|
|
5
5
|
"author": "Gabriel M. P. da Silva",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"test:mcp:client": "node ./scripts/test-mcp-client.mjs",
|
|
80
80
|
"test:artifacts": "npx tsx --test tests/offline-artifact.test.ts",
|
|
81
81
|
"test:bundle": "npx tsx --test tests/bundle-size.test.ts",
|
|
82
|
-
"test:release": "npm run typecheck && npm run lint && npm run test && npm run
|
|
82
|
+
"test:release": "npm run typecheck && npm run lint && npm run test && npm run build && npm run test:mcp && npm run build:docs && npm run test:artifacts && npm run test:bundle && npm pack --dry-run",
|
|
83
83
|
"doctor": "node ./bin/docmedown.js doctor ./docs",
|
|
84
84
|
"doctor:project": "node ./scripts/doctor-project.mjs",
|
|
85
85
|
"validate": "node ./bin/docmedown.js validate ./docs",
|