github-markdown-adf 1.0.0 → 1.0.1
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 +4 -0
- package/dist/browser/index.iife.js +20 -20
- package/dist/browser/index.js +16 -16
- package/dist/index.cjs +153 -13
- package/dist/index.mjs +153 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/browser/index.js
CHANGED
|
@@ -15,34 +15,34 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
15
15
|
`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
|
|
16
16
|
`,...a.current()});return/^[\t ]/.test(l)&&(l=bi(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}Di.peek=Oi;function Di(e){return e.value||``}function Oi(){return`<`}ki.peek=Ai;function ki(e,t,n,r){let i=_i(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function Ai(){return`!`}ji.peek=Mi;function ji(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function Mi(){return`!`}Ni.peek=Pi;function Ni(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function Pi(){return"`"}function Fi(e,t){let n=ge(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type===`text`&&(n===e.url||`mailto:`+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}Ii.peek=Li;function Ii(e,t,n,r){let i=_i(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(Fi(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function Li(e,t,n){return Fi(e,n)?`<`:`[`}Ri.peek=zi;function Ri(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function zi(){return`[`}function Bi(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function Vi(e){let t=Bi(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Hi(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Ui(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Wi(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?Hi(n):Bi(n),s=e.ordered?o===`.`?`)`:`.`:Vi(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),Ui(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function Gi(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function Ki(e,t,n,r){let i=Gi(n),a=n.bulletCurrent||Bi(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function qi(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}const Ji=ar([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function Yi(e,t,n,r){return(e.children.some(function(e){return Ji(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Xi(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Zi.peek=Qi;function Zi(e,t,n,r){let i=Xi(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=xi(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=bi(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=xi(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+bi(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function Qi(e,t,n){return n.options.strong||`*`}function $i(e,t,n,r){return n.safe(e.value,r)}function ea(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function ta(e,t,n){let r=(Ui(n)+(n.options.ruleSpaces?` `:``)).repeat(ea(n));return n.options.ruleSpaces?r.slice(0,-1):r}const na={blockquote:si,break:di,code:hi,definition:vi,emphasis:Si,hardBreak:di,heading:Ei,html:Di,image:ki,imageReference:ji,inlineCode:Ni,link:Ii,linkReference:Ri,list:Wi,listItem:Ki,paragraph:qi,root:Yi,strong:Zi,text:$i,thematicBreak:ta};function ra(){return{enter:{table:ia,tableData:ca,tableHeader:ca,tableRow:oa},exit:{codeText:la,table:aa,tableData:sa,tableHeader:sa,tableRow:sa}}}function ia(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function aa(e){this.exit(e),this.data.inTable=void 0}function oa(e){this.enter({type:`tableRow`,children:[]},e)}function sa(e){this.exit(e)}function ca(e){this.enter({type:`tableCell`,children:[]},e)}function la(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,ua));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function ua(e,t){return t===`|`?t:e}function da(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
17
17
|
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
18
|
-
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return ii(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=na.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function fa(){return{exit:{taskListCheckValueChecked:ma,taskListCheckValueUnchecked:ma,paragraph:ha}}}function pa(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:ga}}}function ma(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function ha(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function ga(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=na.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function _a(){return[Sr(),Kr(),Zr(),ra(),fa()]}function va(e){return{extensions:[Cr(),qr(e),Qr(),da(e),pa()]}}const ya={tokenize:Aa,partial:!0},ba={tokenize:ja,partial:!0},xa={tokenize:Ma,partial:!0},Sa={tokenize:Na,partial:!0},Ca={tokenize:Pa,partial:!0},wa={name:`wwwAutolink`,tokenize:Oa,previous:Fa},Ta={name:`protocolAutolink`,tokenize:ka,previous:Ia},Z={name:`emailAutolink`,tokenize:Da,previous:La},Q={};function Ea(){return{text:Q}}let $=48;for(;$<123;)Q[$]=Z,$++,$===58?$=65:$===91&&($=97);Q[43]=Z,Q[45]=Z,Q[46]=Z,Q[95]=Z,Q[72]=[Z,Ta],Q[104]=[Z,Ta],Q[87]=[Z,wa],Q[119]=[Z,wa];function Da(e,t,n){let r=this,i,a;return o;function o(t){return!Ra(t)||!La.call(r,r.previous)||za(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return Ra(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(Ca,u,l)(t):t===45||t===95||V(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&B(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Oa(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!Fa.call(r,r.previous)||za(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(ya,e.attempt(ba,e.attempt(xa,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function ka(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&Ia.call(r,r.previous)&&!za(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(B(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Oe(t)||U(t)||G(t)||Me(t)?n(t):e.attempt(ba,e.attempt(xa,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function Aa(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function ja(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(Sa,c,s)(t):t===null||U(t)||G(t)||t!==45&&Me(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function Ma(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(Sa,t,a)(o):o===null||U(o)||G(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function Na(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||U(o)||G(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||U(e)||G(e)?t(e):r(e)}function a(e){return B(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):B(t)?(e.consume(t),o):n(t)}}function Pa(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return V(e)?n(e):t(e)}}function Fa(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||U(e)}function Ia(e){return!B(e)}function La(e){return!(e===47||Ra(e))}function Ra(e){return e===43||e===45||e===46||e===95||V(e)}function za(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Ba={tokenize:Ja,partial:!0};function Va(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Ga,continuation:{tokenize:Ka},exit:qa}},text:{91:{name:`gfmFootnoteCall`,tokenize:Wa},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:Ha,resolveTo:Ua}}}}function Ha(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=z(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Ua(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function Wa(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||U(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(z(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return U(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Ga(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||U(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=z(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return U(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),q(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Ka(e,t,n){return e.check(Ke,t,e.attempt(Ba,t,n))}function qa(e){e.exit(`gfmFootnoteDefinition`)}function Ja(e,t,n){let r=this;return q(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Ya(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&L(o,o.length,0,ze(s,e.slice(r+1,n),t)),L(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),L(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=J(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=J(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Xa=class{constructor(){this.map=[]}add(e,t,n){Za(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Za(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Qa(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function $a(){return{flow:{null:{name:`table`,tokenize:eo,resolveAll:to}}}}function eo(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):H(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):W(t)?q(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||U(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,W(t)?q(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return W(t)?q(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||H(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return W(t)?q(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||H(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||H(n)?(e.exit(`tableRow`),t(n)):W(n)?q(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||U(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function to(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Xa;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(ro(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=no(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=no(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=no(f,t,o,i,n,d)):(o[0]=o[1],d=no(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&ro(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=Qa(t.events,n))}return e}function no(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},io(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=io(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=io(t.events,n[2]),a=io(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},io(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function ro(e,t,n,r,i){let a=[],o=io(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function io(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}const ao={name:`tasklistCheck`,tokenize:so};function oo(){return{text:{91:ao}}}function so(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return U(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return H(r)?t(r):W(r)?e.check({tokenize:co},t,n)(r):n(r)}}function co(e,t,n){return q(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function lo(e){return Ce([Ea(),Va(),Ya(e),$a(),oo()])}const uo={};function fo(e){let t=this,n=e||uo,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(lo(n)),a.push(_a()),o.push(va(n))}function po(e){return oe().use(nr).use(fo).parse(e)}const mo={ts:`typescript`,js:`javascript`,jsx:`javascript`,tsx:`typescript`,py:`python`,rb:`ruby`,sh:`bash`,zsh:`bash`,shell:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,kt:`kotlin`,tf:`hcl`,dockerfile:`docker`};function ho(e){if(!e)return;let t=e.toLowerCase().trim();if(t)return mo[t]??t}const go=/^<(ins|sub|sup)>$/i,_o=/^<\/(ins|sub|sup)>$/i;function vo(e){let t=e.toLowerCase();return t===`ins`?{type:`underline`}:t===`sub`?{type:`subsup`,attrs:{type:`sub`}}:t===`sup`?{type:`subsup`,attrs:{type:`sup`}}:null}function yo(e){let t=[],n=[];for(let r of e){if(r.type===`html`){let e=go.exec(r.value);if(e){let n=vo(e[1]??``);n&&t.push(n);continue}if(_o.exec(r.value)){t.pop();continue}}n.push(...bo(r,t.slice()))}return n}function bo(e,t){switch(e.type){case`text`:return e.value?[xo(e.value,t)]:[];case`inlineCode`:{let n=[...t.filter(e=>e.type===`link`),{type:`code`}];return[xo(e.value,n)]}case`strong`:return e.children.flatMap(e=>bo(e,[...t,{type:`strong`}]));case`emphasis`:return e.children.flatMap(e=>bo(e,[...t,{type:`em`}]));case`delete`:return e.children.flatMap(e=>bo(e,[...t,{type:`strike`}]));case`link`:{let n={type:`link`,attrs:{href:e.url,...e.title?{title:e.title}:{}}};return e.children.flatMap(e=>bo(e,[...t,n]))}case`image`:return[{type:`inlineCard`,attrs:{url:e.url}}];case`break`:return[{type:`hardBreak`}];case`html`:return So(e.value,t);case`linkReference`:case`imageReference`:return[];default:return[]}}function xo(e,t){let n={type:`text`,text:e};return t.length>0&&(n.marks=t),n}function So(e,t){let n=e.replace(/<[^>]+>/g,``);return n?[xo(n,t)]:[]}function Co(e){return{type:`heading`,attrs:{level:e.depth},content:yo(e.children)}}function wo(e){return{type:`paragraph`,content:yo(e.children)}}function To(e){let t={type:`codeBlock`},n=ho(e.lang);return n&&(t.attrs={language:n}),e.value&&(t.content=[{type:`text`,text:e.value}]),t}function Eo(e){return{type:`rule`}}const Do=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*/i,Oo={NOTE:`note`,TIP:`info`,IMPORTANT:`warning`,WARNING:`warning`,CAUTION:`error`};function ko(e,t){let n=e.children[0];if(n?.type===`paragraph`){let r=n.children[0];if(r?.type===`text`){let i=Do.exec(r.value);if(i){let a=Oo[(i[1]??`NOTE`).toUpperCase()]??`info`,o=r.value.replace(Do,``).trim(),s=[...n.children.slice(1)],c=[];if(o||s.length>0){let e={type:`paragraph`,children:[...o?[{type:`text`,value:o}]:[],...s]};e.children.length>0&&c.push(wo(e))}let l=e.children.slice(1);return c.push(...t(l)),c.length===0&&c.push({type:`paragraph`,content:[]}),{type:`panel`,attrs:{panelType:a},content:c}}}}let r=t(e.children);return{type:`blockquote`,content:r.length>0?r:[{type:`paragraph`,content:[]}]}}function Ao(e){let t=/<details[^>]*>\s*<summary[^>]*>(.*?)<\/summary>([\s\S]*?)<\/details>/i.exec(e.value);if(t)return{type:`paragraph`,content:[{type:`text`,text:(t[1]??``).trim()}]};let n=e.value.replace(/<[^>]+>/g,``).trim();return n?{type:`paragraph`,content:[{type:`text`,text:n}]}:null}function jo(){return crypto.randomUUID()}function Mo(e,t){return e.children.some(e=>e.checked!==null&&e.checked!==void 0)?Io(e):e.ordered?Po(e,t):No(e,t)}function No(e,t){return{type:`bulletList`,content:e.children.map(e=>Fo(e,t))}}function Po(e,t){let n={type:`orderedList`,content:e.children.map(e=>Fo(e,t))};return e.start!==null&&e.start!==void 0&&e.start!==1&&(n.attrs={order:e.start}),n}function Fo(e,t){let n=[];for(let r of e.children)if(r.type===`paragraph`)n.push({type:`paragraph`,content:yo(r.children)});else if(r.type===`list`){let e=Mo(r,t);e.type===`taskList`?n.length===0&&n.push({type:`paragraph`,content:[]}):(n.length===0&&n.push({type:`paragraph`,content:[]}),n.push(e))}else if(r.type===`code`)n.push({type:`codeBlock`,content:[{type:`text`,text:r.value}],...r.lang?{attrs:{language:r.lang}}:{}});else{let e=t(r);e&&e.type===`paragraph`&&n.push(e)}return n.length===0&&n.push({type:`paragraph`,content:[]}),{type:`listItem`,content:n}}function Io(e){let t=jo(),n=e.children.map(e=>{let t=e.checked===!0?`DONE`:`TODO`,n=e.children.filter(e=>e.type===`paragraph`).flatMap(e=>yo(e.children)),r={type:`taskItem`,attrs:{localId:jo(),state:t}};return n.length>0&&(r.content=n),r});return{type:`taskList`,attrs:{localId:t},content:n}}function Lo(e){let t=e.children;if(t.length===0)return{type:`table`,content:[]};let n=t[0],r=t.slice(1),i=[];n&&i.push({type:`tableRow`,content:n.children.map(e=>Ro(e))});for(let e of r)i.push({type:`tableRow`,content:e.children.map(e=>zo(e))});return{type:`table`,content:i}}function Ro(e){let t=yo(e.children);return{type:`tableHeader`,attrs:{},content:[{type:`paragraph`,content:t.length>0?t:[]}]}}function zo(e){let t=yo(e.children);return{type:`tableCell`,attrs:{},content:[{type:`paragraph`,content:t.length>0?t:[]}]}}function Bo(e){return{version:1,type:`doc`,content:e.children.flatMap(e=>{let t=Vo(e);return t?[t]:[]})}}function Vo(e){switch(e.type){case`heading`:return Co(e);case`paragraph`:return wo(e);case`code`:return To(e);case`thematicBreak`:return Eo(e);case`blockquote`:return ko(e,e=>e.flatMap(e=>{let t=Vo(e);return t?[t]:[]}));case`list`:return Mo(e,Vo);case`table`:return Lo(e);case`html`:return Ao(e);default:return null}}function Ho(e){return e.replace(/\0/g,``)}function Uo(e){return e.replace(/\r\n/g,`
|
|
18
|
+
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return ii(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=na.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function fa(){return{exit:{taskListCheckValueChecked:ma,taskListCheckValueUnchecked:ma,paragraph:ha}}}function pa(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:ga}}}function ma(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function ha(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function ga(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=na.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function _a(){return[Sr(),Kr(),Zr(),ra(),fa()]}function va(e){return{extensions:[Cr(),qr(e),Qr(),da(e),pa()]}}const ya={tokenize:Aa,partial:!0},ba={tokenize:ja,partial:!0},xa={tokenize:Ma,partial:!0},Sa={tokenize:Na,partial:!0},Ca={tokenize:Pa,partial:!0},wa={name:`wwwAutolink`,tokenize:Oa,previous:Fa},Ta={name:`protocolAutolink`,tokenize:ka,previous:Ia},Z={name:`emailAutolink`,tokenize:Da,previous:La},Q={};function Ea(){return{text:Q}}let $=48;for(;$<123;)Q[$]=Z,$++,$===58?$=65:$===91&&($=97);Q[43]=Z,Q[45]=Z,Q[46]=Z,Q[95]=Z,Q[72]=[Z,Ta],Q[104]=[Z,Ta],Q[87]=[Z,wa],Q[119]=[Z,wa];function Da(e,t,n){let r=this,i,a;return o;function o(t){return!Ra(t)||!La.call(r,r.previous)||za(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return Ra(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(Ca,u,l)(t):t===45||t===95||V(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&B(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Oa(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!Fa.call(r,r.previous)||za(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(ya,e.attempt(ba,e.attempt(xa,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function ka(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&Ia.call(r,r.previous)&&!za(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(B(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Oe(t)||U(t)||G(t)||Me(t)?n(t):e.attempt(ba,e.attempt(xa,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function Aa(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function ja(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(Sa,c,s)(t):t===null||U(t)||G(t)||t!==45&&Me(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function Ma(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(Sa,t,a)(o):o===null||U(o)||G(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function Na(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||U(o)||G(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||U(e)||G(e)?t(e):r(e)}function a(e){return B(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):B(t)?(e.consume(t),o):n(t)}}function Pa(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return V(e)?n(e):t(e)}}function Fa(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||U(e)}function Ia(e){return!B(e)}function La(e){return!(e===47||Ra(e))}function Ra(e){return e===43||e===45||e===46||e===95||V(e)}function za(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Ba={tokenize:Ja,partial:!0};function Va(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Ga,continuation:{tokenize:Ka},exit:qa}},text:{91:{name:`gfmFootnoteCall`,tokenize:Wa},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:Ha,resolveTo:Ua}}}}function Ha(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=z(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Ua(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function Wa(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||U(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(z(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return U(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Ga(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||U(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=z(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return U(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),q(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Ka(e,t,n){return e.check(Ke,t,e.attempt(Ba,t,n))}function qa(e){e.exit(`gfmFootnoteDefinition`)}function Ja(e,t,n){let r=this;return q(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Ya(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&L(o,o.length,0,ze(s,e.slice(r+1,n),t)),L(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),L(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=J(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=J(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Xa=class{constructor(){this.map=[]}add(e,t,n){Za(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Za(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Qa(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function $a(){return{flow:{null:{name:`table`,tokenize:eo,resolveAll:to}}}}function eo(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):H(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):W(t)?q(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||U(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,W(t)?q(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return W(t)?q(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||H(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return W(t)?q(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||H(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||H(n)?(e.exit(`tableRow`),t(n)):W(n)?q(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||U(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function to(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Xa;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(ro(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=no(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=no(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=no(f,t,o,i,n,d)):(o[0]=o[1],d=no(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&ro(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=Qa(t.events,n))}return e}function no(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},io(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=io(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=io(t.events,n[2]),a=io(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},io(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function ro(e,t,n,r,i){let a=[],o=io(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function io(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}const ao={name:`tasklistCheck`,tokenize:so};function oo(){return{text:{91:ao}}}function so(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return U(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return H(r)?t(r):W(r)?e.check({tokenize:co},t,n)(r):n(r)}}function co(e,t,n){return q(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function lo(e){return Ce([Ea(),Va(),Ya(e),$a(),oo()])}const uo={};function fo(e){let t=this,n=e||uo,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(lo(n)),a.push(_a()),o.push(va(n))}const po=oe().use(nr).use(fo);function mo(e){return po.parse(e)}const ho={ts:`typescript`,js:`javascript`,jsx:`javascript`,tsx:`typescript`,py:`python`,rb:`ruby`,sh:`bash`,zsh:`bash`,shell:`bash`,yml:`yaml`,md:`markdown`,rs:`rust`,kt:`kotlin`,tf:`hcl`,dockerfile:`docker`};function go(e){if(!e)return;let t=e.toLowerCase().trim();if(t)return ho[t]??t}const _o=/^<(ins|sub|sup)>$/i,vo=/^<\/(ins|sub|sup)>$/i;function yo(e){let t=e.toLowerCase();return t===`ins`?{type:`underline`}:t===`sub`?{type:`subsup`,attrs:{type:`sub`}}:t===`sup`?{type:`subsup`,attrs:{type:`sup`}}:null}function bo(e){let t=[],n=[];for(let r of e){if(r.type===`html`){let e=_o.exec(r.value);if(e){let n=yo(e[1]??``);n&&t.push(n);continue}if(vo.exec(r.value)){t.pop();continue}}n.push(...xo(r,t.slice()))}return n}function xo(e,t){switch(e.type){case`text`:return e.value?[So(e.value,t)]:[];case`inlineCode`:{let n=[...t.filter(e=>e.type===`link`),{type:`code`}];return[So(e.value,n)]}case`strong`:return e.children.flatMap(e=>xo(e,[...t,{type:`strong`}]));case`emphasis`:return e.children.flatMap(e=>xo(e,[...t,{type:`em`}]));case`delete`:return e.children.flatMap(e=>xo(e,[...t,{type:`strike`}]));case`link`:{let n={type:`link`,attrs:{href:e.url,...e.title?{title:e.title}:{}}};return e.children.flatMap(e=>xo(e,[...t,n]))}case`image`:return[{type:`inlineCard`,attrs:{url:e.url}}];case`break`:return[{type:`hardBreak`}];case`html`:return Co(e.value,t);case`linkReference`:case`imageReference`:return[];default:return[]}}function So(e,t){let n={type:`text`,text:e};return t.length>0&&(n.marks=t),n}function Co(e,t){let n=e.replace(/<[^>]+>/g,``);return n?[So(n,t)]:[]}function wo(e){return{type:`heading`,attrs:{level:e.depth},content:bo(e.children)}}function To(e){return{type:`paragraph`,content:bo(e.children)}}function Eo(e){let t={type:`codeBlock`},n=go(e.lang);return n&&(t.attrs={language:n}),e.value&&(t.content=[{type:`text`,text:e.value}]),t}function Do(e){return{type:`rule`}}const Oo=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*/i,ko={NOTE:`note`,TIP:`info`,IMPORTANT:`warning`,WARNING:`warning`,CAUTION:`error`};function Ao(e,t){let n=e.children[0];if(n?.type===`paragraph`){let r=n.children[0];if(r?.type===`text`){let i=Oo.exec(r.value);if(i){let a=ko[(i[1]??`NOTE`).toUpperCase()]??`info`,o=r.value.replace(Oo,``).trim(),s=[...n.children.slice(1)],c=[];if(o||s.length>0){let e={type:`paragraph`,children:[...o?[{type:`text`,value:o}]:[],...s]};e.children.length>0&&c.push(To(e))}let l=e.children.slice(1);return c.push(...t(l)),c.length===0&&c.push({type:`paragraph`,content:[]}),{type:`panel`,attrs:{panelType:a},content:c}}}}let r=t(e.children);return{type:`blockquote`,content:r.length>0?r:[{type:`paragraph`,content:[]}]}}const jo=/^<details[^>]*>\s*<summary[^>]*>([\s\S]*?)<\/summary>\s*$/i,Mo=/^<\/details>\s*$/i,No=new Set([`paragraph`,`heading`,`bulletList`,`orderedList`,`codeBlock`,`blockquote`,`panel`,`rule`,`table`,`mediaGroup`,`mediaSingle`,`nestedExpand`]);function Po(e){return No.has(e.type)}function Fo(e){let t=/^<details[^>]*>\s*/i.exec(e);if(!t)return null;let n=t[0].length,r=e.slice(n),i=/^<summary[^>]*>/i.exec(r);if(!i)return null;n+=i[0].length;let a=e.slice(n),o=a.search(/<\/summary>/i);if(o===-1)return null;let s=a.slice(0,o);n+=o+10;let c=n,l=/<details[^>]*>/gi,u=/<\/details>/gi,d=1;l.lastIndex=c,u.lastIndex=c;let f=-1;for(;d>0;){let t=l.exec(e),r=u.exec(e);if(!r)return null;if(t&&t.index<r.index){d++,u.lastIndex=l.lastIndex;continue}if(d--,d===0){f=r.index,n=r.index+r[0].length;break}l.lastIndex=u.lastIndex}return f===-1||e.slice(n).trim().length>0?null:{title:s,body:e.slice(c,f)}}function Io(e){let t=new Map,n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.type===`html`){let e=i.value;if(jo.test(e))n.push(r);else if(Mo.test(e)){let e=n.pop();e!==void 0&&t.set(e,r)}}}return t}function Lo(e,t){let n=[],r=Io(e),i=0;for(;i<e.length;){let a=Ro(e,i,r,t);if(a){Po(a.node)&&n.push(a.node),i=a.next;continue}let o=t(e[i]);o&&Po(o)&&n.push(o),i++}return n}function Ro(e,t,n,r){let i=e[t];if(i.type!==`html`)return null;let a=Fo(i.value);if(a){let e=a.title.trim(),n=a.body.trim(),i=n?Lo(mo(n).children,r):[];return{node:{type:`expand`,attrs:{title:e},content:i},next:t+1}}let o=jo.exec(i.value);if(o){let i=(o[1]??``).trim(),a=n.get(t)??-1;if(a!==-1){let n=Lo(e.slice(t+1,a),r);return{node:{type:`expand`,attrs:{title:i},content:n},next:a+1}}}return null}function zo(e){let t=e.value.replace(/<[^>]+>/g,``).trim();return t?{type:`paragraph`,content:[{type:`text`,text:t}]}:null}function Bo(){return crypto.randomUUID()}function Vo(e,t){return e.children.some(e=>e.checked!==null&&e.checked!==void 0)?Go(e):e.ordered?Uo(e,t):Ho(e,t)}function Ho(e,t){return{type:`bulletList`,content:e.children.map(e=>Wo(e,t))}}function Uo(e,t){let n={type:`orderedList`,content:e.children.map(e=>Wo(e,t))};return e.start!==null&&e.start!==void 0&&e.start!==1&&(n.attrs={order:e.start}),n}function Wo(e,t){let n=[];for(let r of e.children)if(r.type===`paragraph`)n.push({type:`paragraph`,content:bo(r.children)});else if(r.type===`list`){let e=Vo(r,t);e.type===`taskList`?n.length===0&&n.push({type:`paragraph`,content:[]}):(n.length===0&&n.push({type:`paragraph`,content:[]}),n.push(e))}else if(r.type===`code`)n.push({type:`codeBlock`,content:[{type:`text`,text:r.value}],...r.lang?{attrs:{language:r.lang}}:{}});else{let e=t(r);e&&e.type===`paragraph`&&n.push(e)}return n.length===0&&n.push({type:`paragraph`,content:[]}),{type:`listItem`,content:n}}function Go(e){let t=Bo(),n=e.children.map(e=>{let t=e.checked===!0?`DONE`:`TODO`,n=e.children.filter(e=>e.type===`paragraph`).flatMap(e=>bo(e.children)),r={type:`taskItem`,attrs:{localId:Bo(),state:t}};return n.length>0&&(r.content=n),r});return{type:`taskList`,attrs:{localId:t},content:n}}function Ko(e){let t=e.children;if(t.length===0)return{type:`table`,content:[]};let n=t[0],r=t.slice(1),i=[];n&&i.push({type:`tableRow`,content:n.children.map(e=>qo(e))});for(let e of r)i.push({type:`tableRow`,content:e.children.map(e=>Jo(e))});return{type:`table`,content:i}}function qo(e){let t=bo(e.children);return{type:`tableHeader`,attrs:{},content:[{type:`paragraph`,content:t.length>0?t:[]}]}}function Jo(e){let t=bo(e.children);return{type:`tableCell`,attrs:{},content:[{type:`paragraph`,content:t.length>0?t:[]}]}}function Yo(e){return{version:1,type:`doc`,content:Xo(e.children)}}function Xo(e){let t=[],n=Io(e),r=0;for(;r<e.length;){let i=Ro(e,r,n,Zo);if(i){t.push(i.node),r=i.next;continue}let a=Zo(e[r]);a&&t.push(a),r++}return t}function Zo(e){switch(e.type){case`heading`:return wo(e);case`paragraph`:return To(e);case`code`:return Eo(e);case`thematicBreak`:return Do(e);case`blockquote`:return Ao(e,e=>e.flatMap(e=>{let t=Zo(e);return t?[t]:[]}));case`list`:return Vo(e,Zo);case`table`:return Ko(e);case`html`:return zo(e);default:return null}}function Qo(e){return e.replace(/\0/g,``)}function $o(e){return e.replace(/\r\n/g,`
|
|
19
19
|
`).replace(/\r/g,`
|
|
20
|
-
`)}function
|
|
20
|
+
`)}function es(e){return e.replace(/[^\S\n]+$/gm,``)}function ts(e){return e.replace(/\n{3,}/g,`
|
|
21
21
|
|
|
22
|
-
`)}function
|
|
23
|
-
`;case`mention`:return e.attrs.text??`@${e.attrs.id}`;case`emoji`:return e.attrs.text??`:${e.attrs.shortName}:`;case`date`:return e.attrs.timestamp;case`status`:return`\`[${e.attrs.text}]\``;case`inlineCard`:return e.attrs.url?`<${e.attrs.url}>`:``;case`mediaInline`:return``;default:return``}}function
|
|
22
|
+
`)}function ns(e){return ts(es($o(Qo(e))))}function rs(e){return Qo($o(e))}function is(e){return Yo(mo(rs(e)))}const as=/([\\`*_[\]~|<])/g;function os(e){let t=e.replace(as,`\\$1`);return t=t.replace(/^(#{1,6} )/m,`\\$1`),t=t.replace(/^([-+]) /m,`\\$1 `),t=t.replace(/^> /m,`\\> `),t=t.replace(/^(\d+)\./m,`$1\\.`),t}function ss(e,t){if(!t||t.length===0)return e;let n=e;if(t.some(e=>e.type===`code`)){let e=t.find(e=>e.type===`link`);return n=`\`${n}\``,e&&(n=`[${n}](${e.attrs.href})`),n}for(let e of t)switch(e.type){case`strong`:n=`**${n}**`;break;case`em`:n=`*${n}*`;break;case`strike`:n=`~~${n}~~`;break;case`underline`:n=`<ins>${n}</ins>`;break;case`subsup`:n=e.attrs.type===`sub`?`<sub>${n}</sub>`:`<sup>${n}</sup>`;break;case`link`:n=`[${n}](${e.attrs.href}${e.attrs.title?` "${e.attrs.title}"`:``})`;break;case`textColor`:case`backgroundColor`:case`alignment`:case`indentation`:case`breakout`:case`border`:case`annotation`:case`dataConsumer`:case`fragment`:break}return n}function cs(e){return!e||e.length===0?``:e.map(ls).join(``)}function ls(e){switch(e.type){case`text`:return ss(os(e.text),e.marks);case`hardBreak`:return`\\
|
|
23
|
+
`;case`mention`:return e.attrs.text??`@${e.attrs.id}`;case`emoji`:return e.attrs.text??`:${e.attrs.shortName}:`;case`date`:return e.attrs.timestamp;case`status`:return`\`[${e.attrs.text}]\``;case`inlineCard`:return e.attrs.url?`<${e.attrs.url}>`:``;case`mediaInline`:return``;default:return``}}function us(e){return`${`#`.repeat(e.attrs.level)} ${cs(e.content)}`}function ds(e){return cs(e.content)}function fs(e){return`\`\`\`${e.attrs?.language??``}\n${e.content?.map(e=>e.text).join(``)??``}\n\`\`\``}function ps(e){return`---`}function ms(e,t){return e.content.map(e=>t(e)).join(`
|
|
24
24
|
|
|
25
25
|
`).split(`
|
|
26
26
|
`).map(e=>`> ${e}`).join(`
|
|
27
|
-
`)}function
|
|
28
|
-
`)}function
|
|
29
|
-
`)}function
|
|
30
|
-
`)}function
|
|
31
|
-
`)}function
|
|
32
|
-
`+
|
|
33
|
-
`+
|
|
27
|
+
`)}function hs(e,t=0){return e.content.map(e=>ys(e,`-`,t)).join(`
|
|
28
|
+
`)}function gs(e,t=0){let n=e.attrs?.order??1;return e.content.map((e,r)=>ys(e,`${n+r}.`,t)).join(`
|
|
29
|
+
`)}function _s(e,t=0){return e.content.map(e=>`${` `.repeat(t)}- ${e.attrs.state===`DONE`?`[x]`:`[ ]`} ${cs(e.content)}`).join(`
|
|
30
|
+
`)}function vs(e,t=0){return e.content.map(e=>`${` `.repeat(t)}- [x] ${cs(e.content)}`).join(`
|
|
31
|
+
`)}function ys(e,t,n){let r=` `.repeat(n),i=[];for(let t of e.content)if(t.type===`paragraph`)i.push(cs(t.content));else if(t.type===`bulletList`)i.push(`
|
|
32
|
+
`+hs(t,n+1));else if(t.type===`orderedList`)i.push(`
|
|
33
|
+
`+gs(t,n+1));else if(t.type===`codeBlock`){let e=t.attrs?.language??``,n=t.content?.map(e=>e.text).join(``)??``;i.push(`\n\`\`\`${e}\n${n}\n\`\`\``)}return`${r}${t} ${i.join(``)}`}const bs={note:`NOTE`,info:`TIP`,tip:`TIP`,warning:`WARNING`,success:`NOTE`,error:`CAUTION`,custom:`NOTE`};function xs(e,t){let n=bs[e.attrs.panelType]??`NOTE`,r=e.content.map(e=>t(e)).join(`
|
|
34
34
|
|
|
35
35
|
`);return[`> [!${n}]`,...r.split(`
|
|
36
36
|
`).map(e=>`> ${e}`)].join(`
|
|
37
|
-
`)}function
|
|
37
|
+
`)}function Ss(e,t){return`<details>\n<summary>${e.attrs.title??``}</summary>\n\n${e.content.map(e=>t(e)).join(`
|
|
38
38
|
|
|
39
|
-
`)}\n</details>`}function
|
|
40
|
-
`)}function
|
|
39
|
+
`)}\n</details>`}function Cs(e){let t=e.content[0];if(!t)return``;let n=t.attrs.alt??`image`;if(t.attrs.type===`link`){let e=t.attrs.url;if(e)return``}return`[media: ${t.attrs.id}]`}function ws(e){let t=e.attrs.url;return t?`[${t}](${t})`:``}function Ts(e){return`[${e.attrs.url}](${e.attrs.url})`}function Es(e){let t=e.content;if(t.length===0)return``;let n=t[0];if(!n)return``;let r=n.content.some(e=>e.type===`tableHeader`),i=e=>{let t=e.content.find(e=>e.type===`paragraph`);return t&&cs(t.content).trim()||` `},a=[];if(r){let e=n.content.map(i);a.push(`| ${e.join(` | `)} |`),a.push(`| ${e.map(()=>`---`).join(` | `)} |`);for(let e of t.slice(1)){let t=e.content.map(i);a.push(`| ${t.join(` | `)} |`)}}else{let e=n.content.length,r=Array(e).fill(` `);a.push(`| ${r.join(` | `)} |`),a.push(`| ${r.map(()=>`---`).join(` | `)} |`);for(let e of t){let t=e.content.map(i);a.push(`| ${t.join(` | `)} |`)}}return a.join(`
|
|
40
|
+
`)}function Ds(e){switch(e.type){case`paragraph`:return ds(e);case`heading`:return us(e);case`codeBlock`:return fs(e);case`rule`:return ps(e);case`blockquote`:return ms(e,Ds);case`bulletList`:return hs(e);case`orderedList`:return gs(e);case`taskList`:return _s(e);case`decisionList`:return vs(e);case`table`:return Es(e);case`panel`:return xs(e,Ds);case`expand`:return Ss(e,Ds);case`nestedExpand`:return Ss(e,Ds);case`mediaSingle`:return Cs(e);case`blockCard`:return ws(e);case`embedCard`:return Ts(e);case`layoutSection`:return Os(e);default:return``}}function Os(e){return e.content.map(e=>e.content.map(e=>Ds(e)).join(`
|
|
41
41
|
|
|
42
42
|
`)).join(`
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
-
`)}function
|
|
46
|
+
`)}function ks(e){return ns(e.content.map(e=>Ds(e)).filter(e=>e.length>0).join(`
|
|
47
47
|
|
|
48
|
-
`))}export{
|
|
48
|
+
`))}export{ks as adfToMd,is as mdToAdf};
|
package/dist/index.cjs
CHANGED
|
@@ -27,8 +27,9 @@ remark_parse = __toESM(remark_parse);
|
|
|
27
27
|
let remark_gfm = require("remark-gfm");
|
|
28
28
|
remark_gfm = __toESM(remark_gfm);
|
|
29
29
|
//#region src/md-to-adf/parser.ts
|
|
30
|
+
const processor = (0, unified.unified)().use(remark_parse.default).use(remark_gfm.default);
|
|
30
31
|
function parseMarkdown(markdown) {
|
|
31
|
-
return
|
|
32
|
+
return processor.parse(markdown);
|
|
32
33
|
}
|
|
33
34
|
//#endregion
|
|
34
35
|
//#region src/utils/language.ts
|
|
@@ -219,16 +220,141 @@ function transformBlockquote(node, transformChildren) {
|
|
|
219
220
|
};
|
|
220
221
|
}
|
|
221
222
|
//#endregion
|
|
223
|
+
//#region src/md-to-adf/transform/expand.ts
|
|
224
|
+
const DETAILS_OPENER = /^<details[^>]*>\s*<summary[^>]*>([\s\S]*?)<\/summary>\s*$/i;
|
|
225
|
+
const DETAILS_CLOSER = /^<\/details>\s*$/i;
|
|
226
|
+
const EXPAND_CONTENT_TYPES = new Set([
|
|
227
|
+
"paragraph",
|
|
228
|
+
"heading",
|
|
229
|
+
"bulletList",
|
|
230
|
+
"orderedList",
|
|
231
|
+
"codeBlock",
|
|
232
|
+
"blockquote",
|
|
233
|
+
"panel",
|
|
234
|
+
"rule",
|
|
235
|
+
"table",
|
|
236
|
+
"mediaGroup",
|
|
237
|
+
"mediaSingle",
|
|
238
|
+
"nestedExpand"
|
|
239
|
+
]);
|
|
240
|
+
function isExpandContent(node) {
|
|
241
|
+
return EXPAND_CONTENT_TYPES.has(node.type);
|
|
242
|
+
}
|
|
243
|
+
function parseSingleDetails(html) {
|
|
244
|
+
const detailsOpenMatch = /^<details[^>]*>\s*/i.exec(html);
|
|
245
|
+
if (!detailsOpenMatch) return null;
|
|
246
|
+
let offset = detailsOpenMatch[0].length;
|
|
247
|
+
const afterDetailsOpen = html.slice(offset);
|
|
248
|
+
const summaryOpenMatch = /^<summary[^>]*>/i.exec(afterDetailsOpen);
|
|
249
|
+
if (!summaryOpenMatch) return null;
|
|
250
|
+
offset += summaryOpenMatch[0].length;
|
|
251
|
+
const afterSummaryOpen = html.slice(offset);
|
|
252
|
+
const summaryCloseIdx = afterSummaryOpen.search(/<\/summary>/i);
|
|
253
|
+
if (summaryCloseIdx === -1) return null;
|
|
254
|
+
const title = afterSummaryOpen.slice(0, summaryCloseIdx);
|
|
255
|
+
offset += summaryCloseIdx + 10;
|
|
256
|
+
const bodyStart = offset;
|
|
257
|
+
const openRe = /<details[^>]*>/gi;
|
|
258
|
+
const closeRe = /<\/details>/gi;
|
|
259
|
+
let depth = 1;
|
|
260
|
+
openRe.lastIndex = bodyStart;
|
|
261
|
+
closeRe.lastIndex = bodyStart;
|
|
262
|
+
let closingIndex = -1;
|
|
263
|
+
while (depth > 0) {
|
|
264
|
+
const nextOpen = openRe.exec(html);
|
|
265
|
+
const nextClose = closeRe.exec(html);
|
|
266
|
+
if (!nextClose) return null;
|
|
267
|
+
if (nextOpen && nextOpen.index < nextClose.index) {
|
|
268
|
+
depth++;
|
|
269
|
+
closeRe.lastIndex = openRe.lastIndex;
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
depth--;
|
|
273
|
+
if (depth === 0) {
|
|
274
|
+
closingIndex = nextClose.index;
|
|
275
|
+
offset = nextClose.index + nextClose[0].length;
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
openRe.lastIndex = closeRe.lastIndex;
|
|
279
|
+
}
|
|
280
|
+
if (closingIndex === -1) return null;
|
|
281
|
+
if (html.slice(offset).trim().length > 0) return null;
|
|
282
|
+
return {
|
|
283
|
+
title,
|
|
284
|
+
body: html.slice(bodyStart, closingIndex)
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
function buildDetailsPairs(nodes) {
|
|
288
|
+
const pairs = /* @__PURE__ */ new Map();
|
|
289
|
+
const stack = [];
|
|
290
|
+
for (let idx = 0; idx < nodes.length; idx++) {
|
|
291
|
+
const n = nodes[idx];
|
|
292
|
+
if (n.type === "html") {
|
|
293
|
+
const value = n.value;
|
|
294
|
+
if (DETAILS_OPENER.test(value)) stack.push(idx);
|
|
295
|
+
else if (DETAILS_CLOSER.test(value)) {
|
|
296
|
+
const openerIdx = stack.pop();
|
|
297
|
+
if (openerIdx !== void 0) pairs.set(openerIdx, idx);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return pairs;
|
|
302
|
+
}
|
|
303
|
+
function transformExpandNodes(nodes, transformBlock) {
|
|
304
|
+
const result = [];
|
|
305
|
+
const pairs = buildDetailsPairs(nodes);
|
|
306
|
+
let i = 0;
|
|
307
|
+
while (i < nodes.length) {
|
|
308
|
+
const expand = tryTransformExpand(nodes, i, pairs, transformBlock);
|
|
309
|
+
if (expand) {
|
|
310
|
+
if (isExpandContent(expand.node)) result.push(expand.node);
|
|
311
|
+
i = expand.next;
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
const transformed = transformBlock(nodes[i]);
|
|
315
|
+
if (transformed && isExpandContent(transformed)) result.push(transformed);
|
|
316
|
+
i++;
|
|
317
|
+
}
|
|
318
|
+
return result;
|
|
319
|
+
}
|
|
320
|
+
function tryTransformExpand(nodes, i, detailsPairs, transformBlock) {
|
|
321
|
+
const node = nodes[i];
|
|
322
|
+
if (node.type !== "html") return null;
|
|
323
|
+
const parsedDetails = parseSingleDetails(node.value);
|
|
324
|
+
if (parsedDetails) {
|
|
325
|
+
const title = parsedDetails.title.trim();
|
|
326
|
+
const innerContent = parsedDetails.body.trim();
|
|
327
|
+
const content = innerContent ? transformExpandNodes(parseMarkdown(innerContent).children, transformBlock) : [];
|
|
328
|
+
return {
|
|
329
|
+
node: {
|
|
330
|
+
type: "expand",
|
|
331
|
+
attrs: { title },
|
|
332
|
+
content
|
|
333
|
+
},
|
|
334
|
+
next: i + 1
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
const openerMatch = DETAILS_OPENER.exec(node.value);
|
|
338
|
+
if (openerMatch) {
|
|
339
|
+
const title = (openerMatch[1] ?? "").trim();
|
|
340
|
+
const closerIdx = detailsPairs.get(i) ?? -1;
|
|
341
|
+
if (closerIdx !== -1) {
|
|
342
|
+
const content = transformExpandNodes(nodes.slice(i + 1, closerIdx), transformBlock);
|
|
343
|
+
return {
|
|
344
|
+
node: {
|
|
345
|
+
type: "expand",
|
|
346
|
+
attrs: { title },
|
|
347
|
+
content
|
|
348
|
+
},
|
|
349
|
+
next: closerIdx + 1
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
//#endregion
|
|
222
356
|
//#region src/md-to-adf/transform/inlines.ts
|
|
223
357
|
function transformHtmlBlock(node) {
|
|
224
|
-
const detailsMatch = /<details[^>]*>\s*<summary[^>]*>(.*?)<\/summary>([\s\S]*?)<\/details>/i.exec(node.value);
|
|
225
|
-
if (detailsMatch) return {
|
|
226
|
-
type: "paragraph",
|
|
227
|
-
content: [{
|
|
228
|
-
type: "text",
|
|
229
|
-
text: (detailsMatch[1] ?? "").trim()
|
|
230
|
-
}]
|
|
231
|
-
};
|
|
232
358
|
const stripped = node.value.replace(/<[^>]+>/g, "").trim();
|
|
233
359
|
if (!stripped) return null;
|
|
234
360
|
return {
|
|
@@ -382,12 +508,26 @@ function transformRoot(root) {
|
|
|
382
508
|
return {
|
|
383
509
|
version: 1,
|
|
384
510
|
type: "doc",
|
|
385
|
-
content: root.children
|
|
386
|
-
const result = transformBlock(node);
|
|
387
|
-
return result ? [result] : [];
|
|
388
|
-
})
|
|
511
|
+
content: transformNodes(root.children)
|
|
389
512
|
};
|
|
390
513
|
}
|
|
514
|
+
function transformNodes(nodes) {
|
|
515
|
+
const result = [];
|
|
516
|
+
const detailsPairs = buildDetailsPairs(nodes);
|
|
517
|
+
let i = 0;
|
|
518
|
+
while (i < nodes.length) {
|
|
519
|
+
const expand = tryTransformExpand(nodes, i, detailsPairs, transformBlock);
|
|
520
|
+
if (expand) {
|
|
521
|
+
result.push(expand.node);
|
|
522
|
+
i = expand.next;
|
|
523
|
+
continue;
|
|
524
|
+
}
|
|
525
|
+
const transformed = transformBlock(nodes[i]);
|
|
526
|
+
if (transformed) result.push(transformed);
|
|
527
|
+
i++;
|
|
528
|
+
}
|
|
529
|
+
return result;
|
|
530
|
+
}
|
|
391
531
|
function transformBlock(node) {
|
|
392
532
|
switch (node.type) {
|
|
393
533
|
case "heading": return transformHeading(node);
|
package/dist/index.mjs
CHANGED
|
@@ -2,8 +2,9 @@ import { unified } from "unified";
|
|
|
2
2
|
import remarkParse from "remark-parse";
|
|
3
3
|
import remarkGfm from "remark-gfm";
|
|
4
4
|
//#region src/md-to-adf/parser.ts
|
|
5
|
+
const processor = unified().use(remarkParse).use(remarkGfm);
|
|
5
6
|
function parseMarkdown(markdown) {
|
|
6
|
-
return
|
|
7
|
+
return processor.parse(markdown);
|
|
7
8
|
}
|
|
8
9
|
//#endregion
|
|
9
10
|
//#region src/utils/language.ts
|
|
@@ -194,16 +195,141 @@ function transformBlockquote(node, transformChildren) {
|
|
|
194
195
|
};
|
|
195
196
|
}
|
|
196
197
|
//#endregion
|
|
198
|
+
//#region src/md-to-adf/transform/expand.ts
|
|
199
|
+
const DETAILS_OPENER = /^<details[^>]*>\s*<summary[^>]*>([\s\S]*?)<\/summary>\s*$/i;
|
|
200
|
+
const DETAILS_CLOSER = /^<\/details>\s*$/i;
|
|
201
|
+
const EXPAND_CONTENT_TYPES = new Set([
|
|
202
|
+
"paragraph",
|
|
203
|
+
"heading",
|
|
204
|
+
"bulletList",
|
|
205
|
+
"orderedList",
|
|
206
|
+
"codeBlock",
|
|
207
|
+
"blockquote",
|
|
208
|
+
"panel",
|
|
209
|
+
"rule",
|
|
210
|
+
"table",
|
|
211
|
+
"mediaGroup",
|
|
212
|
+
"mediaSingle",
|
|
213
|
+
"nestedExpand"
|
|
214
|
+
]);
|
|
215
|
+
function isExpandContent(node) {
|
|
216
|
+
return EXPAND_CONTENT_TYPES.has(node.type);
|
|
217
|
+
}
|
|
218
|
+
function parseSingleDetails(html) {
|
|
219
|
+
const detailsOpenMatch = /^<details[^>]*>\s*/i.exec(html);
|
|
220
|
+
if (!detailsOpenMatch) return null;
|
|
221
|
+
let offset = detailsOpenMatch[0].length;
|
|
222
|
+
const afterDetailsOpen = html.slice(offset);
|
|
223
|
+
const summaryOpenMatch = /^<summary[^>]*>/i.exec(afterDetailsOpen);
|
|
224
|
+
if (!summaryOpenMatch) return null;
|
|
225
|
+
offset += summaryOpenMatch[0].length;
|
|
226
|
+
const afterSummaryOpen = html.slice(offset);
|
|
227
|
+
const summaryCloseIdx = afterSummaryOpen.search(/<\/summary>/i);
|
|
228
|
+
if (summaryCloseIdx === -1) return null;
|
|
229
|
+
const title = afterSummaryOpen.slice(0, summaryCloseIdx);
|
|
230
|
+
offset += summaryCloseIdx + 10;
|
|
231
|
+
const bodyStart = offset;
|
|
232
|
+
const openRe = /<details[^>]*>/gi;
|
|
233
|
+
const closeRe = /<\/details>/gi;
|
|
234
|
+
let depth = 1;
|
|
235
|
+
openRe.lastIndex = bodyStart;
|
|
236
|
+
closeRe.lastIndex = bodyStart;
|
|
237
|
+
let closingIndex = -1;
|
|
238
|
+
while (depth > 0) {
|
|
239
|
+
const nextOpen = openRe.exec(html);
|
|
240
|
+
const nextClose = closeRe.exec(html);
|
|
241
|
+
if (!nextClose) return null;
|
|
242
|
+
if (nextOpen && nextOpen.index < nextClose.index) {
|
|
243
|
+
depth++;
|
|
244
|
+
closeRe.lastIndex = openRe.lastIndex;
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
depth--;
|
|
248
|
+
if (depth === 0) {
|
|
249
|
+
closingIndex = nextClose.index;
|
|
250
|
+
offset = nextClose.index + nextClose[0].length;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
openRe.lastIndex = closeRe.lastIndex;
|
|
254
|
+
}
|
|
255
|
+
if (closingIndex === -1) return null;
|
|
256
|
+
if (html.slice(offset).trim().length > 0) return null;
|
|
257
|
+
return {
|
|
258
|
+
title,
|
|
259
|
+
body: html.slice(bodyStart, closingIndex)
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
function buildDetailsPairs(nodes) {
|
|
263
|
+
const pairs = /* @__PURE__ */ new Map();
|
|
264
|
+
const stack = [];
|
|
265
|
+
for (let idx = 0; idx < nodes.length; idx++) {
|
|
266
|
+
const n = nodes[idx];
|
|
267
|
+
if (n.type === "html") {
|
|
268
|
+
const value = n.value;
|
|
269
|
+
if (DETAILS_OPENER.test(value)) stack.push(idx);
|
|
270
|
+
else if (DETAILS_CLOSER.test(value)) {
|
|
271
|
+
const openerIdx = stack.pop();
|
|
272
|
+
if (openerIdx !== void 0) pairs.set(openerIdx, idx);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return pairs;
|
|
277
|
+
}
|
|
278
|
+
function transformExpandNodes(nodes, transformBlock) {
|
|
279
|
+
const result = [];
|
|
280
|
+
const pairs = buildDetailsPairs(nodes);
|
|
281
|
+
let i = 0;
|
|
282
|
+
while (i < nodes.length) {
|
|
283
|
+
const expand = tryTransformExpand(nodes, i, pairs, transformBlock);
|
|
284
|
+
if (expand) {
|
|
285
|
+
if (isExpandContent(expand.node)) result.push(expand.node);
|
|
286
|
+
i = expand.next;
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
const transformed = transformBlock(nodes[i]);
|
|
290
|
+
if (transformed && isExpandContent(transformed)) result.push(transformed);
|
|
291
|
+
i++;
|
|
292
|
+
}
|
|
293
|
+
return result;
|
|
294
|
+
}
|
|
295
|
+
function tryTransformExpand(nodes, i, detailsPairs, transformBlock) {
|
|
296
|
+
const node = nodes[i];
|
|
297
|
+
if (node.type !== "html") return null;
|
|
298
|
+
const parsedDetails = parseSingleDetails(node.value);
|
|
299
|
+
if (parsedDetails) {
|
|
300
|
+
const title = parsedDetails.title.trim();
|
|
301
|
+
const innerContent = parsedDetails.body.trim();
|
|
302
|
+
const content = innerContent ? transformExpandNodes(parseMarkdown(innerContent).children, transformBlock) : [];
|
|
303
|
+
return {
|
|
304
|
+
node: {
|
|
305
|
+
type: "expand",
|
|
306
|
+
attrs: { title },
|
|
307
|
+
content
|
|
308
|
+
},
|
|
309
|
+
next: i + 1
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
const openerMatch = DETAILS_OPENER.exec(node.value);
|
|
313
|
+
if (openerMatch) {
|
|
314
|
+
const title = (openerMatch[1] ?? "").trim();
|
|
315
|
+
const closerIdx = detailsPairs.get(i) ?? -1;
|
|
316
|
+
if (closerIdx !== -1) {
|
|
317
|
+
const content = transformExpandNodes(nodes.slice(i + 1, closerIdx), transformBlock);
|
|
318
|
+
return {
|
|
319
|
+
node: {
|
|
320
|
+
type: "expand",
|
|
321
|
+
attrs: { title },
|
|
322
|
+
content
|
|
323
|
+
},
|
|
324
|
+
next: closerIdx + 1
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
//#endregion
|
|
197
331
|
//#region src/md-to-adf/transform/inlines.ts
|
|
198
332
|
function transformHtmlBlock(node) {
|
|
199
|
-
const detailsMatch = /<details[^>]*>\s*<summary[^>]*>(.*?)<\/summary>([\s\S]*?)<\/details>/i.exec(node.value);
|
|
200
|
-
if (detailsMatch) return {
|
|
201
|
-
type: "paragraph",
|
|
202
|
-
content: [{
|
|
203
|
-
type: "text",
|
|
204
|
-
text: (detailsMatch[1] ?? "").trim()
|
|
205
|
-
}]
|
|
206
|
-
};
|
|
207
333
|
const stripped = node.value.replace(/<[^>]+>/g, "").trim();
|
|
208
334
|
if (!stripped) return null;
|
|
209
335
|
return {
|
|
@@ -357,12 +483,26 @@ function transformRoot(root) {
|
|
|
357
483
|
return {
|
|
358
484
|
version: 1,
|
|
359
485
|
type: "doc",
|
|
360
|
-
content: root.children
|
|
361
|
-
const result = transformBlock(node);
|
|
362
|
-
return result ? [result] : [];
|
|
363
|
-
})
|
|
486
|
+
content: transformNodes(root.children)
|
|
364
487
|
};
|
|
365
488
|
}
|
|
489
|
+
function transformNodes(nodes) {
|
|
490
|
+
const result = [];
|
|
491
|
+
const detailsPairs = buildDetailsPairs(nodes);
|
|
492
|
+
let i = 0;
|
|
493
|
+
while (i < nodes.length) {
|
|
494
|
+
const expand = tryTransformExpand(nodes, i, detailsPairs, transformBlock);
|
|
495
|
+
if (expand) {
|
|
496
|
+
result.push(expand.node);
|
|
497
|
+
i = expand.next;
|
|
498
|
+
continue;
|
|
499
|
+
}
|
|
500
|
+
const transformed = transformBlock(nodes[i]);
|
|
501
|
+
if (transformed) result.push(transformed);
|
|
502
|
+
i++;
|
|
503
|
+
}
|
|
504
|
+
return result;
|
|
505
|
+
}
|
|
366
506
|
function transformBlock(node) {
|
|
367
507
|
switch (node.type) {
|
|
368
508
|
case "heading": return transformHeading(node);
|