mkimp_react 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +4 -4
- package/dist/renderer/HLJS.d.ts +2 -1
- package/dist/renderer/LaTeX.d.ts +2 -1
- package/dist/renderer/RenderRootToken.d.ts +5 -7
- package/package.json +2 -5
package/README.md
CHANGED
|
@@ -42,8 +42,8 @@ interface MkImpRendererProps {
|
|
|
42
42
|
mdContent: string;
|
|
43
43
|
metadata?: MetaData;
|
|
44
44
|
overrideArticle?: (props: ArticleProps) => JSX.Element;
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;
|
|
46
|
+
highlightText?: (content: string, language: string | undefined) => string;
|
|
47
47
|
overrideRenderer?: Partial<TokenRendering>;
|
|
48
48
|
overrideSection?: (props: SectionProps) => JSX.Element;
|
|
49
49
|
renderTarget?: RenderTarget;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Lt=Object.create;var J=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var Ht=Object.getPrototypeOf,Et=Object.prototype.hasOwnProperty;var vt=(e,t)=>{for(var o in t)J(e,o,{get:t[o],enumerable:!0})},et=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Mt(t))!Et.call(e,i)&&i!==o&&J(e,i,{get:()=>t[i],enumerable:!(r=Pt(t,i))||r.enumerable});return e};var N=(e,t,o)=>(o=e!=null?Lt(Ht(e)):{},et(t||!e||!e.__esModule?J(o,"default",{value:e,enumerable:!0}):o,e)),It=e=>et(J({},"__esModule",{value:!0}),e);var Xt={};vt(Xt,{default:()=>Ct});module.exports=It(Xt);var K=require("react"),xt=require("mkimp");function $(e,t="",o=new Map){if(e==null)return o;if(typeof e!="object")return t&&o.set(t,e),o;if(Array.isArray(e))return e.forEach((r,i)=>{$(r,t?`${t}[${i}]`:`${i}`,o)}),o;for(let[r,i]of Object.entries(e)){let a=t?`${t}.${r}`:r;$(i,a,o)}return o}var ht=require("mkimp");var tt=require("react/jsx-runtime");function Y({children:e}){return(0,tt.jsx)("article",{className:"md-article",role:"document","aria-label":"Page content",children:e})}var ot=require("react"),nt=N(require("katex"),1),rt=N(require("sanitize-html"),1),V=require("react/jsx-runtime");function W({content:e,inline:t,displayMode:o}){let r=(0,ot.useMemo)(()=>{let i=nt.default.renderToString(e,{strict:!1,throwOnError:!1,output:"htmlAndMathml",displayMode:o});return(0,rt.default)(i)},[e,o]);return t?(0,V.jsx)("span",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:r}}):(0,V.jsx)("div",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:r}})}var Q=require("react/jsx-runtime");function G({headingId:e,children:t}){return e?(0,Q.jsx)("section",{className:"md-section",role:"region","aria-labelledby":e,children:t}):(0,Q.jsx)("section",{children:t})}var it=require("react"),Z=N(require("highlight.js"),1),at=N(require("sanitize-html"),1),m=require("react/jsx-runtime");function j({content:e,language:t,from:o}){let r=t?` language-${t}`:"",i=(0,it.useMemo)(()=>{let a=t?Z.default.highlight(e,{language:t}):Z.default.highlightAuto(e);return(0,at.default)(a.value)},[e,t]);if(o!==void 0){let a=i.split(/\r?\n/);return(0,m.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:(0,m.jsx)("code",{"aria-label":"Code",className:`md-code${r}`,children:(0,m.jsxs)("table",{className:"md-code-table",children:[(0,m.jsxs)("colgroup",{children:[(0,m.jsx)("col",{}),(0,m.jsx)("col",{className:"md-table-line-space"}),(0,m.jsx)("col",{})]}),(0,m.jsx)("tbody",{children:a.map((l,s)=>{let c=`line-${o}-${s}`;return(0,m.jsxs)("tr",{className:"md-code-row",children:[(0,m.jsx)("td",{className:"md-number-ln",children:s+o}),(0,m.jsx)("td",{}),(0,m.jsx)("td",{className:"md-code-ln",dangerouslySetInnerHTML:{__html:l||" "}})]},c)})})]})})})}return(0,m.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:(0,m.jsx)("code",{"aria-label":"Code",className:`md-code${r}`,dangerouslySetInnerHTML:{__html:i}})})}var A=require("react/jsx-runtime");function L({token:e,context:t}){let o=t.currentRenderer[e.type];return o?o({token:e,context:t}):(0,A.jsx)(A.Fragment,{})}var P=require("react/jsx-runtime");function n({tokens:e,context:t}){return(0,P.jsx)(P.Fragment,{children:e.map((o,r)=>{let i=`${o.type}-${r}`;return(0,P.jsx)(L,{token:o,context:t},i)})})}var lt=require("react/jsx-runtime");function ee({context:e,renderTarget:t,children:o}){if(t==="article"){let r=e.Article;return(0,lt.jsx)(r,{children:o})}return o}var d=require("react/jsx-runtime");function te({token:e,context:t}){let o=e.isUnderline?"md-heading md-h-underline":"md-heading";switch(e.depth){case 1:return(0,d.jsx)("h1",{id:e.id,"aria-level":e.depth,className:o,children:(0,d.jsx)(n,{tokens:e.tokens,context:t})});case 2:return(0,d.jsx)("h2",{id:e.id,"aria-level":e.depth,className:o,children:(0,d.jsx)(n,{tokens:e.tokens,context:t})});case 3:return(0,d.jsx)("h3",{id:e.id,"aria-level":e.depth,className:o,children:(0,d.jsx)(n,{tokens:e.tokens,context:t})});case 4:return(0,d.jsx)("h4",{id:e.id,"aria-level":e.depth,className:o,children:(0,d.jsx)(n,{tokens:e.tokens,context:t})});case 5:return(0,d.jsx)("h5",{id:e.id,"aria-level":e.depth,className:o,children:(0,d.jsx)(n,{tokens:e.tokens,context:t})});default:return(0,d.jsx)("h6",{id:e.id,"aria-level":e.depth,className:o,children:(0,d.jsx)(n,{tokens:e.tokens,context:t})})}}var M=require("react/jsx-runtime");function oe({token:e,context:t}){let o=e.from!==void 0||e.to!==void 0?e.from||1:void 0,r=t.HLJS;return e.lang&&(e.lang!=="mermaid"||e.lang==="mermaid"&&o!==void 0)?(0,M.jsx)(r,{content:e.content,language:e.lang,from:o}):e.lang==="mermaid"?(0,M.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-mermaid mermaid",children:e.content}):(0,M.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:(0,M.jsx)("code",{"aria-label":"Code",className:"md-code",children:e.content})})}var g=require("react/jsx-runtime");function ne({token:e,context:t}){for(let o of e.branches){if(o.condition==="else")return(0,g.jsx)(n,{tokens:o.tokens,context:t});let r=t.metadata.get(o.condition);if(typeof r=="boolean"&&r===!0)return(0,g.jsx)(n,{tokens:o.tokens,context:t})}return(0,g.jsx)(g.Fragment,{})}var mt=require("react/jsx-runtime");function re(){return(0,mt.jsx)("hr",{className:"md-line",role:"separator","aria-hidden":"true"})}var ie=require("react/jsx-runtime");function ae({token:e,context:t}){return(0,ie.jsx)("blockquote",{className:"md-blockquote",role:"note","aria-label":"A quote from the author",children:(0,ie.jsx)(n,{tokens:e.tokens,context:t})})}var H=require("react/jsx-runtime");function le({token:e,context:t}){let o=`md-${e.ordered?"ol":"ul"}list`;if(e.ordered){let r=e.startAt?Number(e.startAt):void 0;return(0,H.jsx)("ol",{role:"list",className:o,start:r,children:(0,H.jsx)(n,{tokens:e.items,context:t})})}return(0,H.jsx)("ul",{role:"list",className:o,children:(0,H.jsx)(n,{tokens:e.items,context:t})})}var E=require("react/jsx-runtime");function me({token:e,context:t}){return(0,E.jsxs)("li",{role:"listitem",className:e.task?"md-taskitem":"md-listitem",children:[e.task&&(0,E.jsx)("input",{className:"md-checkbox",type:"checkbox",disabled:!0,checked:e.checked}),(0,E.jsx)(n,{tokens:e.tokens,context:t})]})}var u=require("react/jsx-runtime");function se({token:e,context:t}){return(0,u.jsxs)("table",{className:"md-table",role:"table",children:[(0,u.jsx)("thead",{className:"md-thead",role:"rowgroup",children:(0,u.jsx)("tr",{className:"md-htablerow",children:(0,u.jsx)(n,{tokens:e.header,context:t})})}),(0,u.jsx)("tbody",{className:"md-tbody",role:"rowgroup",children:e.rows.map((o,r)=>{let i=`row-${r}`;return(0,u.jsx)("tr",{className:"md-tablerow",children:(0,u.jsx)(n,{tokens:o,context:t})},i)})})]})}var v=require("react/jsx-runtime");function de({token:e,context:t}){return e.header?(0,v.jsx)("th",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:(0,v.jsx)(n,{tokens:e.tokens,context:t})}):(0,v.jsx)("td",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:(0,v.jsx)(n,{tokens:e.tokens,context:t})})}var pe=require("react/jsx-runtime");function fe({token:e,context:t}){return(0,pe.jsx)("dl",{className:"md-deflist",children:(0,pe.jsx)(n,{tokens:e.items,context:t})})}var k=require("react/jsx-runtime");function ce({token:e,context:t}){return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("dt",{className:"md-defterm",children:(0,k.jsx)(n,{tokens:e.term,context:t})}),e.definitions.map((o,r)=>{let i=`def-${r}`;return(0,k.jsx)("dd",{className:"md-defdef",children:(0,k.jsx)(n,{tokens:o,context:t})},i)})]})}var st=require("react/jsx-runtime");function ue({token:e,context:t}){let o=t.LaTeX;return(0,st.jsx)(o,{content:e.text,displayMode:e.displayMode,inline:e.inline})}var f=require("react/jsx-runtime");function ke({token:e,context:t}){return e.inline?(0,f.jsxs)("label",{className:"md-spoiler",children:[(0,f.jsx)("input",{className:"md-spoiltrigger",type:"checkbox",hidden:!0}),(0,f.jsx)("span",{className:"md-spoilertext",children:(0,f.jsx)(n,{tokens:e.tokens,context:t})})]}):(0,f.jsxs)("div",{className:"md-spoiler-toggle",children:[(0,f.jsx)("input",{type:"checkbox",id:`md-spoiler-label-${e.index}`,hidden:!0}),(0,f.jsx)("label",{htmlFor:`md-spoiler-label-${e.index}`,className:"md-spoiler-header",children:(0,f.jsx)(n,{tokens:e.title,context:t})}),(0,f.jsx)("div",{className:"md-spoiler-content",children:(0,f.jsx)(n,{tokens:e.tokens,context:t})})]})}var dt=require("react/jsx-runtime");function Te({token:e,context:t}){return(0,dt.jsx)(n,{tokens:e.tokens,context:t})}var pt=N(require("sanitize-html"),1),ft=require("react/jsx-runtime");function be({token:e,context:t}){let o=t.overrideSanitization??pt.default,r=t.sanitize?o(e.content):e.content;return(0,ft.jsx)("div",{"data-id":"html-react",dangerouslySetInnerHTML:{__html:r},style:{display:"contents"}})}var ye=require("react/jsx-runtime");function ge({token:e,context:t}){return(0,ye.jsx)("p",{className:"md-paragraph",children:(0,ye.jsx)(n,{tokens:e.tokens,context:t})})}var h=require("react/jsx-runtime");function he({context:e}){let t=e.footnoteRefs.size,o=[];for(let r=1;r<=t;r++){let i=`fn-${r-1}`,a=e.footnoteRefs.get(r),l=e.footnoteDefs.get(a);l!==void 0?o.push((0,h.jsx)("li",{className:"md-fnitem",id:`fn:${a}`,children:(0,h.jsx)(n,{tokens:l,context:e})},i)):o.push((0,h.jsx)("li",{className:"md-fnitem",id:`fn:${a}`,children:`[${a}]`},i))}return(0,h.jsx)("section",{className:"md-footnotes",children:(0,h.jsx)("ol",{className:"md-fnlist",dir:"auto",children:o})})}var D=require("react/jsx-runtime");function xe({token:e,context:t}){return(0,D.jsx)("p",{className:"md-paragraph",children:(0,D.jsx)("small",{className:"md-small",children:(0,D.jsx)(n,{tokens:e.tokens,context:t})})})}var ct=require("mkimp");var p=require("react/jsx-runtime");function O({nodes:e,context:t}){return e.length===0?(0,p.jsx)(p.Fragment,{}):(0,p.jsx)("ul",{role:"list",className:"md-tableofcontent",children:e.map((o,r)=>{let{token:i,children:a}=o,l=i.id||`toc-${i.depth}-${r}`;return(0,p.jsxs)("li",{role:"listitem",className:"md-listitem",children:[i.id&&i.id.length>0?(0,p.jsxs)("a",{className:"md-link",href:`#${i.id}`,children:[i.headingIndex,(0,p.jsx)(n,{tokens:i.tokens,context:t})]}):(0,p.jsxs)(p.Fragment,{children:[i.headingIndex,(0,p.jsx)(n,{tokens:i.tokens,context:t})]}),(0,p.jsx)(O,{nodes:a,context:t})]},l)})})}var ut=require("react/jsx-runtime");function Ce({context:e}){let t=(0,ct.generateTableOfContent)(e.tableOfContents);return(0,ut.jsx)(O,{nodes:t,context:e})}var z=require("mkimp"),y=require("react/jsx-runtime");function Re({token:e,context:t}){if(!t.abbrs||t.abbrs.length===0)return(0,y.jsx)(y.Fragment,{children:e.text});let o=[],r=0;for(;r<e.text.length;){let i=!1,a="";for(;r<e.text.length&&z.WHITESPACE_CHARS.has(e.text[r]);)a+=e.text[r++];if(a&&o.push(a),r>=e.text.length)break;for(let l of t.abbrs){let s=e.text.slice(r,r+l.abbr.length),c=s===l.abbr,x=r+l.abbr.length===e.text.length||z.WHITESPACE_CHARS.has(e.text[r+l.abbr.length]);if(c&&x){o.push((0,y.jsx)("abbr",{title:l.title,children:s},`abbr-${r}`)),r+=l.abbr.length,i=!0;break}}if(!i){let l=r;for(;r<e.text.length&&!z.WHITESPACE_CHARS.has(e.text[r]);)r++;o.push(e.text.slice(l,r))}}return(0,y.jsx)(y.Fragment,{children:o})}var Se=require("react/jsx-runtime");function Ne({token:e}){let t=e.attributes.vid,o=e.title||"YouTube",r=e.attributes.width||"560",i=e.attributes.height||"315",a=e.attributes.start,l=e.attributes.allowfullscreen!=="false",s=new URLSearchParams;a&&s.set("start",a);let c=`https://www.youtube.com/embed/${t}${s.toString()?"?"+s.toString():""}`;return(0,Se.jsx)("div",{className:"md-youtube",children:(0,Se.jsx)("iframe",{width:r,height:i,src:c,title:o,allowFullScreen:l,style:{border:0}})})}var Le=require("react/jsx-runtime");function Pe({token:e,context:t}){return(0,Le.jsx)("u",{className:"md-overline",children:(0,Le.jsx)(n,{tokens:e.tokens,context:t})})}var B=require("react/jsx-runtime");function Me({token:e}){return(0,B.jsx)(B.Fragment,{children:e.value})}var kt=require("react/jsx-runtime");function He({token:e}){return(0,kt.jsx)("code",{"aria-label":"Code",className:"md-codespan",children:e.text})}var Tt=require("mkimp");var _=require("react/jsx-runtime");function Ee({token:e,context:t}){let o=(0,Tt.cleanUrl)(e.href);if(o===null)return(0,_.jsx)(n,{tokens:e.label,context:t});let r=o.startsWith("#");return(0,_.jsx)("a",{className:"md-link",href:o,title:e.title,target:r?"_blank":void 0,rel:r?"noopener":void 0,children:(0,_.jsx)(n,{tokens:e.label,context:t})})}var bt=require("mkimp");var I=require("react/jsx-runtime");function ve({token:e,context:t}){let o=t.reflinks.get(e.ref);if(o===void 0)return(0,I.jsx)(n,{tokens:e.label,context:t});let r=(0,bt.cleanUrl)(o.link);if(r===null)return(0,I.jsx)(n,{tokens:e.label,context:t});let i=r.startsWith("#");return(0,I.jsx)("a",{className:"md-link",href:r,title:o.title,target:i?"_blank":void 0,rel:i?"noopener":void 0,children:(0,I.jsx)(n,{tokens:e.label,context:t})})}var yt=require("mkimp"),w=require("react/jsx-runtime");function Ie({token:e}){let t=(0,yt.cleanUrl)(e.href);return t===null?(0,w.jsx)(w.Fragment,{children:e.alt}):(0,w.jsx)("img",{src:t,alt:e.alt,className:"md-image",title:e.title})}var we=require("react/jsx-runtime");function Xe({token:e,context:t}){return(0,we.jsx)("sup",{id:`fnref:${e.ref}`,children:(0,we.jsx)("a",{className:"md-link",href:`#fn:${e.ref}`,children:`[${t.footnoteIndexRefs.get(e.ref)??-1}]`})})}var gt=require("react/jsx-runtime");function Je(){return(0,gt.jsx)("br",{})}var $e=require("react/jsx-runtime");function Ae({token:e,context:t}){return(0,$e.jsx)("mark",{className:"md-highlight",children:(0,$e.jsx)(n,{tokens:e.tokens,context:t})})}var De=require("react/jsx-runtime");function Oe({token:e,context:t}){return(0,De.jsx)("del",{className:"md-strikethrough",children:(0,De.jsx)(n,{tokens:e.tokens,context:t})})}var T=require("react/jsx-runtime");function ze({token:e,context:t}){let o=t.emojis[e.name];if(o===void 0)return(0,T.jsx)(T.Fragment,{children:`:${e.name}:`});switch(o.type){case"img":return(0,T.jsx)("img",{alt:o.alt??e.name,src:o.url,width:o.width??20,height:o.height??20});case"i":return(0,T.jsx)("i",{className:o.className});default:return(0,T.jsx)(T.Fragment,{children:o.char})}}var Be=require("react/jsx-runtime");function _e({token:e,context:t}){return(0,Be.jsx)("u",{className:"md-underline",children:(0,Be.jsx)(n,{tokens:e.tokens,context:t})})}var Ke=require("react/jsx-runtime");function Fe({token:e,context:t}){return(0,Ke.jsx)("strong",{className:"md-bold",children:(0,Ke.jsx)(n,{tokens:e.tokens,context:t})})}var Ue=require("react/jsx-runtime");function qe({token:e,context:t}){return(0,Ue.jsx)("em",{className:"md-italic",children:(0,Ue.jsx)(n,{tokens:e.tokens,context:t})})}var Ye=require("react/jsx-runtime");function Ve({token:e,context:t}){return(0,Ye.jsx)("sup",{className:"md-sup",children:(0,Ye.jsx)(n,{tokens:e.tokens,context:t})})}var We=require("react/jsx-runtime");function Qe({token:e,context:t}){return(0,We.jsx)("sub",{className:"md-sub",children:(0,We.jsx)(n,{tokens:e.tokens,context:t})})}var b=require("react/jsx-runtime"),wt={heading:te,codeblock:oe,conditional:ne,horizontal:re,blockquote:ae,list:le,listItem:me,table:se,cell:de,definitionList:fe,definitionListItem:ce,tex:ue,spoiler:ke,include:Te,html:be,paragraph:ge,footnoteEnd:he,small:xe,tableOfContent:Ce,text:Re,youtubeEmbed:Ne,overline:Pe,metadata:Me,codespan:He,link:Ee,reflink:ve,image:Ie,footnoteRef:Xe,newline:Je,highlight:Ae,strikethrough:Oe,emoji:ze,underline:_e,bold:Fe,italic:qe,sup:Ve,sub:Qe};function Ge({root:e,sanitize:t,withSection:o,renderTarget:r,overrideRenderer:i,overrideLaTeX:a,overrideHLJS:l,overrideArticle:s,overrideSanitization:c,overrideSection:x}){if(!e)return(0,b.jsx)(b.Fragment,{});let C={abbrs:e.abbrs,currentRenderer:{...wt,...i},emojis:e.emojis,footnoteDefs:e.footnoteDefs,footnoteIndexRefs:e.footnoteIndexRefs,footnoteRefs:e.footnoteRefs,metadata:e.metadata,reflinks:e.reflinks,sanitize:t,tableOfContents:e.tableOfContents,Article:s??Y,LaTeX:a??W,HLJS:l??j,overrideSanitization:c};if(!o)return(0,b.jsx)(ee,{context:C,renderTarget:r,children:(0,b.jsx)(n,{tokens:e.tokens,context:C})});let F=x??G;return(0,ht.generateSections)(e.tokens).map((R,U)=>{let X=R.find(S=>S.type==="heading"),q=X?X.id:void 0,je=`sec-${U}`;return(0,b.jsx)(F,{headingId:q,children:R.map((S,St)=>{let Nt=`section-${St}`;return(0,b.jsx)(L,{token:S,context:C},Nt)})},je)})}var Rt=require("react/jsx-runtime");function Ct({emojis:e,frontMatter:t,include:o,includeCode:r,mdContent:i,metadata:a,overrideArticle:l,overrideHLJS:s,overrideLaTeX:c,overrideRenderer:x,overrideSection:C,renderTarget:F="raw",sanitize:Ze=!0,tabulation:R=4,withSection:U=!1}){let[X,q]=(0,K.useState)();return(0,K.useEffect)(()=>{(async()=>{let S=await xt.Lexer.lex(i,{tabulation:R,metadata:$(a),emojis:e,frontMatter:t,include:o,includeCode:r});q(S)})()},[e,t,o,r,i,a,R]),(0,Rt.jsx)(Ge,{renderTarget:F,root:X,sanitize:Ze,overrideRenderer:x,overrideLaTeX:c,overrideHLJS:s,overrideArticle:l,overrideSection:C,withSection:U})}
|
|
1
|
+
"use strict";var Nt=Object.create;var A=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames;var Mt=Object.getPrototypeOf,Pt=Object.prototype.hasOwnProperty;var Ht=(e,t)=>{for(var o in t)A(e,o,{get:t[o],enumerable:!0})},et=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Lt(t))!Pt.call(e,i)&&i!==o&&A(e,i,{get:()=>t[i],enumerable:!(r=St(t,i))||r.enumerable});return e};var Y=(e,t,o)=>(o=e!=null?Nt(Mt(e)):{},et(t||!e||!e.__esModule?A(o,"default",{value:e,enumerable:!0}):o,e)),vt=e=>et(A({},"__esModule",{value:!0}),e);var wt={};Ht(wt,{default:()=>ht});module.exports=vt(wt);var F=require("react"),yt=require("mkimp");function X(e,t="",o=new Map){if(e==null)return o;if(typeof e!="object")return t&&o.set(t,e),o;if(Array.isArray(e))return e.forEach((r,i)=>{X(r,t?`${t}[${i}]`:`${i}`,o)}),o;for(let[r,i]of Object.entries(e)){let a=t?`${t}.${r}`:r;X(i,a,o)}return o}var bt=require("mkimp");var tt=require("react/jsx-runtime");function V({children:e}){return(0,tt.jsx)("article",{className:"md-article",role:"document","aria-label":"Page content",children:e})}var W=require("react/jsx-runtime");function Q({headingId:e,children:t}){return e?(0,W.jsx)("section",{className:"md-section",role:"region","aria-labelledby":e,children:t}):(0,W.jsx)("section",{children:t})}var J=require("react/jsx-runtime");function S({token:e,context:t}){let o=t.currentRenderer[e.type];return o?o({token:e,context:t}):(0,J.jsx)(J.Fragment,{})}var L=require("react/jsx-runtime");function n({tokens:e,context:t}){return(0,L.jsx)(L.Fragment,{children:e.map((o,r)=>{let i=`${o.type}-${r}`;return(0,L.jsx)(S,{token:o,context:t},i)})})}var ot=require("react/jsx-runtime");function G({context:e,renderTarget:t,children:o}){if(t==="article"){let r=e.Article;return(0,ot.jsx)(r,{children:o})}return o}var s=require("react/jsx-runtime");function Z({token:e,context:t}){let o=e.isUnderline?"md-heading md-h-underline":"md-heading";switch(e.depth){case 1:return(0,s.jsx)("h1",{id:e.id,"aria-level":e.depth,className:o,children:(0,s.jsx)(n,{tokens:e.tokens,context:t})});case 2:return(0,s.jsx)("h2",{id:e.id,"aria-level":e.depth,className:o,children:(0,s.jsx)(n,{tokens:e.tokens,context:t})});case 3:return(0,s.jsx)("h3",{id:e.id,"aria-level":e.depth,className:o,children:(0,s.jsx)(n,{tokens:e.tokens,context:t})});case 4:return(0,s.jsx)("h4",{id:e.id,"aria-level":e.depth,className:o,children:(0,s.jsx)(n,{tokens:e.tokens,context:t})});case 5:return(0,s.jsx)("h5",{id:e.id,"aria-level":e.depth,className:o,children:(0,s.jsx)(n,{tokens:e.tokens,context:t})});default:return(0,s.jsx)("h6",{id:e.id,"aria-level":e.depth,className:o,children:(0,s.jsx)(n,{tokens:e.tokens,context:t})})}}var nt=require("react"),rt=Y(require("sanitize-html"),1),m=require("react/jsx-runtime");function j({content:e,language:t,from:o,callback:r}){let i=t?` language-${t}`:"",a=(0,nt.useMemo)(()=>(0,rt.default)(r(e,t)),[e,t,r]);if(o!==void 0){let l=a.split(/\r?\n/);return(0,m.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:(0,m.jsx)("code",{"aria-label":"Code",className:`md-code${i}`,children:(0,m.jsxs)("table",{className:"md-code-table",children:[(0,m.jsxs)("colgroup",{children:[(0,m.jsx)("col",{}),(0,m.jsx)("col",{className:"md-table-line-space"}),(0,m.jsx)("col",{})]}),(0,m.jsx)("tbody",{children:l.map((p,c)=>{let b=`line-${o}-${c}`;return(0,m.jsxs)("tr",{className:"md-code-row",children:[(0,m.jsx)("td",{className:"md-number-ln",children:c+o}),(0,m.jsx)("td",{}),(0,m.jsx)("td",{className:"md-code-ln",dangerouslySetInnerHTML:{__html:p||" "}})]},b)})})]})})})}return(0,m.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:(0,m.jsx)("code",{"aria-label":"Code",className:`md-code${i}`,dangerouslySetInnerHTML:{__html:a}})})}var M=require("react/jsx-runtime");function ee({token:e,context:t}){let o=e.from!==void 0||e.to!==void 0?e.from||1:void 0;return t.highlightText&&e.lang&&(e.lang!=="mermaid"||e.lang==="mermaid"&&o!==void 0)?(0,M.jsx)(j,{content:e.content,language:e.lang,from:o,callback:t.highlightText}):e.lang==="mermaid"?(0,M.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-mermaid mermaid",children:e.content}):(0,M.jsx)("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:(0,M.jsx)("code",{"aria-label":"Code",className:"md-code",children:e.content})})}var h=require("react/jsx-runtime");function te({token:e,context:t}){for(let o of e.branches){if(o.condition==="else")return(0,h.jsx)(n,{tokens:o.tokens,context:t});let r=t.metadata.get(o.condition);if(typeof r=="boolean"&&r===!0)return(0,h.jsx)(n,{tokens:o.tokens,context:t})}return(0,h.jsx)(h.Fragment,{})}var it=require("react/jsx-runtime");function oe(){return(0,it.jsx)("hr",{className:"md-line",role:"separator","aria-hidden":"true"})}var ne=require("react/jsx-runtime");function re({token:e,context:t}){return(0,ne.jsx)("blockquote",{className:"md-blockquote",role:"note","aria-label":"A quote from the author",children:(0,ne.jsx)(n,{tokens:e.tokens,context:t})})}var P=require("react/jsx-runtime");function ie({token:e,context:t}){let o=`md-${e.ordered?"ol":"ul"}list`;if(e.ordered){let r=e.startAt?Number(e.startAt):void 0;return(0,P.jsx)("ol",{role:"list",className:o,start:r,children:(0,P.jsx)(n,{tokens:e.items,context:t})})}return(0,P.jsx)("ul",{role:"list",className:o,children:(0,P.jsx)(n,{tokens:e.items,context:t})})}var H=require("react/jsx-runtime");function ae({token:e,context:t}){return(0,H.jsxs)("li",{role:"listitem",className:e.task?"md-taskitem":"md-listitem",children:[e.task&&(0,H.jsx)("input",{className:"md-checkbox",type:"checkbox",disabled:!0,checked:e.checked}),(0,H.jsx)(n,{tokens:e.tokens,context:t})]})}var u=require("react/jsx-runtime");function le({token:e,context:t}){return(0,u.jsxs)("table",{className:"md-table",role:"table",children:[(0,u.jsx)("thead",{className:"md-thead",role:"rowgroup",children:(0,u.jsx)("tr",{className:"md-htablerow",children:(0,u.jsx)(n,{tokens:e.header,context:t})})}),(0,u.jsx)("tbody",{className:"md-tbody",role:"rowgroup",children:e.rows.map((o,r)=>{let i=`row-${r}`;return(0,u.jsx)("tr",{className:"md-tablerow",children:(0,u.jsx)(n,{tokens:o,context:t})},i)})})]})}var v=require("react/jsx-runtime");function me({token:e,context:t}){return e.header?(0,v.jsx)("th",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:(0,v.jsx)(n,{tokens:e.tokens,context:t})}):(0,v.jsx)("td",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:(0,v.jsx)(n,{tokens:e.tokens,context:t})})}var se=require("react/jsx-runtime");function de({token:e,context:t}){return(0,se.jsx)("dl",{className:"md-deflist",children:(0,se.jsx)(n,{tokens:e.items,context:t})})}var k=require("react/jsx-runtime");function pe({token:e,context:t}){return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("dt",{className:"md-defterm",children:(0,k.jsx)(n,{tokens:e.term,context:t})}),e.definitions.map((o,r)=>{let i=`def-${r}`;return(0,k.jsx)("dd",{className:"md-defdef",children:(0,k.jsx)(n,{tokens:o,context:t})},i)})]})}var at=require("react"),lt=Y(require("sanitize-html"),1),fe=require("react/jsx-runtime");function ce({content:e,inline:t,displayMode:o,callback:r}){let i=(0,at.useMemo)(()=>(0,lt.default)(r(e,o)),[e,o,r]);return t?(0,fe.jsx)("span",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:i},style:{display:o?"inline-block":void 0}}):(0,fe.jsx)("div",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:i}})}var I=require("react/jsx-runtime");function ue({token:e,context:t}){let o=t.convertLaTeXToHTML;return o!==void 0?(0,I.jsx)(ce,{content:e.text,displayMode:e.displayMode,inline:e.inline,callback:o}):(0,I.jsx)(I.Fragment,{children:e.text})}var f=require("react/jsx-runtime");function ke({token:e,context:t}){return e.inline?(0,f.jsxs)("label",{className:"md-spoiler",children:[(0,f.jsx)("input",{className:"md-spoiltrigger",type:"checkbox",hidden:!0}),(0,f.jsx)("span",{className:"md-spoilertext",children:(0,f.jsx)(n,{tokens:e.tokens,context:t})})]}):(0,f.jsxs)("div",{className:"md-spoiler-toggle",children:[(0,f.jsx)("input",{type:"checkbox",id:`md-spoiler-label-${e.index}`,hidden:!0}),(0,f.jsx)("label",{htmlFor:`md-spoiler-label-${e.index}`,className:"md-spoiler-header",children:(0,f.jsx)(n,{tokens:e.title,context:t})}),(0,f.jsx)("div",{className:"md-spoiler-content",children:(0,f.jsx)(n,{tokens:e.tokens,context:t})})]})}var mt=require("react/jsx-runtime");function Te({token:e,context:t}){return(0,mt.jsx)(n,{tokens:e.tokens,context:t})}var st=Y(require("sanitize-html"),1),dt=require("react/jsx-runtime");function ge({token:e,context:t}){let o=t.overrideSanitization??st.default,r=t.sanitize?o(e.content):e.content;return(0,dt.jsx)("div",{"data-id":"html-react",dangerouslySetInnerHTML:{__html:r},style:{display:"contents"}})}var be=require("react/jsx-runtime");function ye({token:e,context:t}){return(0,be.jsx)("p",{className:"md-paragraph",children:(0,be.jsx)(n,{tokens:e.tokens,context:t})})}var x=require("react/jsx-runtime");function he({context:e}){let t=e.footnoteRefs.size,o=[];for(let r=1;r<=t;r++){let i=`fn-${r-1}`,a=e.footnoteRefs.get(r),l=e.footnoteDefs.get(a);l!==void 0?o.push((0,x.jsx)("li",{className:"md-fnitem",id:`fn:${a}`,children:(0,x.jsx)(n,{tokens:l,context:e})},i)):o.push((0,x.jsx)("li",{className:"md-fnitem",id:`fn:${a}`,children:`[${a}]`},i))}return(0,x.jsx)("section",{className:"md-footnotes",children:(0,x.jsx)("ol",{className:"md-fnlist",dir:"auto",children:o})})}var D=require("react/jsx-runtime");function xe({token:e,context:t}){return(0,D.jsx)("p",{className:"md-paragraph",children:(0,D.jsx)("small",{className:"md-small",children:(0,D.jsx)(n,{tokens:e.tokens,context:t})})})}var pt=require("mkimp");var d=require("react/jsx-runtime");function O({nodes:e,context:t}){return e.length===0?(0,d.jsx)(d.Fragment,{}):(0,d.jsx)("ul",{role:"list",className:"md-tableofcontent",children:e.map((o,r)=>{let{token:i,children:a}=o,l=i.id||`toc-${i.depth}-${r}`;return(0,d.jsxs)("li",{role:"listitem",className:"md-listitem",children:[i.id&&i.id.length>0?(0,d.jsxs)("a",{className:"md-link",href:`#${i.id}`,children:[i.headingIndex,(0,d.jsx)(n,{tokens:i.tokens,context:t})]}):(0,d.jsxs)(d.Fragment,{children:[i.headingIndex,(0,d.jsx)(n,{tokens:i.tokens,context:t})]}),(0,d.jsx)(O,{nodes:a,context:t})]},l)})})}var ft=require("react/jsx-runtime");function Ce({context:e}){let t=(0,pt.generateTableOfContent)(e.tableOfContents);return(0,ft.jsx)(O,{nodes:t,context:e})}var z=require("mkimp"),y=require("react/jsx-runtime");function Re({token:e,context:t}){if(!t.abbrs||t.abbrs.length===0)return(0,y.jsx)(y.Fragment,{children:e.text});let o=[],r=0;for(;r<e.text.length;){let i=!1,a="";for(;r<e.text.length&&z.WHITESPACE_CHARS.has(e.text[r]);)a+=e.text[r++];if(a&&o.push(a),r>=e.text.length)break;for(let l of t.abbrs){let p=e.text.slice(r,r+l.abbr.length),c=p===l.abbr,b=r+l.abbr.length===e.text.length||z.WHITESPACE_CHARS.has(e.text[r+l.abbr.length]);if(c&&b){o.push((0,y.jsx)("abbr",{title:l.title,children:p},`abbr-${r}`)),r+=l.abbr.length,i=!0;break}}if(!i){let l=r;for(;r<e.text.length&&!z.WHITESPACE_CHARS.has(e.text[r]);)r++;o.push(e.text.slice(l,r))}}return(0,y.jsx)(y.Fragment,{children:o})}var Ne=require("react/jsx-runtime");function Se({token:e}){let t=e.attributes.vid,o=e.title||"YouTube",r=e.attributes.width||"560",i=e.attributes.height||"315",a=e.attributes.start,l=e.attributes.allowfullscreen!=="false",p=new URLSearchParams;a&&p.set("start",a);let c=`https://www.youtube.com/embed/${t}${p.toString()?"?"+p.toString():""}`;return(0,Ne.jsx)("div",{className:"md-youtube",children:(0,Ne.jsx)("iframe",{width:r,height:i,src:c,title:o,allowFullScreen:l,style:{border:0}})})}var Le=require("react/jsx-runtime");function Me({token:e,context:t}){return(0,Le.jsx)("u",{className:"md-overline",children:(0,Le.jsx)(n,{tokens:e.tokens,context:t})})}var B=require("react/jsx-runtime");function Pe({token:e}){return(0,B.jsx)(B.Fragment,{children:e.value})}var ct=require("react/jsx-runtime");function He({token:e}){return(0,ct.jsx)("code",{"aria-label":"Code",className:"md-codespan",children:e.text})}var ut=require("mkimp");var _=require("react/jsx-runtime");function ve({token:e,context:t}){let o=(0,ut.cleanUrl)(e.href);if(o===null)return(0,_.jsx)(n,{tokens:e.label,context:t});let r=o.startsWith("#");return(0,_.jsx)("a",{className:"md-link",href:o,title:e.title,target:r?"_blank":void 0,rel:r?"noopener":void 0,children:(0,_.jsx)(n,{tokens:e.label,context:t})})}var kt=require("mkimp");var w=require("react/jsx-runtime");function Ie({token:e,context:t}){let o=t.reflinks.get(e.ref);if(o===void 0)return(0,w.jsx)(n,{tokens:e.label,context:t});let r=(0,kt.cleanUrl)(o.link);if(r===null)return(0,w.jsx)(n,{tokens:e.label,context:t});let i=r.startsWith("#");return(0,w.jsx)("a",{className:"md-link",href:r,title:o.title,target:i?"_blank":void 0,rel:i?"noopener":void 0,children:(0,w.jsx)(n,{tokens:e.label,context:t})})}var Tt=require("mkimp"),E=require("react/jsx-runtime");function we({token:e}){let t=(0,Tt.cleanUrl)(e.href);return t===null?(0,E.jsx)(E.Fragment,{children:e.alt}):(0,E.jsx)("img",{src:t,alt:e.alt,className:"md-image",title:e.title})}var Ee=require("react/jsx-runtime");function $e({token:e,context:t}){return(0,Ee.jsx)("sup",{id:`fnref:${e.ref}`,children:(0,Ee.jsx)("a",{className:"md-link",href:`#fn:${e.ref}`,children:`[${t.footnoteIndexRefs.get(e.ref)??-1}]`})})}var gt=require("react/jsx-runtime");function Ae(){return(0,gt.jsx)("br",{})}var Xe=require("react/jsx-runtime");function Je({token:e,context:t}){return(0,Xe.jsx)("mark",{className:"md-highlight",children:(0,Xe.jsx)(n,{tokens:e.tokens,context:t})})}var De=require("react/jsx-runtime");function Oe({token:e,context:t}){return(0,De.jsx)("del",{className:"md-strikethrough",children:(0,De.jsx)(n,{tokens:e.tokens,context:t})})}var T=require("react/jsx-runtime");function ze({token:e,context:t}){let o=t.emojis[e.name];if(o===void 0)return(0,T.jsx)(T.Fragment,{children:`:${e.name}:`});switch(o.type){case"img":return(0,T.jsx)("img",{alt:o.alt??e.name,src:o.url,width:o.width??20,height:o.height??20});case"i":return(0,T.jsx)("i",{className:o.className});default:return(0,T.jsx)(T.Fragment,{children:o.char})}}var Be=require("react/jsx-runtime");function _e({token:e,context:t}){return(0,Be.jsx)("u",{className:"md-underline",children:(0,Be.jsx)(n,{tokens:e.tokens,context:t})})}var Fe=require("react/jsx-runtime");function Ke({token:e,context:t}){return(0,Fe.jsx)("strong",{className:"md-bold",children:(0,Fe.jsx)(n,{tokens:e.tokens,context:t})})}var Ue=require("react/jsx-runtime");function qe({token:e,context:t}){return(0,Ue.jsx)("em",{className:"md-italic",children:(0,Ue.jsx)(n,{tokens:e.tokens,context:t})})}var Ye=require("react/jsx-runtime");function Ve({token:e,context:t}){return(0,Ye.jsx)("sup",{className:"md-sup",children:(0,Ye.jsx)(n,{tokens:e.tokens,context:t})})}var We=require("react/jsx-runtime");function Qe({token:e,context:t}){return(0,We.jsx)("sub",{className:"md-sub",children:(0,We.jsx)(n,{tokens:e.tokens,context:t})})}var g=require("react/jsx-runtime"),It={heading:Z,codeblock:ee,conditional:te,horizontal:oe,blockquote:re,list:ie,listItem:ae,table:le,cell:me,definitionList:de,definitionListItem:pe,tex:ue,spoiler:ke,include:Te,html:ge,paragraph:ye,footnoteEnd:he,small:xe,tableOfContent:Ce,text:Re,youtubeEmbed:Se,overline:Me,metadata:Pe,codespan:He,link:ve,reflink:Ie,image:we,footnoteRef:$e,newline:Ae,highlight:Je,strikethrough:Oe,emoji:ze,underline:_e,bold:Ke,italic:qe,sup:Ve,sub:Qe};function Ge({root:e,sanitize:t,withSection:o,renderTarget:r,overrideRenderer:i,convertLaTeXToHTML:a,highlightText:l,overrideArticle:p,overrideSanitization:c,overrideSection:b}){if(!e)return(0,g.jsx)(g.Fragment,{});let C={abbrs:e.abbrs,currentRenderer:{...It,...i},emojis:e.emojis,footnoteDefs:e.footnoteDefs,footnoteIndexRefs:e.footnoteIndexRefs,footnoteRefs:e.footnoteRefs,metadata:e.metadata,reflinks:e.reflinks,sanitize:t,tableOfContents:e.tableOfContents,Article:p??V,convertLaTeXToHTML:a,highlightText:l,overrideSanitization:c};if(!o)return(0,g.jsx)(G,{context:C,renderTarget:r,children:(0,g.jsx)(n,{tokens:e.tokens,context:C})});let K=b??Q;return(0,bt.generateSections)(e.tokens).map((R,U)=>{let $=R.find(N=>N.type==="heading"),q=$?$.id:void 0,je=`sec-${U}`;return(0,g.jsx)(K,{headingId:q,children:R.map((N,Ct)=>{let Rt=`section-${Ct}`;return(0,g.jsx)(S,{token:N,context:C},Rt)})},je)})}var xt=require("react/jsx-runtime");function ht({emojis:e,frontMatter:t,include:o,includeCode:r,mdContent:i,metadata:a,overrideArticle:l,overrideHLJS:p,overrideLaTeX:c,overrideRenderer:b,overrideSection:C,renderTarget:K="raw",sanitize:Ze=!0,tabulation:R=4,withSection:U=!1}){let[$,q]=(0,F.useState)();return(0,F.useEffect)(()=>{(async()=>{let N=await yt.Lexer.lex(i,{tabulation:R,metadata:X(a),emojis:e,frontMatter:t,include:o,includeCode:r});q(N)})()},[e,t,o,r,i,a,R]),(0,xt.jsx)(Ge,{renderTarget:K,root:$,sanitize:Ze,overrideRenderer:b,overrideLaTeX:c,overrideHLJS:p,overrideArticle:l,overrideSection:C,withSection:U})}
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/index.tsx", "../src/utils/flattenMapData.ts", "../src/renderer/RenderRootToken.tsx", "../src/renderer/Article.tsx", "../src/renderer/
|
|
4
|
-
"sourcesContent": ["import { useEffect, useState, type JSX } from 'react';\nimport {\n type EmojiRecord,\n Lexer,\n type RenderTarget,\n type RootToken,\n} from 'mkimp';\nimport { flattenMetaData } from './utils/flattenMapData';\nimport RenderRootToken, {\n type TokenRendering,\n} from './renderer/RenderRootToken';\nimport { type ArticleProps } from './renderer/Article';\nimport { type LaTeXProps } from './renderer/LaTeX';\nimport { type SectionProps } from './renderer/Section';\nimport { type HLJSProps } from './renderer/HLJS';\n\nexport {\n type TokenRendering,\n type TokenContext,\n} from './renderer/RenderRootToken';\nexport { type ArticleProps } from './renderer/Article';\nexport { type LaTeXProps } from './renderer/LaTeX';\nexport { type SectionProps } from './renderer/Section';\nexport { type HLJSProps } from './renderer/HLJS';\n\nexport type MetaDataPrimitives =\n | string\n | bigint\n | number\n | boolean\n | null\n | undefined;\nexport type MetaData =\n | MetaDataPrimitives\n | MetaData[]\n | { [key: string | number | symbol]: MetaData };\n\nexport interface MkImpRendererProps {\n emojis?: Record<string, EmojiRecord>;\n frontMatter?: (content: string) => Promise<MetaData>;\n include?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n includeCode?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n mdContent: string;\n metadata?: MetaData;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideHLJS?: (props: HLJSProps) => JSX.Element;\n overrideLaTeX?: (props: LaTeXProps) => JSX.Element;\n overrideRenderer?: Partial<TokenRendering>;\n overrideSection?: (props: SectionProps) => JSX.Element;\n renderTarget?: RenderTarget;\n sanitize?: boolean;\n tabulation?: number;\n withSection?: boolean;\n}\n\nexport default function MkImpRenderer({\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n overrideArticle,\n overrideHLJS,\n overrideLaTeX,\n overrideRenderer,\n overrideSection,\n renderTarget = 'raw',\n sanitize = true,\n tabulation = 4,\n withSection = false,\n}: MkImpRendererProps) {\n const [rootToken, setRootToken] = useState<RootToken>();\n\n useEffect(() => {\n const generateMarkdown = async () => {\n const rootToken = await Lexer.lex(mdContent, {\n tabulation,\n metadata: flattenMetaData(metadata),\n emojis,\n frontMatter,\n include,\n includeCode,\n });\n setRootToken(rootToken);\n };\n generateMarkdown();\n }, [\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n tabulation,\n ]);\n\n return (\n <RenderRootToken\n {...{\n renderTarget,\n root: rootToken,\n sanitize,\n overrideRenderer,\n overrideLaTeX,\n overrideHLJS,\n overrideArticle,\n overrideSection,\n withSection,\n }}\n />\n );\n}\n", "import { MetaData } from 'src';\n\ntype MapValue = string | number | bigint | boolean;\n\nexport function flattenMetaData(\n data: MetaData,\n prefix = '',\n result = new Map<string, MapValue>()\n): Map<string, MapValue> {\n // Handle Primitives (The \"Leaf\" nodes)\n if (data === null || data === undefined) return result;\n\n if (typeof data !== 'object') {\n if (prefix) result.set(prefix, data as MapValue);\n return result;\n }\n\n // Handle Arrays\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n flattenMetaData(\n item,\n prefix ? `${prefix}[${index}]` : `${index}`,\n result\n );\n });\n return result;\n }\n\n // Handle Objects\n for (const [key, value] of Object.entries(data)) {\n const newKey = prefix ? `${prefix}.${key}` : key;\n flattenMetaData(value, newKey, result);\n }\n\n return result;\n}\n", "import {\n type TokenType,\n type RootToken,\n type ExtractToken,\n type MdToken,\n type EmojiRecord,\n type HeadingToken,\n type AbbrToken,\n type LinkRef,\n type RenderTarget,\n generateSections,\n} from 'mkimp';\nimport { type JSX } from 'react';\nimport Article, { type ArticleProps } from './Article';\nimport LaTeX, { type LaTeXProps } from './LaTeX';\nimport Section, { type SectionProps } from './Section';\nimport HLJS, { type HLJSProps } from './HLJS';\nimport RenderTokens from './RenderTokens';\nimport RenderCurrentTarget from './RenderCurrentTarget';\nimport RenderToken from './RenderToken';\nimport Heading from './tokens/Heading';\nimport Codeblock from './tokens/Codeblock';\nimport Conditional from './tokens/Conditional';\nimport Horizontal from './tokens/Horizontal';\nimport Blockquote from './tokens/Blockquote';\nimport List from './tokens/List';\nimport ListItem from './tokens/ListItem';\nimport Table from './tokens/Table';\nimport Cell from './tokens/Cell';\nimport DefinitionList from './tokens/DefinitionList';\nimport DefinitionListItem from './tokens/DefinitionListItem';\nimport Tex from './tokens/Tex';\nimport Spoiler from './tokens/Spoiler';\nimport Include from './tokens/Include';\nimport Html from './tokens/Html';\nimport Paragraph from './tokens/Paragraph';\nimport FootnoteEnd from './tokens/FootnoteEnd';\nimport Small from './tokens/Small';\nimport TableOfContent from './tokens/TableOfContent';\nimport Text from './tokens/Text';\nimport YoutubeEmbed from './tokens/YoutubeEmbed';\nimport Overline from './tokens/Overline';\nimport Metadata from './tokens/Metadata';\nimport Codespan from './tokens/Codespan';\nimport Link from './tokens/Link';\nimport RefLink from './tokens/RefLink';\nimport Image from './tokens/Image';\nimport FootnoteRef from './tokens/FootnoteRef';\nimport NewLine from './tokens/NewLine';\nimport Highlight from './tokens/Highlight';\nimport Strikethrough from './tokens/Strikethrough';\nimport Emoji from './tokens/Emoji';\nimport Underline from './tokens/Underline';\nimport Bold from './tokens/Bold';\nimport Italic from './tokens/Italic';\nimport Sup from './tokens/Sup';\nimport Sub from './tokens/Sub';\n\nexport type TokenRendering = {\n [K in TokenType]: (props: TokenContext<ExtractToken<K>>) => JSX.Element;\n};\n\nexport type TokenContext<T extends MdToken> = {\n token: T;\n context: RendererContext;\n};\n\nexport interface RendererContext {\n abbrs: AbbrToken[];\n currentRenderer: TokenRendering;\n emojis: Record<string, EmojiRecord>;\n footnoteDefs: Map<string, MdToken[]>;\n footnoteIndexRefs: Map<string, number>;\n footnoteRefs: Map<number, string>;\n metadata: Map<string, string | number | boolean | bigint>;\n reflinks: Map<string, LinkRef>;\n tableOfContents: HeadingToken[];\n sanitize: boolean;\n Article: (props: ArticleProps) => JSX.Element;\n LaTeX: (props: LaTeXProps) => JSX.Element;\n HLJS: (props: HLJSProps) => JSX.Element;\n overrideSanitization?: (html: string) => string;\n}\n\nconst RENDERER: TokenRendering = {\n heading: Heading,\n codeblock: Codeblock,\n conditional: Conditional,\n horizontal: Horizontal,\n blockquote: Blockquote,\n list: List,\n listItem: ListItem,\n table: Table,\n cell: Cell,\n definitionList: DefinitionList,\n definitionListItem: DefinitionListItem,\n tex: Tex,\n spoiler: Spoiler,\n include: Include,\n html: Html,\n paragraph: Paragraph,\n footnoteEnd: FootnoteEnd,\n small: Small,\n tableOfContent: TableOfContent,\n text: Text,\n youtubeEmbed: YoutubeEmbed,\n overline: Overline,\n metadata: Metadata,\n codespan: Codespan,\n link: Link,\n reflink: RefLink,\n image: Image,\n footnoteRef: FootnoteRef,\n newline: NewLine,\n highlight: Highlight,\n strikethrough: Strikethrough,\n emoji: Emoji,\n underline: Underline,\n bold: Bold,\n italic: Italic,\n sup: Sup,\n sub: Sub,\n};\n\nexport interface RenderRootTokenProps {\n root: RootToken | undefined;\n sanitize: boolean;\n withSection: boolean;\n renderTarget: RenderTarget;\n overrideRenderer?: Partial<TokenRendering>;\n overrideLaTeX?: (props: LaTeXProps) => JSX.Element;\n overrideHLJS?: (props: HLJSProps) => JSX.Element;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideSanitization?: (html: string) => string;\n overrideSection?: (props: SectionProps) => JSX.Element;\n}\n\nexport default function RenderRootToken({\n root,\n sanitize,\n withSection,\n renderTarget,\n overrideRenderer,\n overrideLaTeX,\n overrideHLJS,\n overrideArticle,\n overrideSanitization,\n overrideSection,\n}: RenderRootTokenProps) {\n if (!root) return <></>;\n const context: RendererContext = {\n abbrs: root.abbrs,\n currentRenderer: { ...RENDERER, ...overrideRenderer },\n emojis: root.emojis,\n footnoteDefs: root.footnoteDefs,\n footnoteIndexRefs: root.footnoteIndexRefs,\n footnoteRefs: root.footnoteRefs,\n metadata: root.metadata,\n reflinks: root.reflinks,\n sanitize,\n tableOfContents: root.tableOfContents,\n Article: overrideArticle ?? Article,\n LaTeX: overrideLaTeX ?? LaTeX,\n HLJS: overrideHLJS ?? HLJS,\n overrideSanitization,\n };\n if (!withSection) {\n return (\n <RenderCurrentTarget context={context} renderTarget={renderTarget}>\n <RenderTokens tokens={root.tokens} context={context} />\n </RenderCurrentTarget>\n );\n }\n const SectionPart = overrideSection ?? Section;\n const sections: MdToken[][] = generateSections(root.tokens);\n\n return sections.map((section, i) => {\n const headingToken = section.find((t) => t.type === 'heading');\n const headingId = headingToken ? headingToken.id : undefined;\n const sKey = `sec-${i}`;\n return (\n <SectionPart key={sKey} headingId={headingId}>\n {section.map((token, si) => {\n const sectionKey = `section-${si}`;\n return (\n <RenderToken key={sectionKey} token={token} context={context} />\n );\n })}\n </SectionPart>\n );\n });\n}\n", "import { type JSX } from 'react';\n\nexport interface ArticleProps {\n children: JSX.Element;\n}\n\nexport default function Article({ children }: ArticleProps) {\n return (\n <article className=\"md-article\" role=\"document\" aria-label=\"Page content\">\n {children}\n </article>\n );\n}\n", "import { useMemo } from 'react';\nimport KaTeX from 'katex';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface LaTeXProps {\n content: string;\n inline: boolean;\n displayMode: boolean;\n}\n\nexport default function LaTeX({ content, inline, displayMode }: LaTeXProps) {\n const html = useMemo(() => {\n const latex = KaTeX.renderToString(content, {\n strict: false,\n throwOnError: false,\n output: 'htmlAndMathml',\n displayMode,\n });\n return sanitizeHtml(latex);\n }, [content, displayMode]);\n if (inline) {\n return (\n <span\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n }\n return (\n <div\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n}\n", "export interface SectionProps {\n headingId: string | undefined;\n children: React.ReactNode;\n}\n\nexport default function Section({ headingId, children }: SectionProps) {\n if (headingId) {\n return (\n <section className=\"md-section\" role=\"region\" aria-labelledby={headingId}>\n {children}\n </section>\n );\n }\n return <section>{children}</section>;\n}\n", "import { useMemo, type JSX } from 'react';\nimport hljs from 'highlight.js';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface HLJSProps {\n content: string;\n language?: string;\n from?: number;\n}\n\nexport default function HLJS({\n content,\n language,\n from,\n}: HLJSProps): JSX.Element {\n const lang = language ? ` language-${language}` : '';\n\n const highlightedHtml = useMemo(() => {\n const result = language\n ? hljs.highlight(content, { language })\n : hljs.highlightAuto(content);\n return sanitizeHtml(result.value);\n }, [content, language]);\n\n if (from !== undefined) {\n const lines = highlightedHtml.split(/\\r?\\n/);\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className={`md-code${lang}`}>\n <table className=\"md-code-table\">\n <colgroup>\n <col />\n <col className=\"md-table-line-space\" />\n <col />\n </colgroup>\n <tbody>\n {lines.map((line, i) => {\n const lineKey = `line-${from}-${i}`;\n return (\n <tr key={lineKey} className=\"md-code-row\">\n <td className=\"md-number-ln\">{i + from}</td>\n <td></td>\n <td\n className=\"md-code-ln\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: line || ' ' }}\n />\n </tr>\n );\n })}\n </tbody>\n </table>\n </code>\n </pre>\n );\n }\n\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code\n aria-label=\"Code\"\n className={`md-code${lang}`}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n </pre>\n );\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\n\nexport default function RenderToken({\n token,\n context,\n}: {\n token: MdToken;\n context: RendererContext;\n}) {\n const renderFn = context.currentRenderer[token.type];\n if (!renderFn) return <></>;\n return renderFn({\n token: token,\n context,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\nimport RenderToken from './RenderToken';\n\nexport default function RenderTokens({\n tokens,\n context,\n}: {\n tokens: MdToken[];\n context: RendererContext;\n}) {\n return (\n <>\n {tokens.map((token, i) => {\n const tokenKey = `${token.type}-${i}`;\n return <RenderToken key={tokenKey} token={token} context={context} />;\n })}\n </>\n );\n}\n", "import type { RenderTarget } from 'mkimp';\nimport type { RendererContext } from './RenderRootToken';\n\nexport interface RenderCurrentTargetProps {\n context: RendererContext;\n renderTarget: RenderTarget;\n children: React.JSX.Element;\n}\n\nexport default function RenderCurrentTarget({\n context,\n renderTarget,\n children,\n}: RenderCurrentTargetProps) {\n if (renderTarget === 'article') {\n const Article = context.Article;\n return <Article>{children}</Article>;\n }\n return children;\n}\n", "import { type HeadingToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Heading({\n token,\n context,\n}: TokenContext<HeadingToken>) {\n const className = token.isUnderline\n ? 'md-heading md-h-underline'\n : 'md-heading';\n switch (token.depth) {\n case 1:\n return (\n <h1 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h1>\n );\n case 2:\n return (\n <h2 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h2>\n );\n case 3:\n return (\n <h3 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h3>\n );\n case 4:\n return (\n <h4 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h4>\n );\n case 5:\n return (\n <h5 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h5>\n );\n default:\n return (\n <h6 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h6>\n );\n }\n}\n", "import { type CodeBlockToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Codeblock({\n token,\n context,\n}: TokenContext<CodeBlockToken>) {\n const from =\n token.from !== undefined || token.to !== undefined\n ? token.from || 1\n : undefined;\n const HLJS = context.HLJS;\n if (\n token.lang &&\n (token.lang !== 'mermaid' ||\n (token.lang === 'mermaid' && from !== undefined))\n ) {\n return <HLJS content={token.content} language={token.lang} from={from} />;\n }\n if (token.lang === 'mermaid') {\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-mermaid mermaid\">\n {token.content}\n </pre>\n );\n }\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className=\"md-code\">\n {token.content}\n </code>\n </pre>\n );\n}\n", "import { type ConditionalToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Conditional({\n token,\n context,\n}: TokenContext<ConditionalToken>) {\n for (const branch of token.branches) {\n if (branch.condition === 'else') {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n const data = context.metadata.get(branch.condition);\n if (typeof data === 'boolean' && data === true) {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n }\n return <></>;\n}\n", "export default function Horizontal() {\n return <hr className=\"md-line\" role=\"separator\" aria-hidden=\"true\" />;\n}\n", "import { type BlockQuoteToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Blockquote({\n token,\n context,\n}: TokenContext<BlockQuoteToken>) {\n return (\n <blockquote\n className=\"md-blockquote\"\n role=\"note\"\n aria-label=\"A quote from the author\"\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </blockquote>\n );\n}\n", "import { type ListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function List({ token, context }: TokenContext<ListToken>) {\n const className = `md-${token.ordered ? 'ol' : 'ul'}list`;\n if (token.ordered) {\n const start = token.startAt ? Number(token.startAt) : undefined;\n return (\n <ol role=\"list\" className={className} start={start}>\n <RenderTokens tokens={token.items} context={context} />\n </ol>\n );\n }\n return (\n <ul role=\"list\" className={className}>\n <RenderTokens tokens={token.items} context={context} />\n </ul>\n );\n}\n", "import { type ListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function ListItem({\n token,\n context,\n}: TokenContext<ListItemToken>) {\n return (\n <li role=\"listitem\" className={token.task ? 'md-taskitem' : 'md-listitem'}>\n {token.task && (\n <input\n className=\"md-checkbox\"\n type=\"checkbox\"\n disabled\n checked={token.checked}\n />\n )}\n <RenderTokens tokens={token.tokens} context={context} />\n </li>\n );\n}\n", "import { type TableToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Table({ token, context }: TokenContext<TableToken>) {\n return (\n <table className=\"md-table\" role=\"table\">\n <thead className=\"md-thead\" role=\"rowgroup\">\n <tr className=\"md-htablerow\">\n <RenderTokens tokens={token.header} context={context} />\n </tr>\n </thead>\n <tbody className=\"md-tbody\" role=\"rowgroup\">\n {token.rows.map((row, i) => {\n const rowKey = `row-${i}`;\n return (\n <tr key={rowKey} className=\"md-tablerow\">\n <RenderTokens tokens={row} context={context} />\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n", "import { type TableCellToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Cell({ token, context }: TokenContext<TableCellToken>) {\n if (token.header) {\n return (\n <th\n className=\"md-tablecell\"\n style={{\n textAlign: token.align !== 'default' ? token.align : undefined,\n }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </th>\n );\n }\n return (\n <td\n className=\"md-tablecell\"\n style={{ textAlign: token.align !== 'default' ? token.align : undefined }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </td>\n );\n}\n", "import { type DefinitionListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionList({\n token,\n context,\n}: TokenContext<DefinitionListToken>) {\n return (\n <dl className=\"md-deflist\">\n <RenderTokens tokens={token.items} context={context} />\n </dl>\n );\n}\n", "import { type DefinitionListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionListItem({\n token,\n context,\n}: TokenContext<DefinitionListItemToken>) {\n return (\n <>\n <dt className=\"md-defterm\">\n <RenderTokens tokens={token.term} context={context} />\n </dt>\n {token.definitions.map((def, i) => {\n const defKey = `def-${i}`;\n return (\n <dd key={defKey} className=\"md-defdef\">\n <RenderTokens tokens={def} context={context} />\n </dd>\n );\n })}\n </>\n );\n}\n", "import { type TexToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Tex({ token, context }: TokenContext<TexToken>) {\n const LaTeX = context.LaTeX;\n return (\n <LaTeX\n content={token.text}\n displayMode={token.displayMode}\n inline={token.inline}\n />\n );\n}\n", "import { type SpoilerToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Spoiler({\n token,\n context,\n}: TokenContext<SpoilerToken>) {\n if (token.inline) {\n return (\n <label className=\"md-spoiler\">\n <input className=\"md-spoiltrigger\" type=\"checkbox\" hidden />\n <span className=\"md-spoilertext\">\n <RenderTokens tokens={token.tokens} context={context} />\n </span>\n </label>\n );\n }\n return (\n <div className=\"md-spoiler-toggle\">\n <input type=\"checkbox\" id={`md-spoiler-label-${token.index}`} hidden />\n <label\n htmlFor={`md-spoiler-label-${token.index}`}\n className=\"md-spoiler-header\"\n >\n <RenderTokens tokens={token.title} context={context} />\n </label>\n <div className=\"md-spoiler-content\">\n <RenderTokens tokens={token.tokens} context={context} />\n </div>\n </div>\n );\n}\n", "import { type IncludeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Include({\n token,\n context,\n}: TokenContext<IncludeToken>) {\n return <RenderTokens tokens={token.tokens} context={context} />;\n}\n", "import { type HTMLToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport sanitizeHtml from 'sanitize-html';\n\nexport default function Html({ token, context }: TokenContext<HTMLToken>) {\n const sanitization = context.overrideSanitization ?? sanitizeHtml;\n const html = context.sanitize ? sanitization(token.content) : token.content;\n return (\n <div\n data-id=\"html-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n display: 'contents',\n }}\n />\n );\n}\n", "import { type ParagraphToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Paragraph({\n token,\n context,\n}: TokenContext<ParagraphToken>) {\n return (\n <p className=\"md-paragraph\">\n <RenderTokens tokens={token.tokens} context={context} />\n </p>\n );\n}\n", "import { type FootnoteEndToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport { type JSX } from 'react';\nimport RenderTokens from '../RenderTokens';\n\nexport default function FootnoteEnd({\n context,\n}: TokenContext<FootnoteEndToken>) {\n const refSize = context.footnoteRefs.size;\n const result: JSX.Element[] = [];\n for (let i = 1; i <= refSize; i++) {\n const fnKey = `fn-${i - 1}`;\n const ref = context.footnoteRefs.get(i)!;\n const def = context.footnoteDefs.get(ref);\n if (def !== undefined) {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>\n <RenderTokens tokens={def} context={context} />\n </li>\n );\n } else {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>{`[${ref}]`}</li>\n );\n }\n }\n return (\n <section className=\"md-footnotes\">\n <ol className=\"md-fnlist\" dir=\"auto\">\n {result}\n </ol>\n </section>\n );\n}\n", "import { type SmallToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Small({ token, context }: TokenContext<SmallToken>) {\n return (\n <p className=\"md-paragraph\">\n <small className=\"md-small\">\n <RenderTokens tokens={token.tokens} context={context} />\n </small>\n </p>\n );\n}\n", "import { generateTableOfContent, type TableOfContentToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport TOCNodes from './TOCNodes';\n\nexport default function TableOfContent({\n context,\n}: TokenContext<TableOfContentToken>) {\n const nodes = generateTableOfContent(context.tableOfContents);\n return <TOCNodes {...{ nodes, context }} />;\n}\n", "import { type TOCNode } from 'mkimp';\nimport { type RendererContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function TOCNodes({\n nodes,\n context,\n}: {\n nodes: TOCNode[];\n context: RendererContext;\n}) {\n if (nodes.length === 0) return <></>;\n return (\n <ul role=\"list\" className=\"md-tableofcontent\">\n {nodes.map((node, index) => {\n const { token, children } = node;\n const itemKey = token.id || `toc-${token.depth}-${index}`;\n return (\n <li key={itemKey} role=\"listitem\" className=\"md-listitem\">\n {token.id && token.id.length > 0 ? (\n <a className=\"md-link\" href={`#${token.id}`}>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </a>\n ) : (\n <>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </>\n )}\n <TOCNodes nodes={children} context={context} />\n </li>\n );\n })}\n </ul>\n );\n}\n", "import { WHITESPACE_CHARS, type TextToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Text({ token, context }: TokenContext<TextToken>) {\n if (!context.abbrs || context.abbrs.length === 0) {\n return <>{token.text}</>;\n }\n const nodes: React.ReactNode[] = [];\n let i = 0;\n while (i < token.text.length) {\n let found = false;\n\n let whitespace = '';\n while (i < token.text.length && WHITESPACE_CHARS.has(token.text[i])) {\n whitespace += token.text[i++];\n }\n if (whitespace) nodes.push(whitespace);\n\n if (i >= token.text.length) break;\n\n for (const abbr of context.abbrs) {\n const sbr = token.text.slice(i, i + abbr.abbr.length);\n\n // Check if it matches and is followed by whitespace or end of string\n const isMatch = sbr === abbr.abbr;\n const isAtBoundary =\n i + abbr.abbr.length === token.text.length ||\n WHITESPACE_CHARS.has(token.text[i + abbr.abbr.length]);\n\n if (isMatch && isAtBoundary) {\n nodes.push(\n <abbr key={`abbr-${i}`} title={abbr.title}>\n {sbr}\n </abbr>\n );\n i += abbr.abbr.length;\n found = true;\n break;\n }\n }\n if (!found) {\n const startIndex = i;\n while (i < token.text.length && !WHITESPACE_CHARS.has(token.text[i])) {\n i++;\n }\n nodes.push(token.text.slice(startIndex, i));\n }\n }\n\n return <>{nodes}</>;\n}\n", "import { type YoutubeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function YoutubeEmbed({ token }: TokenContext<YoutubeToken>) {\n const vid = token.attributes.vid;\n const title = token.title || 'YouTube';\n const width = token.attributes.width || '560';\n const height = token.attributes.height || '315';\n const start = token.attributes.start;\n const allowfullscreen = token.attributes.allowfullscreen !== 'false';\n\n const urlParams = new URLSearchParams();\n if (start) urlParams.set('start', start);\n\n const src = `https://www.youtube.com/embed/${vid}${urlParams.toString() ? '?' + urlParams.toString() : ''}`;\n\n return (\n <div className=\"md-youtube\">\n <iframe\n width={width}\n height={height}\n src={src}\n title={title}\n allowFullScreen={allowfullscreen}\n style={{ border: 0 }}\n />\n </div>\n );\n}\n", "import { type OverlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Overline({\n token,\n context,\n}: TokenContext<OverlineToken>) {\n return (\n <u className=\"md-overline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type MetadataToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Metadata({ token }: TokenContext<MetadataToken>) {\n return <>{token.value}</>;\n}\n", "import { type CodespanToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Codespan({ token }: TokenContext<CodespanToken>) {\n return (\n <code aria-label=\"Code\" className=\"md-codespan\">\n {token.text}\n </code>\n );\n}\n", "import { cleanUrl, type LinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Link({ token, context }: TokenContext<LinkToken>) {\n const cleanHref = cleanUrl(token.href);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={token.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type RefLinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function RefLink({\n token,\n context,\n}: TokenContext<RefLinkToken>) {\n const refLink = context.reflinks.get(token.ref);\n if (refLink === undefined) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const cleanHref = cleanUrl(refLink.link);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={refLink.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type ImageToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Image({ token }: TokenContext<ImageToken>) {\n const imgcleanHref = cleanUrl(token.href);\n if (imgcleanHref === null) {\n return <>{token.alt}</>;\n }\n return (\n <img\n src={imgcleanHref}\n alt={token.alt}\n className=\"md-image\"\n title={token.title}\n />\n );\n}\n", "import { type FootnoteRefToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function FootnoteRef({\n token,\n context,\n}: TokenContext<FootnoteRefToken>) {\n return (\n <sup id={`fnref:${token.ref}`}>\n <a className=\"md-link\" href={`#fn:${token.ref}`}>\n {`[${context.footnoteIndexRefs.get(token.ref) ?? -1}]`}\n </a>\n </sup>\n );\n}\n", "export default function NewLine() {\n return <br />;\n}\n", "import { type HighlightToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Highlight({\n token,\n context,\n}: TokenContext<HighlightToken>) {\n return (\n <mark className=\"md-highlight\">\n <RenderTokens tokens={token.tokens} context={context} />\n </mark>\n );\n}\n", "import { type StrikethroughToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Strikethrough({\n token,\n context,\n}: TokenContext<StrikethroughToken>) {\n return (\n <del className=\"md-strikethrough\">\n <RenderTokens tokens={token.tokens} context={context} />\n </del>\n );\n}\n", "import { type EmojiToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Emoji({ token, context }: TokenContext<EmojiToken>) {\n const emoji = context.emojis[token.name];\n if (emoji === undefined) {\n return <>{`:${token.name}:`}</>;\n }\n switch (emoji.type) {\n case 'img':\n return (\n <img\n alt={emoji.alt ?? token.name}\n src={emoji.url}\n width={emoji.width ?? 20}\n height={emoji.height ?? 20}\n />\n );\n case 'i':\n return <i className={emoji.className}></i>;\n default:\n return <>{emoji.char}</>;\n }\n}\n", "import { type UnderlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Underline({\n token,\n context,\n}: TokenContext<UnderlineToken>) {\n return (\n <u className=\"md-underline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type BoldToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Bold({ token, context }: TokenContext<BoldToken>) {\n return (\n <strong className=\"md-bold\">\n <RenderTokens tokens={token.tokens} context={context} />\n </strong>\n );\n}\n", "import { type ItalicToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Italic({ token, context }: TokenContext<ItalicToken>) {\n return (\n <em className=\"md-italic\">\n <RenderTokens tokens={token.tokens} context={context} />\n </em>\n );\n}\n", "import { type SupToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sup({ token, context }: TokenContext<SupToken>) {\n return (\n <sup className=\"md-sup\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sup>\n );\n}\n", "import { type SubToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sub({ token, context }: TokenContext<SubToken>) {\n return (\n <sub className=\"md-sub\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sub>\n );\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["index_exports", "__export", "MkImpRenderer", "__toCommonJS", "import_react", "import_mkimp", "flattenMetaData", "data", "prefix", "result", "item", "index", "key", "value", "newKey", "import_mkimp", "import_jsx_runtime", "Article", "children", "
|
|
3
|
+
"sources": ["../src/index.tsx", "../src/utils/flattenMapData.ts", "../src/renderer/RenderRootToken.tsx", "../src/renderer/Article.tsx", "../src/renderer/Section.tsx", "../src/renderer/RenderToken.tsx", "../src/renderer/RenderTokens.tsx", "../src/renderer/RenderCurrentTarget.tsx", "../src/renderer/tokens/Heading.tsx", "../src/renderer/HLJS.tsx", "../src/renderer/tokens/Codeblock.tsx", "../src/renderer/tokens/Conditional.tsx", "../src/renderer/tokens/Horizontal.tsx", "../src/renderer/tokens/Blockquote.tsx", "../src/renderer/tokens/List.tsx", "../src/renderer/tokens/ListItem.tsx", "../src/renderer/tokens/Table.tsx", "../src/renderer/tokens/Cell.tsx", "../src/renderer/tokens/DefinitionList.tsx", "../src/renderer/tokens/DefinitionListItem.tsx", "../src/renderer/LaTeX.tsx", "../src/renderer/tokens/Tex.tsx", "../src/renderer/tokens/Spoiler.tsx", "../src/renderer/tokens/Include.tsx", "../src/renderer/tokens/Html.tsx", "../src/renderer/tokens/Paragraph.tsx", "../src/renderer/tokens/FootnoteEnd.tsx", "../src/renderer/tokens/Small.tsx", "../src/renderer/tokens/TableOfContent.tsx", "../src/renderer/tokens/TOCNodes.tsx", "../src/renderer/tokens/Text.tsx", "../src/renderer/tokens/YoutubeEmbed.tsx", "../src/renderer/tokens/Overline.tsx", "../src/renderer/tokens/Metadata.tsx", "../src/renderer/tokens/Codespan.tsx", "../src/renderer/tokens/Link.tsx", "../src/renderer/tokens/RefLink.tsx", "../src/renderer/tokens/Image.tsx", "../src/renderer/tokens/FootnoteRef.tsx", "../src/renderer/tokens/NewLine.tsx", "../src/renderer/tokens/Highlight.tsx", "../src/renderer/tokens/Strikethrough.tsx", "../src/renderer/tokens/Emoji.tsx", "../src/renderer/tokens/Underline.tsx", "../src/renderer/tokens/Bold.tsx", "../src/renderer/tokens/Italic.tsx", "../src/renderer/tokens/Sup.tsx", "../src/renderer/tokens/Sub.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useState, type JSX } from 'react';\nimport {\n type EmojiRecord,\n Lexer,\n type RenderTarget,\n type RootToken,\n} from 'mkimp';\nimport { flattenMetaData } from './utils/flattenMapData';\nimport RenderRootToken, {\n type TokenRendering,\n} from './renderer/RenderRootToken';\nimport { type ArticleProps } from './renderer/Article';\nimport { type LaTeXProps } from './renderer/LaTeX';\nimport { type SectionProps } from './renderer/Section';\nimport { type HLJSProps } from './renderer/HLJS';\n\nexport {\n type TokenRendering,\n type TokenContext,\n} from './renderer/RenderRootToken';\nexport { type ArticleProps } from './renderer/Article';\nexport { type LaTeXProps } from './renderer/LaTeX';\nexport { type SectionProps } from './renderer/Section';\nexport { type HLJSProps } from './renderer/HLJS';\n\nexport type MetaDataPrimitives =\n | string\n | bigint\n | number\n | boolean\n | null\n | undefined;\nexport type MetaData =\n | MetaDataPrimitives\n | MetaData[]\n | { [key: string | number | symbol]: MetaData };\n\nexport interface MkImpRendererProps {\n emojis?: Record<string, EmojiRecord>;\n frontMatter?: (content: string) => Promise<MetaData>;\n include?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n includeCode?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n mdContent: string;\n metadata?: MetaData;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideHLJS?: (props: HLJSProps) => JSX.Element;\n overrideLaTeX?: (props: LaTeXProps) => JSX.Element;\n overrideRenderer?: Partial<TokenRendering>;\n overrideSection?: (props: SectionProps) => JSX.Element;\n renderTarget?: RenderTarget;\n sanitize?: boolean;\n tabulation?: number;\n withSection?: boolean;\n}\n\nexport default function MkImpRenderer({\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n overrideArticle,\n overrideHLJS,\n overrideLaTeX,\n overrideRenderer,\n overrideSection,\n renderTarget = 'raw',\n sanitize = true,\n tabulation = 4,\n withSection = false,\n}: MkImpRendererProps) {\n const [rootToken, setRootToken] = useState<RootToken>();\n\n useEffect(() => {\n const generateMarkdown = async () => {\n const rootToken = await Lexer.lex(mdContent, {\n tabulation,\n metadata: flattenMetaData(metadata),\n emojis,\n frontMatter,\n include,\n includeCode,\n });\n setRootToken(rootToken);\n };\n generateMarkdown();\n }, [\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n tabulation,\n ]);\n\n return (\n <RenderRootToken\n {...{\n renderTarget,\n root: rootToken,\n sanitize,\n overrideRenderer,\n overrideLaTeX,\n overrideHLJS,\n overrideArticle,\n overrideSection,\n withSection,\n }}\n />\n );\n}\n", "import { MetaData } from 'src';\n\ntype MapValue = string | number | bigint | boolean;\n\nexport function flattenMetaData(\n data: MetaData,\n prefix = '',\n result = new Map<string, MapValue>()\n): Map<string, MapValue> {\n // Handle Primitives (The \"Leaf\" nodes)\n if (data === null || data === undefined) return result;\n\n if (typeof data !== 'object') {\n if (prefix) result.set(prefix, data as MapValue);\n return result;\n }\n\n // Handle Arrays\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n flattenMetaData(\n item,\n prefix ? `${prefix}[${index}]` : `${index}`,\n result\n );\n });\n return result;\n }\n\n // Handle Objects\n for (const [key, value] of Object.entries(data)) {\n const newKey = prefix ? `${prefix}.${key}` : key;\n flattenMetaData(value, newKey, result);\n }\n\n return result;\n}\n", "import {\n type TokenType,\n type RootToken,\n type ExtractToken,\n type MdToken,\n type EmojiRecord,\n type HeadingToken,\n type AbbrToken,\n type LinkRef,\n type RenderTarget,\n generateSections,\n} from 'mkimp';\nimport { type JSX } from 'react';\nimport Article, { type ArticleProps } from './Article';\nimport Section, { type SectionProps } from './Section';\nimport RenderTokens from './RenderTokens';\nimport RenderCurrentTarget from './RenderCurrentTarget';\nimport RenderToken from './RenderToken';\nimport Heading from './tokens/Heading';\nimport Codeblock from './tokens/Codeblock';\nimport Conditional from './tokens/Conditional';\nimport Horizontal from './tokens/Horizontal';\nimport Blockquote from './tokens/Blockquote';\nimport List from './tokens/List';\nimport ListItem from './tokens/ListItem';\nimport Table from './tokens/Table';\nimport Cell from './tokens/Cell';\nimport DefinitionList from './tokens/DefinitionList';\nimport DefinitionListItem from './tokens/DefinitionListItem';\nimport Tex from './tokens/Tex';\nimport Spoiler from './tokens/Spoiler';\nimport Include from './tokens/Include';\nimport Html from './tokens/Html';\nimport Paragraph from './tokens/Paragraph';\nimport FootnoteEnd from './tokens/FootnoteEnd';\nimport Small from './tokens/Small';\nimport TableOfContent from './tokens/TableOfContent';\nimport Text from './tokens/Text';\nimport YoutubeEmbed from './tokens/YoutubeEmbed';\nimport Overline from './tokens/Overline';\nimport Metadata from './tokens/Metadata';\nimport Codespan from './tokens/Codespan';\nimport Link from './tokens/Link';\nimport RefLink from './tokens/RefLink';\nimport Image from './tokens/Image';\nimport FootnoteRef from './tokens/FootnoteRef';\nimport NewLine from './tokens/NewLine';\nimport Highlight from './tokens/Highlight';\nimport Strikethrough from './tokens/Strikethrough';\nimport Emoji from './tokens/Emoji';\nimport Underline from './tokens/Underline';\nimport Bold from './tokens/Bold';\nimport Italic from './tokens/Italic';\nimport Sup from './tokens/Sup';\nimport Sub from './tokens/Sub';\n\nexport type TokenRendering = {\n [K in TokenType]: (props: TokenContext<ExtractToken<K>>) => JSX.Element;\n};\n\nexport type TokenContext<T extends MdToken> = {\n token: T;\n context: RendererContext;\n};\n\nexport interface RendererContext {\n abbrs: AbbrToken[];\n currentRenderer: TokenRendering;\n emojis: Record<string, EmojiRecord>;\n footnoteDefs: Map<string, MdToken[]>;\n footnoteIndexRefs: Map<string, number>;\n footnoteRefs: Map<number, string>;\n metadata: Map<string, string | number | boolean | bigint>;\n reflinks: Map<string, LinkRef>;\n tableOfContents: HeadingToken[];\n sanitize: boolean;\n Article: (props: ArticleProps) => JSX.Element;\n convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;\n highlightText?: (content: string, language: string | undefined) => string;\n overrideSanitization?: (html: string) => string;\n}\n\nconst RENDERER: TokenRendering = {\n heading: Heading,\n codeblock: Codeblock,\n conditional: Conditional,\n horizontal: Horizontal,\n blockquote: Blockquote,\n list: List,\n listItem: ListItem,\n table: Table,\n cell: Cell,\n definitionList: DefinitionList,\n definitionListItem: DefinitionListItem,\n tex: Tex,\n spoiler: Spoiler,\n include: Include,\n html: Html,\n paragraph: Paragraph,\n footnoteEnd: FootnoteEnd,\n small: Small,\n tableOfContent: TableOfContent,\n text: Text,\n youtubeEmbed: YoutubeEmbed,\n overline: Overline,\n metadata: Metadata,\n codespan: Codespan,\n link: Link,\n reflink: RefLink,\n image: Image,\n footnoteRef: FootnoteRef,\n newline: NewLine,\n highlight: Highlight,\n strikethrough: Strikethrough,\n emoji: Emoji,\n underline: Underline,\n bold: Bold,\n italic: Italic,\n sup: Sup,\n sub: Sub,\n};\n\nexport interface RenderRootTokenProps {\n root: RootToken | undefined;\n sanitize: boolean;\n withSection: boolean;\n renderTarget: RenderTarget;\n overrideRenderer?: Partial<TokenRendering>;\n convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;\n highlightText?: (content: string, language: string | undefined) => string;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideSanitization?: (html: string) => string;\n overrideSection?: (props: SectionProps) => JSX.Element;\n}\n\nexport default function RenderRootToken({\n root,\n sanitize,\n withSection,\n renderTarget,\n overrideRenderer,\n convertLaTeXToHTML,\n highlightText,\n overrideArticle,\n overrideSanitization,\n overrideSection,\n}: RenderRootTokenProps) {\n if (!root) return <></>;\n const context: RendererContext = {\n abbrs: root.abbrs,\n currentRenderer: { ...RENDERER, ...overrideRenderer },\n emojis: root.emojis,\n footnoteDefs: root.footnoteDefs,\n footnoteIndexRefs: root.footnoteIndexRefs,\n footnoteRefs: root.footnoteRefs,\n metadata: root.metadata,\n reflinks: root.reflinks,\n sanitize,\n tableOfContents: root.tableOfContents,\n Article: overrideArticle ?? Article,\n convertLaTeXToHTML,\n highlightText,\n overrideSanitization,\n };\n if (!withSection) {\n return (\n <RenderCurrentTarget context={context} renderTarget={renderTarget}>\n <RenderTokens tokens={root.tokens} context={context} />\n </RenderCurrentTarget>\n );\n }\n const SectionPart = overrideSection ?? Section;\n const sections: MdToken[][] = generateSections(root.tokens);\n\n return sections.map((section, i) => {\n const headingToken = section.find((t) => t.type === 'heading');\n const headingId = headingToken ? headingToken.id : undefined;\n const sKey = `sec-${i}`;\n return (\n <SectionPart key={sKey} headingId={headingId}>\n {section.map((token, si) => {\n const sectionKey = `section-${si}`;\n return (\n <RenderToken key={sectionKey} token={token} context={context} />\n );\n })}\n </SectionPart>\n );\n });\n}\n", "import { type JSX } from 'react';\n\nexport interface ArticleProps {\n children: JSX.Element;\n}\n\nexport default function Article({ children }: ArticleProps) {\n return (\n <article className=\"md-article\" role=\"document\" aria-label=\"Page content\">\n {children}\n </article>\n );\n}\n", "export interface SectionProps {\n headingId: string | undefined;\n children: React.ReactNode;\n}\n\nexport default function Section({ headingId, children }: SectionProps) {\n if (headingId) {\n return (\n <section className=\"md-section\" role=\"region\" aria-labelledby={headingId}>\n {children}\n </section>\n );\n }\n return <section>{children}</section>;\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\n\nexport default function RenderToken({\n token,\n context,\n}: {\n token: MdToken;\n context: RendererContext;\n}) {\n const renderFn = context.currentRenderer[token.type];\n if (!renderFn) return <></>;\n return renderFn({\n token: token,\n context,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\nimport RenderToken from './RenderToken';\n\nexport default function RenderTokens({\n tokens,\n context,\n}: {\n tokens: MdToken[];\n context: RendererContext;\n}) {\n return (\n <>\n {tokens.map((token, i) => {\n const tokenKey = `${token.type}-${i}`;\n return <RenderToken key={tokenKey} token={token} context={context} />;\n })}\n </>\n );\n}\n", "import type { RenderTarget } from 'mkimp';\nimport type { RendererContext } from './RenderRootToken';\n\nexport interface RenderCurrentTargetProps {\n context: RendererContext;\n renderTarget: RenderTarget;\n children: React.JSX.Element;\n}\n\nexport default function RenderCurrentTarget({\n context,\n renderTarget,\n children,\n}: RenderCurrentTargetProps) {\n if (renderTarget === 'article') {\n const Article = context.Article;\n return <Article>{children}</Article>;\n }\n return children;\n}\n", "import { type HeadingToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Heading({\n token,\n context,\n}: TokenContext<HeadingToken>) {\n const className = token.isUnderline\n ? 'md-heading md-h-underline'\n : 'md-heading';\n switch (token.depth) {\n case 1:\n return (\n <h1 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h1>\n );\n case 2:\n return (\n <h2 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h2>\n );\n case 3:\n return (\n <h3 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h3>\n );\n case 4:\n return (\n <h4 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h4>\n );\n case 5:\n return (\n <h5 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h5>\n );\n default:\n return (\n <h6 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h6>\n );\n }\n}\n", "import { useMemo, type JSX } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface HLJSProps {\n content: string;\n language?: string;\n from?: number;\n callback: (content: string, language: string | undefined) => string;\n}\n\nexport default function HLJS({\n content,\n language,\n from,\n callback,\n}: HLJSProps): JSX.Element {\n const lang = language ? ` language-${language}` : '';\n\n const highlightedHtml = useMemo(\n () => sanitizeHtml(callback(content, language)),\n [content, language, callback]\n );\n if (from !== undefined) {\n const lines = highlightedHtml.split(/\\r?\\n/);\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className={`md-code${lang}`}>\n <table className=\"md-code-table\">\n <colgroup>\n <col />\n <col className=\"md-table-line-space\" />\n <col />\n </colgroup>\n <tbody>\n {lines.map((line, i) => {\n const lineKey = `line-${from}-${i}`;\n return (\n <tr key={lineKey} className=\"md-code-row\">\n <td className=\"md-number-ln\">{i + from}</td>\n <td></td>\n <td\n className=\"md-code-ln\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: line || ' ' }}\n />\n </tr>\n );\n })}\n </tbody>\n </table>\n </code>\n </pre>\n );\n }\n\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code\n aria-label=\"Code\"\n className={`md-code${lang}`}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n </pre>\n );\n}\n", "import { type CodeBlockToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport HLJS from '../HLJS';\n\nexport default function Codeblock({\n token,\n context,\n}: TokenContext<CodeBlockToken>) {\n const from =\n token.from !== undefined || token.to !== undefined\n ? token.from || 1\n : undefined;\n if (\n context.highlightText &&\n token.lang &&\n (token.lang !== 'mermaid' ||\n (token.lang === 'mermaid' && from !== undefined))\n ) {\n return (\n <HLJS\n content={token.content}\n language={token.lang}\n from={from}\n callback={context.highlightText}\n />\n );\n }\n if (token.lang === 'mermaid') {\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-mermaid mermaid\">\n {token.content}\n </pre>\n );\n }\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className=\"md-code\">\n {token.content}\n </code>\n </pre>\n );\n}\n", "import { type ConditionalToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Conditional({\n token,\n context,\n}: TokenContext<ConditionalToken>) {\n for (const branch of token.branches) {\n if (branch.condition === 'else') {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n const data = context.metadata.get(branch.condition);\n if (typeof data === 'boolean' && data === true) {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n }\n return <></>;\n}\n", "export default function Horizontal() {\n return <hr className=\"md-line\" role=\"separator\" aria-hidden=\"true\" />;\n}\n", "import { type BlockQuoteToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Blockquote({\n token,\n context,\n}: TokenContext<BlockQuoteToken>) {\n return (\n <blockquote\n className=\"md-blockquote\"\n role=\"note\"\n aria-label=\"A quote from the author\"\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </blockquote>\n );\n}\n", "import { type ListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function List({ token, context }: TokenContext<ListToken>) {\n const className = `md-${token.ordered ? 'ol' : 'ul'}list`;\n if (token.ordered) {\n const start = token.startAt ? Number(token.startAt) : undefined;\n return (\n <ol role=\"list\" className={className} start={start}>\n <RenderTokens tokens={token.items} context={context} />\n </ol>\n );\n }\n return (\n <ul role=\"list\" className={className}>\n <RenderTokens tokens={token.items} context={context} />\n </ul>\n );\n}\n", "import { type ListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function ListItem({\n token,\n context,\n}: TokenContext<ListItemToken>) {\n return (\n <li role=\"listitem\" className={token.task ? 'md-taskitem' : 'md-listitem'}>\n {token.task && (\n <input\n className=\"md-checkbox\"\n type=\"checkbox\"\n disabled\n checked={token.checked}\n />\n )}\n <RenderTokens tokens={token.tokens} context={context} />\n </li>\n );\n}\n", "import { type TableToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Table({ token, context }: TokenContext<TableToken>) {\n return (\n <table className=\"md-table\" role=\"table\">\n <thead className=\"md-thead\" role=\"rowgroup\">\n <tr className=\"md-htablerow\">\n <RenderTokens tokens={token.header} context={context} />\n </tr>\n </thead>\n <tbody className=\"md-tbody\" role=\"rowgroup\">\n {token.rows.map((row, i) => {\n const rowKey = `row-${i}`;\n return (\n <tr key={rowKey} className=\"md-tablerow\">\n <RenderTokens tokens={row} context={context} />\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n", "import { type TableCellToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Cell({ token, context }: TokenContext<TableCellToken>) {\n if (token.header) {\n return (\n <th\n className=\"md-tablecell\"\n style={{\n textAlign: token.align !== 'default' ? token.align : undefined,\n }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </th>\n );\n }\n return (\n <td\n className=\"md-tablecell\"\n style={{ textAlign: token.align !== 'default' ? token.align : undefined }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </td>\n );\n}\n", "import { type DefinitionListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionList({\n token,\n context,\n}: TokenContext<DefinitionListToken>) {\n return (\n <dl className=\"md-deflist\">\n <RenderTokens tokens={token.items} context={context} />\n </dl>\n );\n}\n", "import { type DefinitionListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionListItem({\n token,\n context,\n}: TokenContext<DefinitionListItemToken>) {\n return (\n <>\n <dt className=\"md-defterm\">\n <RenderTokens tokens={token.term} context={context} />\n </dt>\n {token.definitions.map((def, i) => {\n const defKey = `def-${i}`;\n return (\n <dd key={defKey} className=\"md-defdef\">\n <RenderTokens tokens={def} context={context} />\n </dd>\n );\n })}\n </>\n );\n}\n", "import { useMemo } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface LaTeXProps {\n content: string;\n inline: boolean;\n displayMode: boolean;\n callback: (content: string, displayMode: boolean) => string;\n}\n\nexport default function LaTeX({\n content,\n inline,\n displayMode,\n callback,\n}: LaTeXProps) {\n const html = useMemo(\n () => sanitizeHtml(callback(content, displayMode)),\n [content, displayMode, callback]\n );\n if (inline) {\n return (\n <span\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n display: displayMode ? 'inline-block' : undefined,\n }}\n />\n );\n }\n return (\n <div\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n}\n", "import { type TexToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport LaTeX from '../LaTeX';\n\nexport default function Tex({ token, context }: TokenContext<TexToken>) {\n const convertLaTeXToHTML = context.convertLaTeXToHTML;\n if (convertLaTeXToHTML !== undefined) {\n return (\n <LaTeX\n content={token.text}\n displayMode={token.displayMode}\n inline={token.inline}\n callback={convertLaTeXToHTML}\n />\n );\n }\n return <>{token.text}</>;\n}\n", "import { type SpoilerToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Spoiler({\n token,\n context,\n}: TokenContext<SpoilerToken>) {\n if (token.inline) {\n return (\n <label className=\"md-spoiler\">\n <input className=\"md-spoiltrigger\" type=\"checkbox\" hidden />\n <span className=\"md-spoilertext\">\n <RenderTokens tokens={token.tokens} context={context} />\n </span>\n </label>\n );\n }\n return (\n <div className=\"md-spoiler-toggle\">\n <input type=\"checkbox\" id={`md-spoiler-label-${token.index}`} hidden />\n <label\n htmlFor={`md-spoiler-label-${token.index}`}\n className=\"md-spoiler-header\"\n >\n <RenderTokens tokens={token.title} context={context} />\n </label>\n <div className=\"md-spoiler-content\">\n <RenderTokens tokens={token.tokens} context={context} />\n </div>\n </div>\n );\n}\n", "import { type IncludeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Include({\n token,\n context,\n}: TokenContext<IncludeToken>) {\n return <RenderTokens tokens={token.tokens} context={context} />;\n}\n", "import { type HTMLToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport sanitizeHtml from 'sanitize-html';\n\nexport default function Html({ token, context }: TokenContext<HTMLToken>) {\n const sanitization = context.overrideSanitization ?? sanitizeHtml;\n const html = context.sanitize ? sanitization(token.content) : token.content;\n return (\n <div\n data-id=\"html-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n display: 'contents',\n }}\n />\n );\n}\n", "import { type ParagraphToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Paragraph({\n token,\n context,\n}: TokenContext<ParagraphToken>) {\n return (\n <p className=\"md-paragraph\">\n <RenderTokens tokens={token.tokens} context={context} />\n </p>\n );\n}\n", "import { type FootnoteEndToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport { type JSX } from 'react';\nimport RenderTokens from '../RenderTokens';\n\nexport default function FootnoteEnd({\n context,\n}: TokenContext<FootnoteEndToken>) {\n const refSize = context.footnoteRefs.size;\n const result: JSX.Element[] = [];\n for (let i = 1; i <= refSize; i++) {\n const fnKey = `fn-${i - 1}`;\n const ref = context.footnoteRefs.get(i)!;\n const def = context.footnoteDefs.get(ref);\n if (def !== undefined) {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>\n <RenderTokens tokens={def} context={context} />\n </li>\n );\n } else {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>{`[${ref}]`}</li>\n );\n }\n }\n return (\n <section className=\"md-footnotes\">\n <ol className=\"md-fnlist\" dir=\"auto\">\n {result}\n </ol>\n </section>\n );\n}\n", "import { type SmallToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Small({ token, context }: TokenContext<SmallToken>) {\n return (\n <p className=\"md-paragraph\">\n <small className=\"md-small\">\n <RenderTokens tokens={token.tokens} context={context} />\n </small>\n </p>\n );\n}\n", "import { generateTableOfContent, type TableOfContentToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport TOCNodes from './TOCNodes';\n\nexport default function TableOfContent({\n context,\n}: TokenContext<TableOfContentToken>) {\n const nodes = generateTableOfContent(context.tableOfContents);\n return <TOCNodes {...{ nodes, context }} />;\n}\n", "import { type TOCNode } from 'mkimp';\nimport { type RendererContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function TOCNodes({\n nodes,\n context,\n}: {\n nodes: TOCNode[];\n context: RendererContext;\n}) {\n if (nodes.length === 0) return <></>;\n return (\n <ul role=\"list\" className=\"md-tableofcontent\">\n {nodes.map((node, index) => {\n const { token, children } = node;\n const itemKey = token.id || `toc-${token.depth}-${index}`;\n return (\n <li key={itemKey} role=\"listitem\" className=\"md-listitem\">\n {token.id && token.id.length > 0 ? (\n <a className=\"md-link\" href={`#${token.id}`}>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </a>\n ) : (\n <>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </>\n )}\n <TOCNodes nodes={children} context={context} />\n </li>\n );\n })}\n </ul>\n );\n}\n", "import { WHITESPACE_CHARS, type TextToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Text({ token, context }: TokenContext<TextToken>) {\n if (!context.abbrs || context.abbrs.length === 0) {\n return <>{token.text}</>;\n }\n const nodes: React.ReactNode[] = [];\n let i = 0;\n while (i < token.text.length) {\n let found = false;\n\n let whitespace = '';\n while (i < token.text.length && WHITESPACE_CHARS.has(token.text[i])) {\n whitespace += token.text[i++];\n }\n if (whitespace) nodes.push(whitespace);\n\n if (i >= token.text.length) break;\n\n for (const abbr of context.abbrs) {\n const sbr = token.text.slice(i, i + abbr.abbr.length);\n\n // Check if it matches and is followed by whitespace or end of string\n const isMatch = sbr === abbr.abbr;\n const isAtBoundary =\n i + abbr.abbr.length === token.text.length ||\n WHITESPACE_CHARS.has(token.text[i + abbr.abbr.length]);\n\n if (isMatch && isAtBoundary) {\n nodes.push(\n <abbr key={`abbr-${i}`} title={abbr.title}>\n {sbr}\n </abbr>\n );\n i += abbr.abbr.length;\n found = true;\n break;\n }\n }\n if (!found) {\n const startIndex = i;\n while (i < token.text.length && !WHITESPACE_CHARS.has(token.text[i])) {\n i++;\n }\n nodes.push(token.text.slice(startIndex, i));\n }\n }\n\n return <>{nodes}</>;\n}\n", "import { type YoutubeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function YoutubeEmbed({ token }: TokenContext<YoutubeToken>) {\n const vid = token.attributes.vid;\n const title = token.title || 'YouTube';\n const width = token.attributes.width || '560';\n const height = token.attributes.height || '315';\n const start = token.attributes.start;\n const allowfullscreen = token.attributes.allowfullscreen !== 'false';\n\n const urlParams = new URLSearchParams();\n if (start) urlParams.set('start', start);\n\n const src = `https://www.youtube.com/embed/${vid}${urlParams.toString() ? '?' + urlParams.toString() : ''}`;\n\n return (\n <div className=\"md-youtube\">\n <iframe\n width={width}\n height={height}\n src={src}\n title={title}\n allowFullScreen={allowfullscreen}\n style={{ border: 0 }}\n />\n </div>\n );\n}\n", "import { type OverlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Overline({\n token,\n context,\n}: TokenContext<OverlineToken>) {\n return (\n <u className=\"md-overline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type MetadataToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Metadata({ token }: TokenContext<MetadataToken>) {\n return <>{token.value}</>;\n}\n", "import { type CodespanToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Codespan({ token }: TokenContext<CodespanToken>) {\n return (\n <code aria-label=\"Code\" className=\"md-codespan\">\n {token.text}\n </code>\n );\n}\n", "import { cleanUrl, type LinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Link({ token, context }: TokenContext<LinkToken>) {\n const cleanHref = cleanUrl(token.href);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={token.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type RefLinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function RefLink({\n token,\n context,\n}: TokenContext<RefLinkToken>) {\n const refLink = context.reflinks.get(token.ref);\n if (refLink === undefined) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const cleanHref = cleanUrl(refLink.link);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={refLink.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type ImageToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Image({ token }: TokenContext<ImageToken>) {\n const imgcleanHref = cleanUrl(token.href);\n if (imgcleanHref === null) {\n return <>{token.alt}</>;\n }\n return (\n <img\n src={imgcleanHref}\n alt={token.alt}\n className=\"md-image\"\n title={token.title}\n />\n );\n}\n", "import { type FootnoteRefToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function FootnoteRef({\n token,\n context,\n}: TokenContext<FootnoteRefToken>) {\n return (\n <sup id={`fnref:${token.ref}`}>\n <a className=\"md-link\" href={`#fn:${token.ref}`}>\n {`[${context.footnoteIndexRefs.get(token.ref) ?? -1}]`}\n </a>\n </sup>\n );\n}\n", "export default function NewLine() {\n return <br />;\n}\n", "import { type HighlightToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Highlight({\n token,\n context,\n}: TokenContext<HighlightToken>) {\n return (\n <mark className=\"md-highlight\">\n <RenderTokens tokens={token.tokens} context={context} />\n </mark>\n );\n}\n", "import { type StrikethroughToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Strikethrough({\n token,\n context,\n}: TokenContext<StrikethroughToken>) {\n return (\n <del className=\"md-strikethrough\">\n <RenderTokens tokens={token.tokens} context={context} />\n </del>\n );\n}\n", "import { type EmojiToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Emoji({ token, context }: TokenContext<EmojiToken>) {\n const emoji = context.emojis[token.name];\n if (emoji === undefined) {\n return <>{`:${token.name}:`}</>;\n }\n switch (emoji.type) {\n case 'img':\n return (\n <img\n alt={emoji.alt ?? token.name}\n src={emoji.url}\n width={emoji.width ?? 20}\n height={emoji.height ?? 20}\n />\n );\n case 'i':\n return <i className={emoji.className}></i>;\n default:\n return <>{emoji.char}</>;\n }\n}\n", "import { type UnderlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Underline({\n token,\n context,\n}: TokenContext<UnderlineToken>) {\n return (\n <u className=\"md-underline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type BoldToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Bold({ token, context }: TokenContext<BoldToken>) {\n return (\n <strong className=\"md-bold\">\n <RenderTokens tokens={token.tokens} context={context} />\n </strong>\n );\n}\n", "import { type ItalicToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Italic({ token, context }: TokenContext<ItalicToken>) {\n return (\n <em className=\"md-italic\">\n <RenderTokens tokens={token.tokens} context={context} />\n </em>\n );\n}\n", "import { type SupToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sup({ token, context }: TokenContext<SupToken>) {\n return (\n <sup className=\"md-sup\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sup>\n );\n}\n", "import { type SubToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sub({ token, context }: TokenContext<SubToken>) {\n return (\n <sub className=\"md-sub\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sub>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["index_exports", "__export", "MkImpRenderer", "__toCommonJS", "import_react", "import_mkimp", "flattenMetaData", "data", "prefix", "result", "item", "index", "key", "value", "newKey", "import_mkimp", "import_jsx_runtime", "Article", "children", "import_jsx_runtime", "Section", "headingId", "children", "import_jsx_runtime", "RenderToken", "token", "context", "renderFn", "import_jsx_runtime", "RenderTokens", "tokens", "context", "token", "i", "tokenKey", "RenderToken", "import_jsx_runtime", "RenderCurrentTarget", "context", "renderTarget", "children", "Article", "import_jsx_runtime", "Heading", "token", "context", "className", "RenderTokens", "import_react", "import_sanitize_html", "import_jsx_runtime", "HLJS", "content", "language", "from", "callback", "lang", "highlightedHtml", "sanitizeHtml", "lines", "line", "i", "lineKey", "import_jsx_runtime", "Codeblock", "token", "context", "from", "HLJS", "import_jsx_runtime", "Conditional", "token", "context", "branch", "RenderTokens", "data", "import_jsx_runtime", "Horizontal", "import_jsx_runtime", "Blockquote", "token", "context", "RenderTokens", "import_jsx_runtime", "List", "token", "context", "className", "start", "RenderTokens", "import_jsx_runtime", "ListItem", "token", "context", "RenderTokens", "import_jsx_runtime", "Table", "token", "context", "RenderTokens", "row", "i", "rowKey", "import_jsx_runtime", "Cell", "token", "context", "RenderTokens", "import_jsx_runtime", "DefinitionList", "token", "context", "RenderTokens", "import_jsx_runtime", "DefinitionListItem", "token", "context", "RenderTokens", "def", "i", "defKey", "import_react", "import_sanitize_html", "import_jsx_runtime", "LaTeX", "content", "inline", "displayMode", "callback", "html", "sanitizeHtml", "import_jsx_runtime", "Tex", "token", "context", "convertLaTeXToHTML", "LaTeX", "import_jsx_runtime", "Spoiler", "token", "context", "RenderTokens", "import_jsx_runtime", "Include", "token", "context", "RenderTokens", "import_sanitize_html", "import_jsx_runtime", "Html", "token", "context", "sanitization", "sanitizeHtml", "html", "import_jsx_runtime", "Paragraph", "token", "context", "RenderTokens", "import_jsx_runtime", "FootnoteEnd", "context", "refSize", "result", "i", "fnKey", "ref", "def", "RenderTokens", "import_jsx_runtime", "Small", "token", "context", "RenderTokens", "import_mkimp", "import_jsx_runtime", "TOCNodes", "nodes", "context", "node", "index", "token", "children", "itemKey", "RenderTokens", "import_jsx_runtime", "TableOfContent", "context", "nodes", "TOCNodes", "import_mkimp", "import_jsx_runtime", "Text", "token", "context", "nodes", "i", "found", "whitespace", "abbr", "sbr", "isMatch", "isAtBoundary", "startIndex", "import_jsx_runtime", "YoutubeEmbed", "token", "vid", "title", "width", "height", "start", "allowfullscreen", "urlParams", "src", "import_jsx_runtime", "Overline", "token", "context", "RenderTokens", "import_jsx_runtime", "Metadata", "token", "import_jsx_runtime", "Codespan", "token", "import_mkimp", "import_jsx_runtime", "Link", "token", "context", "cleanHref", "RenderTokens", "isBlank", "import_mkimp", "import_jsx_runtime", "RefLink", "token", "context", "refLink", "RenderTokens", "cleanHref", "isBlank", "import_mkimp", "import_jsx_runtime", "Image", "token", "imgcleanHref", "import_jsx_runtime", "FootnoteRef", "token", "context", "import_jsx_runtime", "NewLine", "import_jsx_runtime", "Highlight", "token", "context", "RenderTokens", "import_jsx_runtime", "Strikethrough", "token", "context", "RenderTokens", "import_jsx_runtime", "Emoji", "token", "context", "emoji", "import_jsx_runtime", "Underline", "token", "context", "RenderTokens", "import_jsx_runtime", "Bold", "token", "context", "RenderTokens", "import_jsx_runtime", "Italic", "token", "context", "RenderTokens", "import_jsx_runtime", "Sup", "token", "context", "RenderTokens", "import_jsx_runtime", "Sub", "token", "context", "RenderTokens", "import_jsx_runtime", "RENDERER", "Heading", "Codeblock", "Conditional", "Horizontal", "Blockquote", "List", "ListItem", "Table", "Cell", "DefinitionList", "DefinitionListItem", "Tex", "Spoiler", "Include", "Html", "Paragraph", "FootnoteEnd", "Small", "TableOfContent", "Text", "YoutubeEmbed", "Overline", "Metadata", "Codespan", "Link", "RefLink", "Image", "FootnoteRef", "NewLine", "Highlight", "Strikethrough", "Emoji", "Underline", "Bold", "Italic", "Sup", "Sub", "RenderRootToken", "root", "sanitize", "withSection", "renderTarget", "overrideRenderer", "convertLaTeXToHTML", "highlightText", "overrideArticle", "overrideSanitization", "overrideSection", "context", "Article", "RenderCurrentTarget", "RenderTokens", "SectionPart", "Section", "section", "i", "headingToken", "t", "headingId", "sKey", "token", "si", "sectionKey", "RenderToken", "import_jsx_runtime", "MkImpRenderer", "emojis", "frontMatter", "include", "includeCode", "mdContent", "metadata", "overrideArticle", "overrideHLJS", "overrideLaTeX", "overrideRenderer", "overrideSection", "renderTarget", "sanitize", "tabulation", "withSection", "rootToken", "setRootToken", "flattenMetaData", "RenderRootToken"]
|
|
7
7
|
}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useEffect as $t,useState as At}from"react";import{Lexer as Dt}from"mkimp";function R(e,t="",o=new Map){if(e==null)return o;if(typeof e!="object")return t&&o.set(t,e),o;if(Array.isArray(e))return e.forEach((r,i)=>{R(r,t?`${t}[${i}]`:`${i}`,o)}),o;for(let[r,i]of Object.entries(e)){let a=t?`${t}.${r}`:r;R(i,a,o)}return o}import{generateSections as wt}from"mkimp";import{jsx as nt}from"react/jsx-runtime";function X({children:e}){return nt("article",{className:"md-article",role:"document","aria-label":"Page content",children:e})}import{useMemo as rt}from"react";import it from"katex";import at from"sanitize-html";import{jsx as Ie}from"react/jsx-runtime";function J({content:e,inline:t,displayMode:o}){let r=rt(()=>{let i=it.renderToString(e,{strict:!1,throwOnError:!1,output:"htmlAndMathml",displayMode:o});return at(i)},[e,o]);return t?Ie("span",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:r}}):Ie("div",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:r}})}import{jsx as we}from"react/jsx-runtime";function $({headingId:e,children:t}){return e?we("section",{className:"md-section",role:"region","aria-labelledby":e,children:t}):we("section",{children:t})}import{useMemo as lt}from"react";import Xe from"highlight.js";import mt from"sanitize-html";import{jsx as d,jsxs as A}from"react/jsx-runtime";function D({content:e,language:t,from:o}){let r=t?` language-${t}`:"",i=lt(()=>{let a=t?Xe.highlight(e,{language:t}):Xe.highlightAuto(e);return mt(a.value)},[e,t]);if(o!==void 0){let a=i.split(/\r?\n/);return d("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:d("code",{"aria-label":"Code",className:`md-code${r}`,children:A("table",{className:"md-code-table",children:[A("colgroup",{children:[d("col",{}),d("col",{className:"md-table-line-space"}),d("col",{})]}),d("tbody",{children:a.map((l,m)=>{let p=`line-${o}-${m}`;return A("tr",{className:"md-code-row",children:[d("td",{className:"md-number-ln",children:m+o}),d("td",{}),d("td",{className:"md-code-ln",dangerouslySetInnerHTML:{__html:l||" "}})]},p)})})]})})})}return d("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:d("code",{"aria-label":"Code",className:`md-code${r}`,dangerouslySetInnerHTML:{__html:i}})})}import{Fragment as st,jsx as dt}from"react/jsx-runtime";function y({token:e,context:t}){let o=t.currentRenderer[e.type];return o?o({token:e,context:t}):dt(st,{})}import{Fragment as pt,jsx as Je}from"react/jsx-runtime";function n({tokens:e,context:t}){return Je(pt,{children:e.map((o,r)=>{let i=`${o.type}-${r}`;return Je(y,{token:o,context:t},i)})})}import{jsx as ft}from"react/jsx-runtime";function O({context:e,renderTarget:t,children:o}){if(t==="article"){let r=e.Article;return ft(r,{children:o})}return o}import{jsx as s}from"react/jsx-runtime";function z({token:e,context:t}){let o=e.isUnderline?"md-heading md-h-underline":"md-heading";switch(e.depth){case 1:return s("h1",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 2:return s("h2",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 3:return s("h3",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 4:return s("h4",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 5:return s("h5",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});default:return s("h6",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})})}}import{jsx as S}from"react/jsx-runtime";function B({token:e,context:t}){let o=e.from!==void 0||e.to!==void 0?e.from||1:void 0,r=t.HLJS;return e.lang&&(e.lang!=="mermaid"||e.lang==="mermaid"&&o!==void 0)?S(r,{content:e.content,language:e.lang,from:o}):e.lang==="mermaid"?S("pre",{role:"region","aria-label":"Code block",className:"md-mermaid mermaid",children:e.content}):S("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:S("code",{"aria-label":"Code",className:"md-code",children:e.content})})}import{Fragment as ct,jsx as _}from"react/jsx-runtime";function K({token:e,context:t}){for(let o of e.branches){if(o.condition==="else")return _(n,{tokens:o.tokens,context:t});let r=t.metadata.get(o.condition);if(typeof r=="boolean"&&r===!0)return _(n,{tokens:o.tokens,context:t})}return _(ct,{})}import{jsx as ut}from"react/jsx-runtime";function F(){return ut("hr",{className:"md-line",role:"separator","aria-hidden":"true"})}import{jsx as $e}from"react/jsx-runtime";function U({token:e,context:t}){return $e("blockquote",{className:"md-blockquote",role:"note","aria-label":"A quote from the author",children:$e(n,{tokens:e.tokens,context:t})})}import{jsx as N}from"react/jsx-runtime";function q({token:e,context:t}){let o=`md-${e.ordered?"ol":"ul"}list`;if(e.ordered){let r=e.startAt?Number(e.startAt):void 0;return N("ol",{role:"list",className:o,start:r,children:N(n,{tokens:e.items,context:t})})}return N("ul",{role:"list",className:o,children:N(n,{tokens:e.items,context:t})})}import{jsx as Ae,jsxs as kt}from"react/jsx-runtime";function Y({token:e,context:t}){return kt("li",{role:"listitem",className:e.task?"md-taskitem":"md-listitem",children:[e.task&&Ae("input",{className:"md-checkbox",type:"checkbox",disabled:!0,checked:e.checked}),Ae(n,{tokens:e.tokens,context:t})]})}import{jsx as c,jsxs as Tt}from"react/jsx-runtime";function V({token:e,context:t}){return Tt("table",{className:"md-table",role:"table",children:[c("thead",{className:"md-thead",role:"rowgroup",children:c("tr",{className:"md-htablerow",children:c(n,{tokens:e.header,context:t})})}),c("tbody",{className:"md-tbody",role:"rowgroup",children:e.rows.map((o,r)=>{let i=`row-${r}`;return c("tr",{className:"md-tablerow",children:c(n,{tokens:o,context:t})},i)})})]})}import{jsx as L}from"react/jsx-runtime";function W({token:e,context:t}){return e.header?L("th",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:L(n,{tokens:e.tokens,context:t})}):L("td",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:L(n,{tokens:e.tokens,context:t})})}import{jsx as De}from"react/jsx-runtime";function Q({token:e,context:t}){return De("dl",{className:"md-deflist",children:De(n,{tokens:e.items,context:t})})}import{Fragment as bt,jsx as P,jsxs as yt}from"react/jsx-runtime";function G({token:e,context:t}){return yt(bt,{children:[P("dt",{className:"md-defterm",children:P(n,{tokens:e.term,context:t})}),e.definitions.map((o,r)=>{let i=`def-${r}`;return P("dd",{className:"md-defdef",children:P(n,{tokens:o,context:t})},i)})]})}import{jsx as gt}from"react/jsx-runtime";function Z({token:e,context:t}){let o=t.LaTeX;return gt(o,{content:e.text,displayMode:e.displayMode,inline:e.inline})}import{jsx as f,jsxs as Oe}from"react/jsx-runtime";function j({token:e,context:t}){return e.inline?Oe("label",{className:"md-spoiler",children:[f("input",{className:"md-spoiltrigger",type:"checkbox",hidden:!0}),f("span",{className:"md-spoilertext",children:f(n,{tokens:e.tokens,context:t})})]}):Oe("div",{className:"md-spoiler-toggle",children:[f("input",{type:"checkbox",id:`md-spoiler-label-${e.index}`,hidden:!0}),f("label",{htmlFor:`md-spoiler-label-${e.index}`,className:"md-spoiler-header",children:f(n,{tokens:e.title,context:t})}),f("div",{className:"md-spoiler-content",children:f(n,{tokens:e.tokens,context:t})})]})}import{jsx as ht}from"react/jsx-runtime";function ee({token:e,context:t}){return ht(n,{tokens:e.tokens,context:t})}import xt from"sanitize-html";import{jsx as Ct}from"react/jsx-runtime";function te({token:e,context:t}){let o=t.overrideSanitization??xt,r=t.sanitize?o(e.content):e.content;return Ct("div",{"data-id":"html-react",dangerouslySetInnerHTML:{__html:r},style:{display:"contents"}})}import{jsx as ze}from"react/jsx-runtime";function oe({token:e,context:t}){return ze("p",{className:"md-paragraph",children:ze(n,{tokens:e.tokens,context:t})})}import{jsx as g}from"react/jsx-runtime";function ne({context:e}){let t=e.footnoteRefs.size,o=[];for(let r=1;r<=t;r++){let i=`fn-${r-1}`,a=e.footnoteRefs.get(r),l=e.footnoteDefs.get(a);l!==void 0?o.push(g("li",{className:"md-fnitem",id:`fn:${a}`,children:g(n,{tokens:l,context:e})},i)):o.push(g("li",{className:"md-fnitem",id:`fn:${a}`,children:`[${a}]`},i))}return g("section",{className:"md-footnotes",children:g("ol",{className:"md-fnlist",dir:"auto",children:o})})}import{jsx as re}from"react/jsx-runtime";function ie({token:e,context:t}){return re("p",{className:"md-paragraph",children:re("small",{className:"md-small",children:re(n,{tokens:e.tokens,context:t})})})}import{generateTableOfContent as Rt}from"mkimp";import{Fragment as Be,jsx as h,jsxs as ae}from"react/jsx-runtime";function M({nodes:e,context:t}){return e.length===0?h(Be,{}):h("ul",{role:"list",className:"md-tableofcontent",children:e.map((o,r)=>{let{token:i,children:a}=o,l=i.id||`toc-${i.depth}-${r}`;return ae("li",{role:"listitem",className:"md-listitem",children:[i.id&&i.id.length>0?ae("a",{className:"md-link",href:`#${i.id}`,children:[i.headingIndex,h(n,{tokens:i.tokens,context:t})]}):ae(Be,{children:[i.headingIndex,h(n,{tokens:i.tokens,context:t})]}),h(M,{nodes:a,context:t})]},l)})})}import{jsx as St}from"react/jsx-runtime";function le({context:e}){let t=Rt(e.tableOfContents);return St(M,{nodes:t,context:e})}import{WHITESPACE_CHARS as me}from"mkimp";import{Fragment as _e,jsx as se}from"react/jsx-runtime";function de({token:e,context:t}){if(!t.abbrs||t.abbrs.length===0)return se(_e,{children:e.text});let o=[],r=0;for(;r<e.text.length;){let i=!1,a="";for(;r<e.text.length&&me.has(e.text[r]);)a+=e.text[r++];if(a&&o.push(a),r>=e.text.length)break;for(let l of t.abbrs){let m=e.text.slice(r,r+l.abbr.length),p=m===l.abbr,u=r+l.abbr.length===e.text.length||me.has(e.text[r+l.abbr.length]);if(p&&u){o.push(se("abbr",{title:l.title,children:m},`abbr-${r}`)),r+=l.abbr.length,i=!0;break}}if(!i){let l=r;for(;r<e.text.length&&!me.has(e.text[r]);)r++;o.push(e.text.slice(l,r))}}return se(_e,{children:o})}import{jsx as Ke}from"react/jsx-runtime";function pe({token:e}){let t=e.attributes.vid,o=e.title||"YouTube",r=e.attributes.width||"560",i=e.attributes.height||"315",a=e.attributes.start,l=e.attributes.allowfullscreen!=="false",m=new URLSearchParams;a&&m.set("start",a);let p=`https://www.youtube.com/embed/${t}${m.toString()?"?"+m.toString():""}`;return Ke("div",{className:"md-youtube",children:Ke("iframe",{width:r,height:i,src:p,title:o,allowFullScreen:l,style:{border:0}})})}import{jsx as Fe}from"react/jsx-runtime";function fe({token:e,context:t}){return Fe("u",{className:"md-overline",children:Fe(n,{tokens:e.tokens,context:t})})}import{Fragment as Nt,jsx as Lt}from"react/jsx-runtime";function ce({token:e}){return Lt(Nt,{children:e.value})}import{jsx as Pt}from"react/jsx-runtime";function ue({token:e}){return Pt("code",{"aria-label":"Code",className:"md-codespan",children:e.text})}import{cleanUrl as Mt}from"mkimp";import{jsx as ke}from"react/jsx-runtime";function Te({token:e,context:t}){let o=Mt(e.href);if(o===null)return ke(n,{tokens:e.label,context:t});let r=o.startsWith("#");return ke("a",{className:"md-link",href:o,title:e.title,target:r?"_blank":void 0,rel:r?"noopener":void 0,children:ke(n,{tokens:e.label,context:t})})}import{cleanUrl as Ht}from"mkimp";import{jsx as H}from"react/jsx-runtime";function be({token:e,context:t}){let o=t.reflinks.get(e.ref);if(o===void 0)return H(n,{tokens:e.label,context:t});let r=Ht(o.link);if(r===null)return H(n,{tokens:e.label,context:t});let i=r.startsWith("#");return H("a",{className:"md-link",href:r,title:o.title,target:i?"_blank":void 0,rel:i?"noopener":void 0,children:H(n,{tokens:e.label,context:t})})}import{cleanUrl as Et}from"mkimp";import{Fragment as vt,jsx as Ue}from"react/jsx-runtime";function ye({token:e}){let t=Et(e.href);return t===null?Ue(vt,{children:e.alt}):Ue("img",{src:t,alt:e.alt,className:"md-image",title:e.title})}import{jsx as qe}from"react/jsx-runtime";function ge({token:e,context:t}){return qe("sup",{id:`fnref:${e.ref}`,children:qe("a",{className:"md-link",href:`#fn:${e.ref}`,children:`[${t.footnoteIndexRefs.get(e.ref)??-1}]`})})}import{jsx as It}from"react/jsx-runtime";function he(){return It("br",{})}import{jsx as Ye}from"react/jsx-runtime";function xe({token:e,context:t}){return Ye("mark",{className:"md-highlight",children:Ye(n,{tokens:e.tokens,context:t})})}import{jsx as Ve}from"react/jsx-runtime";function Ce({token:e,context:t}){return Ve("del",{className:"md-strikethrough",children:Ve(n,{tokens:e.tokens,context:t})})}import{Fragment as We,jsx as E}from"react/jsx-runtime";function Re({token:e,context:t}){let o=t.emojis[e.name];if(o===void 0)return E(We,{children:`:${e.name}:`});switch(o.type){case"img":return E("img",{alt:o.alt??e.name,src:o.url,width:o.width??20,height:o.height??20});case"i":return E("i",{className:o.className});default:return E(We,{children:o.char})}}import{jsx as Qe}from"react/jsx-runtime";function Se({token:e,context:t}){return Qe("u",{className:"md-underline",children:Qe(n,{tokens:e.tokens,context:t})})}import{jsx as Ge}from"react/jsx-runtime";function Ne({token:e,context:t}){return Ge("strong",{className:"md-bold",children:Ge(n,{tokens:e.tokens,context:t})})}import{jsx as Ze}from"react/jsx-runtime";function Le({token:e,context:t}){return Ze("em",{className:"md-italic",children:Ze(n,{tokens:e.tokens,context:t})})}import{jsx as je}from"react/jsx-runtime";function Pe({token:e,context:t}){return je("sup",{className:"md-sup",children:je(n,{tokens:e.tokens,context:t})})}import{jsx as et}from"react/jsx-runtime";function Me({token:e,context:t}){return et("sub",{className:"md-sub",children:et(n,{tokens:e.tokens,context:t})})}import{Fragment as Jt,jsx as x}from"react/jsx-runtime";var Xt={heading:z,codeblock:B,conditional:K,horizontal:F,blockquote:U,list:q,listItem:Y,table:V,cell:W,definitionList:Q,definitionListItem:G,tex:Z,spoiler:j,include:ee,html:te,paragraph:oe,footnoteEnd:ne,small:ie,tableOfContent:le,text:de,youtubeEmbed:pe,overline:fe,metadata:ce,codespan:ue,link:Te,reflink:be,image:ye,footnoteRef:ge,newline:he,highlight:xe,strikethrough:Ce,emoji:Re,underline:Se,bold:Ne,italic:Le,sup:Pe,sub:Me};function He({root:e,sanitize:t,withSection:o,renderTarget:r,overrideRenderer:i,overrideLaTeX:a,overrideHLJS:l,overrideArticle:m,overrideSanitization:p,overrideSection:u}){if(!e)return x(Jt,{});let k={abbrs:e.abbrs,currentRenderer:{...Xt,...i},emojis:e.emojis,footnoteDefs:e.footnoteDefs,footnoteIndexRefs:e.footnoteIndexRefs,footnoteRefs:e.footnoteRefs,metadata:e.metadata,reflinks:e.reflinks,sanitize:t,tableOfContents:e.tableOfContents,Article:m??X,LaTeX:a??J,HLJS:l??D,overrideSanitization:p};if(!o)return x(O,{context:k,renderTarget:r,children:x(n,{tokens:e.tokens,context:k})});let v=u??$;return wt(e.tokens).map((T,I)=>{let C=T.find(b=>b.type==="heading"),w=C?C.id:void 0,ve=`sec-${I}`;return x(v,{headingId:w,children:T.map((b,tt)=>{let ot=`section-${tt}`;return x(y,{token:b,context:k},ot)})},ve)})}import{jsx as zt}from"react/jsx-runtime";function Ot({emojis:e,frontMatter:t,include:o,includeCode:r,mdContent:i,metadata:a,overrideArticle:l,overrideHLJS:m,overrideLaTeX:p,overrideRenderer:u,overrideSection:k,renderTarget:v="raw",sanitize:Ee=!0,tabulation:T=4,withSection:I=!1}){let[C,w]=At();return $t(()=>{(async()=>{let b=await Dt.lex(i,{tabulation:T,metadata:R(a),emojis:e,frontMatter:t,include:o,includeCode:r});w(b)})()},[e,t,o,r,i,a,T]),zt(He,{renderTarget:v,root:C,sanitize:Ee,overrideRenderer:u,overrideLaTeX:p,overrideHLJS:m,overrideArticle:l,overrideSection:k,withSection:I})}export{Ot as default};
|
|
1
|
+
import{useEffect as At,useState as Xt}from"react";import{Lexer as Jt}from"mkimp";function R(e,t="",o=new Map){if(e==null)return o;if(typeof e!="object")return t&&o.set(t,e),o;if(Array.isArray(e))return e.forEach((r,i)=>{R(r,t?`${t}[${i}]`:`${i}`,o)}),o;for(let[r,i]of Object.entries(e)){let a=t?`${t}.${r}`:r;R(i,a,o)}return o}import{generateSections as wt}from"mkimp";import{jsx as nt}from"react/jsx-runtime";function $({children:e}){return nt("article",{className:"md-article",role:"document","aria-label":"Page content",children:e})}import{jsx as we}from"react/jsx-runtime";function A({headingId:e,children:t}){return e?we("section",{className:"md-section",role:"region","aria-labelledby":e,children:t}):we("section",{children:t})}import{Fragment as rt,jsx as it}from"react/jsx-runtime";function b({token:e,context:t}){let o=t.currentRenderer[e.type];return o?o({token:e,context:t}):it(rt,{})}import{Fragment as at,jsx as Ee}from"react/jsx-runtime";function n({tokens:e,context:t}){return Ee(at,{children:e.map((o,r)=>{let i=`${o.type}-${r}`;return Ee(b,{token:o,context:t},i)})})}import{jsx as lt}from"react/jsx-runtime";function X({context:e,renderTarget:t,children:o}){if(t==="article"){let r=e.Article;return lt(r,{children:o})}return o}import{jsx as s}from"react/jsx-runtime";function J({token:e,context:t}){let o=e.isUnderline?"md-heading md-h-underline":"md-heading";switch(e.depth){case 1:return s("h1",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 2:return s("h2",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 3:return s("h3",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 4:return s("h4",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});case 5:return s("h5",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})});default:return s("h6",{id:e.id,"aria-level":e.depth,className:o,children:s(n,{tokens:e.tokens,context:t})})}}import{useMemo as mt}from"react";import st from"sanitize-html";import{jsx as d,jsxs as D}from"react/jsx-runtime";function O({content:e,language:t,from:o,callback:r}){let i=t?` language-${t}`:"",a=mt(()=>st(r(e,t)),[e,t,r]);if(o!==void 0){let l=a.split(/\r?\n/);return d("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:d("code",{"aria-label":"Code",className:`md-code${i}`,children:D("table",{className:"md-code-table",children:[D("colgroup",{children:[d("col",{}),d("col",{className:"md-table-line-space"}),d("col",{})]}),d("tbody",{children:l.map((m,p)=>{let c=`line-${o}-${p}`;return D("tr",{className:"md-code-row",children:[d("td",{className:"md-number-ln",children:p+o}),d("td",{}),d("td",{className:"md-code-ln",dangerouslySetInnerHTML:{__html:m||" "}})]},c)})})]})})})}return d("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:d("code",{"aria-label":"Code",className:`md-code${i}`,dangerouslySetInnerHTML:{__html:a}})})}import{jsx as N}from"react/jsx-runtime";function z({token:e,context:t}){let o=e.from!==void 0||e.to!==void 0?e.from||1:void 0;return t.highlightText&&e.lang&&(e.lang!=="mermaid"||e.lang==="mermaid"&&o!==void 0)?N(O,{content:e.content,language:e.lang,from:o,callback:t.highlightText}):e.lang==="mermaid"?N("pre",{role:"region","aria-label":"Code block",className:"md-mermaid mermaid",children:e.content}):N("pre",{role:"region","aria-label":"Code block",className:"md-precode",children:N("code",{"aria-label":"Code",className:"md-code",children:e.content})})}import{Fragment as dt,jsx as B}from"react/jsx-runtime";function _({token:e,context:t}){for(let o of e.branches){if(o.condition==="else")return B(n,{tokens:o.tokens,context:t});let r=t.metadata.get(o.condition);if(typeof r=="boolean"&&r===!0)return B(n,{tokens:o.tokens,context:t})}return B(dt,{})}import{jsx as pt}from"react/jsx-runtime";function F(){return pt("hr",{className:"md-line",role:"separator","aria-hidden":"true"})}import{jsx as $e}from"react/jsx-runtime";function K({token:e,context:t}){return $e("blockquote",{className:"md-blockquote",role:"note","aria-label":"A quote from the author",children:$e(n,{tokens:e.tokens,context:t})})}import{jsx as S}from"react/jsx-runtime";function U({token:e,context:t}){let o=`md-${e.ordered?"ol":"ul"}list`;if(e.ordered){let r=e.startAt?Number(e.startAt):void 0;return S("ol",{role:"list",className:o,start:r,children:S(n,{tokens:e.items,context:t})})}return S("ul",{role:"list",className:o,children:S(n,{tokens:e.items,context:t})})}import{jsx as Ae,jsxs as ft}from"react/jsx-runtime";function q({token:e,context:t}){return ft("li",{role:"listitem",className:e.task?"md-taskitem":"md-listitem",children:[e.task&&Ae("input",{className:"md-checkbox",type:"checkbox",disabled:!0,checked:e.checked}),Ae(n,{tokens:e.tokens,context:t})]})}import{jsx as u,jsxs as ct}from"react/jsx-runtime";function Y({token:e,context:t}){return ct("table",{className:"md-table",role:"table",children:[u("thead",{className:"md-thead",role:"rowgroup",children:u("tr",{className:"md-htablerow",children:u(n,{tokens:e.header,context:t})})}),u("tbody",{className:"md-tbody",role:"rowgroup",children:e.rows.map((o,r)=>{let i=`row-${r}`;return u("tr",{className:"md-tablerow",children:u(n,{tokens:o,context:t})},i)})})]})}import{jsx as L}from"react/jsx-runtime";function V({token:e,context:t}){return e.header?L("th",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:L(n,{tokens:e.tokens,context:t})}):L("td",{className:"md-tablecell",style:{textAlign:e.align!=="default"?e.align:void 0},children:L(n,{tokens:e.tokens,context:t})})}import{jsx as Xe}from"react/jsx-runtime";function W({token:e,context:t}){return Xe("dl",{className:"md-deflist",children:Xe(n,{tokens:e.items,context:t})})}import{Fragment as ut,jsx as M,jsxs as kt}from"react/jsx-runtime";function Q({token:e,context:t}){return kt(ut,{children:[M("dt",{className:"md-defterm",children:M(n,{tokens:e.term,context:t})}),e.definitions.map((o,r)=>{let i=`def-${r}`;return M("dd",{className:"md-defdef",children:M(n,{tokens:o,context:t})},i)})]})}import{useMemo as Tt}from"react";import gt from"sanitize-html";import{jsx as Je}from"react/jsx-runtime";function G({content:e,inline:t,displayMode:o,callback:r}){let i=Tt(()=>gt(r(e,o)),[e,o,r]);return t?Je("span",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:i},style:{display:o?"inline-block":void 0}}):Je("div",{"data-id":"katex-react",dangerouslySetInnerHTML:{__html:i}})}import{Fragment as bt,jsx as De}from"react/jsx-runtime";function Z({token:e,context:t}){let o=t.convertLaTeXToHTML;return o!==void 0?De(G,{content:e.text,displayMode:e.displayMode,inline:e.inline,callback:o}):De(bt,{children:e.text})}import{jsx as f,jsxs as Oe}from"react/jsx-runtime";function j({token:e,context:t}){return e.inline?Oe("label",{className:"md-spoiler",children:[f("input",{className:"md-spoiltrigger",type:"checkbox",hidden:!0}),f("span",{className:"md-spoilertext",children:f(n,{tokens:e.tokens,context:t})})]}):Oe("div",{className:"md-spoiler-toggle",children:[f("input",{type:"checkbox",id:`md-spoiler-label-${e.index}`,hidden:!0}),f("label",{htmlFor:`md-spoiler-label-${e.index}`,className:"md-spoiler-header",children:f(n,{tokens:e.title,context:t})}),f("div",{className:"md-spoiler-content",children:f(n,{tokens:e.tokens,context:t})})]})}import{jsx as yt}from"react/jsx-runtime";function ee({token:e,context:t}){return yt(n,{tokens:e.tokens,context:t})}import ht from"sanitize-html";import{jsx as xt}from"react/jsx-runtime";function te({token:e,context:t}){let o=t.overrideSanitization??ht,r=t.sanitize?o(e.content):e.content;return xt("div",{"data-id":"html-react",dangerouslySetInnerHTML:{__html:r},style:{display:"contents"}})}import{jsx as ze}from"react/jsx-runtime";function oe({token:e,context:t}){return ze("p",{className:"md-paragraph",children:ze(n,{tokens:e.tokens,context:t})})}import{jsx as y}from"react/jsx-runtime";function ne({context:e}){let t=e.footnoteRefs.size,o=[];for(let r=1;r<=t;r++){let i=`fn-${r-1}`,a=e.footnoteRefs.get(r),l=e.footnoteDefs.get(a);l!==void 0?o.push(y("li",{className:"md-fnitem",id:`fn:${a}`,children:y(n,{tokens:l,context:e})},i)):o.push(y("li",{className:"md-fnitem",id:`fn:${a}`,children:`[${a}]`},i))}return y("section",{className:"md-footnotes",children:y("ol",{className:"md-fnlist",dir:"auto",children:o})})}import{jsx as re}from"react/jsx-runtime";function ie({token:e,context:t}){return re("p",{className:"md-paragraph",children:re("small",{className:"md-small",children:re(n,{tokens:e.tokens,context:t})})})}import{generateTableOfContent as Ct}from"mkimp";import{Fragment as Be,jsx as h,jsxs as ae}from"react/jsx-runtime";function P({nodes:e,context:t}){return e.length===0?h(Be,{}):h("ul",{role:"list",className:"md-tableofcontent",children:e.map((o,r)=>{let{token:i,children:a}=o,l=i.id||`toc-${i.depth}-${r}`;return ae("li",{role:"listitem",className:"md-listitem",children:[i.id&&i.id.length>0?ae("a",{className:"md-link",href:`#${i.id}`,children:[i.headingIndex,h(n,{tokens:i.tokens,context:t})]}):ae(Be,{children:[i.headingIndex,h(n,{tokens:i.tokens,context:t})]}),h(P,{nodes:a,context:t})]},l)})})}import{jsx as Rt}from"react/jsx-runtime";function le({context:e}){let t=Ct(e.tableOfContents);return Rt(P,{nodes:t,context:e})}import{WHITESPACE_CHARS as me}from"mkimp";import{Fragment as _e,jsx as se}from"react/jsx-runtime";function de({token:e,context:t}){if(!t.abbrs||t.abbrs.length===0)return se(_e,{children:e.text});let o=[],r=0;for(;r<e.text.length;){let i=!1,a="";for(;r<e.text.length&&me.has(e.text[r]);)a+=e.text[r++];if(a&&o.push(a),r>=e.text.length)break;for(let l of t.abbrs){let m=e.text.slice(r,r+l.abbr.length),p=m===l.abbr,c=r+l.abbr.length===e.text.length||me.has(e.text[r+l.abbr.length]);if(p&&c){o.push(se("abbr",{title:l.title,children:m},`abbr-${r}`)),r+=l.abbr.length,i=!0;break}}if(!i){let l=r;for(;r<e.text.length&&!me.has(e.text[r]);)r++;o.push(e.text.slice(l,r))}}return se(_e,{children:o})}import{jsx as Fe}from"react/jsx-runtime";function pe({token:e}){let t=e.attributes.vid,o=e.title||"YouTube",r=e.attributes.width||"560",i=e.attributes.height||"315",a=e.attributes.start,l=e.attributes.allowfullscreen!=="false",m=new URLSearchParams;a&&m.set("start",a);let p=`https://www.youtube.com/embed/${t}${m.toString()?"?"+m.toString():""}`;return Fe("div",{className:"md-youtube",children:Fe("iframe",{width:r,height:i,src:p,title:o,allowFullScreen:l,style:{border:0}})})}import{jsx as Ke}from"react/jsx-runtime";function fe({token:e,context:t}){return Ke("u",{className:"md-overline",children:Ke(n,{tokens:e.tokens,context:t})})}import{Fragment as Nt,jsx as St}from"react/jsx-runtime";function ce({token:e}){return St(Nt,{children:e.value})}import{jsx as Lt}from"react/jsx-runtime";function ue({token:e}){return Lt("code",{"aria-label":"Code",className:"md-codespan",children:e.text})}import{cleanUrl as Mt}from"mkimp";import{jsx as ke}from"react/jsx-runtime";function Te({token:e,context:t}){let o=Mt(e.href);if(o===null)return ke(n,{tokens:e.label,context:t});let r=o.startsWith("#");return ke("a",{className:"md-link",href:o,title:e.title,target:r?"_blank":void 0,rel:r?"noopener":void 0,children:ke(n,{tokens:e.label,context:t})})}import{cleanUrl as Pt}from"mkimp";import{jsx as H}from"react/jsx-runtime";function ge({token:e,context:t}){let o=t.reflinks.get(e.ref);if(o===void 0)return H(n,{tokens:e.label,context:t});let r=Pt(o.link);if(r===null)return H(n,{tokens:e.label,context:t});let i=r.startsWith("#");return H("a",{className:"md-link",href:r,title:o.title,target:i?"_blank":void 0,rel:i?"noopener":void 0,children:H(n,{tokens:e.label,context:t})})}import{cleanUrl as Ht}from"mkimp";import{Fragment as vt,jsx as Ue}from"react/jsx-runtime";function be({token:e}){let t=Ht(e.href);return t===null?Ue(vt,{children:e.alt}):Ue("img",{src:t,alt:e.alt,className:"md-image",title:e.title})}import{jsx as qe}from"react/jsx-runtime";function ye({token:e,context:t}){return qe("sup",{id:`fnref:${e.ref}`,children:qe("a",{className:"md-link",href:`#fn:${e.ref}`,children:`[${t.footnoteIndexRefs.get(e.ref)??-1}]`})})}import{jsx as It}from"react/jsx-runtime";function he(){return It("br",{})}import{jsx as Ye}from"react/jsx-runtime";function xe({token:e,context:t}){return Ye("mark",{className:"md-highlight",children:Ye(n,{tokens:e.tokens,context:t})})}import{jsx as Ve}from"react/jsx-runtime";function Ce({token:e,context:t}){return Ve("del",{className:"md-strikethrough",children:Ve(n,{tokens:e.tokens,context:t})})}import{Fragment as We,jsx as v}from"react/jsx-runtime";function Re({token:e,context:t}){let o=t.emojis[e.name];if(o===void 0)return v(We,{children:`:${e.name}:`});switch(o.type){case"img":return v("img",{alt:o.alt??e.name,src:o.url,width:o.width??20,height:o.height??20});case"i":return v("i",{className:o.className});default:return v(We,{children:o.char})}}import{jsx as Qe}from"react/jsx-runtime";function Ne({token:e,context:t}){return Qe("u",{className:"md-underline",children:Qe(n,{tokens:e.tokens,context:t})})}import{jsx as Ge}from"react/jsx-runtime";function Se({token:e,context:t}){return Ge("strong",{className:"md-bold",children:Ge(n,{tokens:e.tokens,context:t})})}import{jsx as Ze}from"react/jsx-runtime";function Le({token:e,context:t}){return Ze("em",{className:"md-italic",children:Ze(n,{tokens:e.tokens,context:t})})}import{jsx as je}from"react/jsx-runtime";function Me({token:e,context:t}){return je("sup",{className:"md-sup",children:je(n,{tokens:e.tokens,context:t})})}import{jsx as et}from"react/jsx-runtime";function Pe({token:e,context:t}){return et("sub",{className:"md-sub",children:et(n,{tokens:e.tokens,context:t})})}import{Fragment as $t,jsx as x}from"react/jsx-runtime";var Et={heading:J,codeblock:z,conditional:_,horizontal:F,blockquote:K,list:U,listItem:q,table:Y,cell:V,definitionList:W,definitionListItem:Q,tex:Z,spoiler:j,include:ee,html:te,paragraph:oe,footnoteEnd:ne,small:ie,tableOfContent:le,text:de,youtubeEmbed:pe,overline:fe,metadata:ce,codespan:ue,link:Te,reflink:ge,image:be,footnoteRef:ye,newline:he,highlight:xe,strikethrough:Ce,emoji:Re,underline:Ne,bold:Se,italic:Le,sup:Me,sub:Pe};function He({root:e,sanitize:t,withSection:o,renderTarget:r,overrideRenderer:i,convertLaTeXToHTML:a,highlightText:l,overrideArticle:m,overrideSanitization:p,overrideSection:c}){if(!e)return x($t,{});let k={abbrs:e.abbrs,currentRenderer:{...Et,...i},emojis:e.emojis,footnoteDefs:e.footnoteDefs,footnoteIndexRefs:e.footnoteIndexRefs,footnoteRefs:e.footnoteRefs,metadata:e.metadata,reflinks:e.reflinks,sanitize:t,tableOfContents:e.tableOfContents,Article:m??$,convertLaTeXToHTML:a,highlightText:l,overrideSanitization:p};if(!o)return x(X,{context:k,renderTarget:r,children:x(n,{tokens:e.tokens,context:k})});let I=c??A;return wt(e.tokens).map((T,w)=>{let C=T.find(g=>g.type==="heading"),E=C?C.id:void 0,Ie=`sec-${w}`;return x(I,{headingId:E,children:T.map((g,tt)=>{let ot=`section-${tt}`;return x(b,{token:g,context:k},ot)})},Ie)})}import{jsx as Ot}from"react/jsx-runtime";function Dt({emojis:e,frontMatter:t,include:o,includeCode:r,mdContent:i,metadata:a,overrideArticle:l,overrideHLJS:m,overrideLaTeX:p,overrideRenderer:c,overrideSection:k,renderTarget:I="raw",sanitize:ve=!0,tabulation:T=4,withSection:w=!1}){let[C,E]=Xt();return At(()=>{(async()=>{let g=await Jt.lex(i,{tabulation:T,metadata:R(a),emojis:e,frontMatter:t,include:o,includeCode:r});E(g)})()},[e,t,o,r,i,a,T]),Ot(He,{renderTarget:I,root:C,sanitize:ve,overrideRenderer:c,overrideLaTeX:p,overrideHLJS:m,overrideArticle:l,overrideSection:k,withSection:w})}export{Dt as default};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/index.tsx", "../src/utils/flattenMapData.ts", "../src/renderer/RenderRootToken.tsx", "../src/renderer/Article.tsx", "../src/renderer/
|
|
4
|
-
"sourcesContent": ["import { useEffect, useState, type JSX } from 'react';\nimport {\n type EmojiRecord,\n Lexer,\n type RenderTarget,\n type RootToken,\n} from 'mkimp';\nimport { flattenMetaData } from './utils/flattenMapData';\nimport RenderRootToken, {\n type TokenRendering,\n} from './renderer/RenderRootToken';\nimport { type ArticleProps } from './renderer/Article';\nimport { type LaTeXProps } from './renderer/LaTeX';\nimport { type SectionProps } from './renderer/Section';\nimport { type HLJSProps } from './renderer/HLJS';\n\nexport {\n type TokenRendering,\n type TokenContext,\n} from './renderer/RenderRootToken';\nexport { type ArticleProps } from './renderer/Article';\nexport { type LaTeXProps } from './renderer/LaTeX';\nexport { type SectionProps } from './renderer/Section';\nexport { type HLJSProps } from './renderer/HLJS';\n\nexport type MetaDataPrimitives =\n | string\n | bigint\n | number\n | boolean\n | null\n | undefined;\nexport type MetaData =\n | MetaDataPrimitives\n | MetaData[]\n | { [key: string | number | symbol]: MetaData };\n\nexport interface MkImpRendererProps {\n emojis?: Record<string, EmojiRecord>;\n frontMatter?: (content: string) => Promise<MetaData>;\n include?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n includeCode?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n mdContent: string;\n metadata?: MetaData;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideHLJS?: (props: HLJSProps) => JSX.Element;\n overrideLaTeX?: (props: LaTeXProps) => JSX.Element;\n overrideRenderer?: Partial<TokenRendering>;\n overrideSection?: (props: SectionProps) => JSX.Element;\n renderTarget?: RenderTarget;\n sanitize?: boolean;\n tabulation?: number;\n withSection?: boolean;\n}\n\nexport default function MkImpRenderer({\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n overrideArticle,\n overrideHLJS,\n overrideLaTeX,\n overrideRenderer,\n overrideSection,\n renderTarget = 'raw',\n sanitize = true,\n tabulation = 4,\n withSection = false,\n}: MkImpRendererProps) {\n const [rootToken, setRootToken] = useState<RootToken>();\n\n useEffect(() => {\n const generateMarkdown = async () => {\n const rootToken = await Lexer.lex(mdContent, {\n tabulation,\n metadata: flattenMetaData(metadata),\n emojis,\n frontMatter,\n include,\n includeCode,\n });\n setRootToken(rootToken);\n };\n generateMarkdown();\n }, [\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n tabulation,\n ]);\n\n return (\n <RenderRootToken\n {...{\n renderTarget,\n root: rootToken,\n sanitize,\n overrideRenderer,\n overrideLaTeX,\n overrideHLJS,\n overrideArticle,\n overrideSection,\n withSection,\n }}\n />\n );\n}\n", "import { MetaData } from 'src';\n\ntype MapValue = string | number | bigint | boolean;\n\nexport function flattenMetaData(\n data: MetaData,\n prefix = '',\n result = new Map<string, MapValue>()\n): Map<string, MapValue> {\n // Handle Primitives (The \"Leaf\" nodes)\n if (data === null || data === undefined) return result;\n\n if (typeof data !== 'object') {\n if (prefix) result.set(prefix, data as MapValue);\n return result;\n }\n\n // Handle Arrays\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n flattenMetaData(\n item,\n prefix ? `${prefix}[${index}]` : `${index}`,\n result\n );\n });\n return result;\n }\n\n // Handle Objects\n for (const [key, value] of Object.entries(data)) {\n const newKey = prefix ? `${prefix}.${key}` : key;\n flattenMetaData(value, newKey, result);\n }\n\n return result;\n}\n", "import {\n type TokenType,\n type RootToken,\n type ExtractToken,\n type MdToken,\n type EmojiRecord,\n type HeadingToken,\n type AbbrToken,\n type LinkRef,\n type RenderTarget,\n generateSections,\n} from 'mkimp';\nimport { type JSX } from 'react';\nimport Article, { type ArticleProps } from './Article';\nimport LaTeX, { type LaTeXProps } from './LaTeX';\nimport Section, { type SectionProps } from './Section';\nimport HLJS, { type HLJSProps } from './HLJS';\nimport RenderTokens from './RenderTokens';\nimport RenderCurrentTarget from './RenderCurrentTarget';\nimport RenderToken from './RenderToken';\nimport Heading from './tokens/Heading';\nimport Codeblock from './tokens/Codeblock';\nimport Conditional from './tokens/Conditional';\nimport Horizontal from './tokens/Horizontal';\nimport Blockquote from './tokens/Blockquote';\nimport List from './tokens/List';\nimport ListItem from './tokens/ListItem';\nimport Table from './tokens/Table';\nimport Cell from './tokens/Cell';\nimport DefinitionList from './tokens/DefinitionList';\nimport DefinitionListItem from './tokens/DefinitionListItem';\nimport Tex from './tokens/Tex';\nimport Spoiler from './tokens/Spoiler';\nimport Include from './tokens/Include';\nimport Html from './tokens/Html';\nimport Paragraph from './tokens/Paragraph';\nimport FootnoteEnd from './tokens/FootnoteEnd';\nimport Small from './tokens/Small';\nimport TableOfContent from './tokens/TableOfContent';\nimport Text from './tokens/Text';\nimport YoutubeEmbed from './tokens/YoutubeEmbed';\nimport Overline from './tokens/Overline';\nimport Metadata from './tokens/Metadata';\nimport Codespan from './tokens/Codespan';\nimport Link from './tokens/Link';\nimport RefLink from './tokens/RefLink';\nimport Image from './tokens/Image';\nimport FootnoteRef from './tokens/FootnoteRef';\nimport NewLine from './tokens/NewLine';\nimport Highlight from './tokens/Highlight';\nimport Strikethrough from './tokens/Strikethrough';\nimport Emoji from './tokens/Emoji';\nimport Underline from './tokens/Underline';\nimport Bold from './tokens/Bold';\nimport Italic from './tokens/Italic';\nimport Sup from './tokens/Sup';\nimport Sub from './tokens/Sub';\n\nexport type TokenRendering = {\n [K in TokenType]: (props: TokenContext<ExtractToken<K>>) => JSX.Element;\n};\n\nexport type TokenContext<T extends MdToken> = {\n token: T;\n context: RendererContext;\n};\n\nexport interface RendererContext {\n abbrs: AbbrToken[];\n currentRenderer: TokenRendering;\n emojis: Record<string, EmojiRecord>;\n footnoteDefs: Map<string, MdToken[]>;\n footnoteIndexRefs: Map<string, number>;\n footnoteRefs: Map<number, string>;\n metadata: Map<string, string | number | boolean | bigint>;\n reflinks: Map<string, LinkRef>;\n tableOfContents: HeadingToken[];\n sanitize: boolean;\n Article: (props: ArticleProps) => JSX.Element;\n LaTeX: (props: LaTeXProps) => JSX.Element;\n HLJS: (props: HLJSProps) => JSX.Element;\n overrideSanitization?: (html: string) => string;\n}\n\nconst RENDERER: TokenRendering = {\n heading: Heading,\n codeblock: Codeblock,\n conditional: Conditional,\n horizontal: Horizontal,\n blockquote: Blockquote,\n list: List,\n listItem: ListItem,\n table: Table,\n cell: Cell,\n definitionList: DefinitionList,\n definitionListItem: DefinitionListItem,\n tex: Tex,\n spoiler: Spoiler,\n include: Include,\n html: Html,\n paragraph: Paragraph,\n footnoteEnd: FootnoteEnd,\n small: Small,\n tableOfContent: TableOfContent,\n text: Text,\n youtubeEmbed: YoutubeEmbed,\n overline: Overline,\n metadata: Metadata,\n codespan: Codespan,\n link: Link,\n reflink: RefLink,\n image: Image,\n footnoteRef: FootnoteRef,\n newline: NewLine,\n highlight: Highlight,\n strikethrough: Strikethrough,\n emoji: Emoji,\n underline: Underline,\n bold: Bold,\n italic: Italic,\n sup: Sup,\n sub: Sub,\n};\n\nexport interface RenderRootTokenProps {\n root: RootToken | undefined;\n sanitize: boolean;\n withSection: boolean;\n renderTarget: RenderTarget;\n overrideRenderer?: Partial<TokenRendering>;\n overrideLaTeX?: (props: LaTeXProps) => JSX.Element;\n overrideHLJS?: (props: HLJSProps) => JSX.Element;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideSanitization?: (html: string) => string;\n overrideSection?: (props: SectionProps) => JSX.Element;\n}\n\nexport default function RenderRootToken({\n root,\n sanitize,\n withSection,\n renderTarget,\n overrideRenderer,\n overrideLaTeX,\n overrideHLJS,\n overrideArticle,\n overrideSanitization,\n overrideSection,\n}: RenderRootTokenProps) {\n if (!root) return <></>;\n const context: RendererContext = {\n abbrs: root.abbrs,\n currentRenderer: { ...RENDERER, ...overrideRenderer },\n emojis: root.emojis,\n footnoteDefs: root.footnoteDefs,\n footnoteIndexRefs: root.footnoteIndexRefs,\n footnoteRefs: root.footnoteRefs,\n metadata: root.metadata,\n reflinks: root.reflinks,\n sanitize,\n tableOfContents: root.tableOfContents,\n Article: overrideArticle ?? Article,\n LaTeX: overrideLaTeX ?? LaTeX,\n HLJS: overrideHLJS ?? HLJS,\n overrideSanitization,\n };\n if (!withSection) {\n return (\n <RenderCurrentTarget context={context} renderTarget={renderTarget}>\n <RenderTokens tokens={root.tokens} context={context} />\n </RenderCurrentTarget>\n );\n }\n const SectionPart = overrideSection ?? Section;\n const sections: MdToken[][] = generateSections(root.tokens);\n\n return sections.map((section, i) => {\n const headingToken = section.find((t) => t.type === 'heading');\n const headingId = headingToken ? headingToken.id : undefined;\n const sKey = `sec-${i}`;\n return (\n <SectionPart key={sKey} headingId={headingId}>\n {section.map((token, si) => {\n const sectionKey = `section-${si}`;\n return (\n <RenderToken key={sectionKey} token={token} context={context} />\n );\n })}\n </SectionPart>\n );\n });\n}\n", "import { type JSX } from 'react';\n\nexport interface ArticleProps {\n children: JSX.Element;\n}\n\nexport default function Article({ children }: ArticleProps) {\n return (\n <article className=\"md-article\" role=\"document\" aria-label=\"Page content\">\n {children}\n </article>\n );\n}\n", "import { useMemo } from 'react';\nimport KaTeX from 'katex';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface LaTeXProps {\n content: string;\n inline: boolean;\n displayMode: boolean;\n}\n\nexport default function LaTeX({ content, inline, displayMode }: LaTeXProps) {\n const html = useMemo(() => {\n const latex = KaTeX.renderToString(content, {\n strict: false,\n throwOnError: false,\n output: 'htmlAndMathml',\n displayMode,\n });\n return sanitizeHtml(latex);\n }, [content, displayMode]);\n if (inline) {\n return (\n <span\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n }\n return (\n <div\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n}\n", "export interface SectionProps {\n headingId: string | undefined;\n children: React.ReactNode;\n}\n\nexport default function Section({ headingId, children }: SectionProps) {\n if (headingId) {\n return (\n <section className=\"md-section\" role=\"region\" aria-labelledby={headingId}>\n {children}\n </section>\n );\n }\n return <section>{children}</section>;\n}\n", "import { useMemo, type JSX } from 'react';\nimport hljs from 'highlight.js';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface HLJSProps {\n content: string;\n language?: string;\n from?: number;\n}\n\nexport default function HLJS({\n content,\n language,\n from,\n}: HLJSProps): JSX.Element {\n const lang = language ? ` language-${language}` : '';\n\n const highlightedHtml = useMemo(() => {\n const result = language\n ? hljs.highlight(content, { language })\n : hljs.highlightAuto(content);\n return sanitizeHtml(result.value);\n }, [content, language]);\n\n if (from !== undefined) {\n const lines = highlightedHtml.split(/\\r?\\n/);\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className={`md-code${lang}`}>\n <table className=\"md-code-table\">\n <colgroup>\n <col />\n <col className=\"md-table-line-space\" />\n <col />\n </colgroup>\n <tbody>\n {lines.map((line, i) => {\n const lineKey = `line-${from}-${i}`;\n return (\n <tr key={lineKey} className=\"md-code-row\">\n <td className=\"md-number-ln\">{i + from}</td>\n <td></td>\n <td\n className=\"md-code-ln\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: line || ' ' }}\n />\n </tr>\n );\n })}\n </tbody>\n </table>\n </code>\n </pre>\n );\n }\n\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code\n aria-label=\"Code\"\n className={`md-code${lang}`}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n </pre>\n );\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\n\nexport default function RenderToken({\n token,\n context,\n}: {\n token: MdToken;\n context: RendererContext;\n}) {\n const renderFn = context.currentRenderer[token.type];\n if (!renderFn) return <></>;\n return renderFn({\n token: token,\n context,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\nimport RenderToken from './RenderToken';\n\nexport default function RenderTokens({\n tokens,\n context,\n}: {\n tokens: MdToken[];\n context: RendererContext;\n}) {\n return (\n <>\n {tokens.map((token, i) => {\n const tokenKey = `${token.type}-${i}`;\n return <RenderToken key={tokenKey} token={token} context={context} />;\n })}\n </>\n );\n}\n", "import type { RenderTarget } from 'mkimp';\nimport type { RendererContext } from './RenderRootToken';\n\nexport interface RenderCurrentTargetProps {\n context: RendererContext;\n renderTarget: RenderTarget;\n children: React.JSX.Element;\n}\n\nexport default function RenderCurrentTarget({\n context,\n renderTarget,\n children,\n}: RenderCurrentTargetProps) {\n if (renderTarget === 'article') {\n const Article = context.Article;\n return <Article>{children}</Article>;\n }\n return children;\n}\n", "import { type HeadingToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Heading({\n token,\n context,\n}: TokenContext<HeadingToken>) {\n const className = token.isUnderline\n ? 'md-heading md-h-underline'\n : 'md-heading';\n switch (token.depth) {\n case 1:\n return (\n <h1 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h1>\n );\n case 2:\n return (\n <h2 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h2>\n );\n case 3:\n return (\n <h3 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h3>\n );\n case 4:\n return (\n <h4 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h4>\n );\n case 5:\n return (\n <h5 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h5>\n );\n default:\n return (\n <h6 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h6>\n );\n }\n}\n", "import { type CodeBlockToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Codeblock({\n token,\n context,\n}: TokenContext<CodeBlockToken>) {\n const from =\n token.from !== undefined || token.to !== undefined\n ? token.from || 1\n : undefined;\n const HLJS = context.HLJS;\n if (\n token.lang &&\n (token.lang !== 'mermaid' ||\n (token.lang === 'mermaid' && from !== undefined))\n ) {\n return <HLJS content={token.content} language={token.lang} from={from} />;\n }\n if (token.lang === 'mermaid') {\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-mermaid mermaid\">\n {token.content}\n </pre>\n );\n }\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className=\"md-code\">\n {token.content}\n </code>\n </pre>\n );\n}\n", "import { type ConditionalToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Conditional({\n token,\n context,\n}: TokenContext<ConditionalToken>) {\n for (const branch of token.branches) {\n if (branch.condition === 'else') {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n const data = context.metadata.get(branch.condition);\n if (typeof data === 'boolean' && data === true) {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n }\n return <></>;\n}\n", "export default function Horizontal() {\n return <hr className=\"md-line\" role=\"separator\" aria-hidden=\"true\" />;\n}\n", "import { type BlockQuoteToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Blockquote({\n token,\n context,\n}: TokenContext<BlockQuoteToken>) {\n return (\n <blockquote\n className=\"md-blockquote\"\n role=\"note\"\n aria-label=\"A quote from the author\"\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </blockquote>\n );\n}\n", "import { type ListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function List({ token, context }: TokenContext<ListToken>) {\n const className = `md-${token.ordered ? 'ol' : 'ul'}list`;\n if (token.ordered) {\n const start = token.startAt ? Number(token.startAt) : undefined;\n return (\n <ol role=\"list\" className={className} start={start}>\n <RenderTokens tokens={token.items} context={context} />\n </ol>\n );\n }\n return (\n <ul role=\"list\" className={className}>\n <RenderTokens tokens={token.items} context={context} />\n </ul>\n );\n}\n", "import { type ListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function ListItem({\n token,\n context,\n}: TokenContext<ListItemToken>) {\n return (\n <li role=\"listitem\" className={token.task ? 'md-taskitem' : 'md-listitem'}>\n {token.task && (\n <input\n className=\"md-checkbox\"\n type=\"checkbox\"\n disabled\n checked={token.checked}\n />\n )}\n <RenderTokens tokens={token.tokens} context={context} />\n </li>\n );\n}\n", "import { type TableToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Table({ token, context }: TokenContext<TableToken>) {\n return (\n <table className=\"md-table\" role=\"table\">\n <thead className=\"md-thead\" role=\"rowgroup\">\n <tr className=\"md-htablerow\">\n <RenderTokens tokens={token.header} context={context} />\n </tr>\n </thead>\n <tbody className=\"md-tbody\" role=\"rowgroup\">\n {token.rows.map((row, i) => {\n const rowKey = `row-${i}`;\n return (\n <tr key={rowKey} className=\"md-tablerow\">\n <RenderTokens tokens={row} context={context} />\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n", "import { type TableCellToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Cell({ token, context }: TokenContext<TableCellToken>) {\n if (token.header) {\n return (\n <th\n className=\"md-tablecell\"\n style={{\n textAlign: token.align !== 'default' ? token.align : undefined,\n }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </th>\n );\n }\n return (\n <td\n className=\"md-tablecell\"\n style={{ textAlign: token.align !== 'default' ? token.align : undefined }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </td>\n );\n}\n", "import { type DefinitionListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionList({\n token,\n context,\n}: TokenContext<DefinitionListToken>) {\n return (\n <dl className=\"md-deflist\">\n <RenderTokens tokens={token.items} context={context} />\n </dl>\n );\n}\n", "import { type DefinitionListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionListItem({\n token,\n context,\n}: TokenContext<DefinitionListItemToken>) {\n return (\n <>\n <dt className=\"md-defterm\">\n <RenderTokens tokens={token.term} context={context} />\n </dt>\n {token.definitions.map((def, i) => {\n const defKey = `def-${i}`;\n return (\n <dd key={defKey} className=\"md-defdef\">\n <RenderTokens tokens={def} context={context} />\n </dd>\n );\n })}\n </>\n );\n}\n", "import { type TexToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Tex({ token, context }: TokenContext<TexToken>) {\n const LaTeX = context.LaTeX;\n return (\n <LaTeX\n content={token.text}\n displayMode={token.displayMode}\n inline={token.inline}\n />\n );\n}\n", "import { type SpoilerToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Spoiler({\n token,\n context,\n}: TokenContext<SpoilerToken>) {\n if (token.inline) {\n return (\n <label className=\"md-spoiler\">\n <input className=\"md-spoiltrigger\" type=\"checkbox\" hidden />\n <span className=\"md-spoilertext\">\n <RenderTokens tokens={token.tokens} context={context} />\n </span>\n </label>\n );\n }\n return (\n <div className=\"md-spoiler-toggle\">\n <input type=\"checkbox\" id={`md-spoiler-label-${token.index}`} hidden />\n <label\n htmlFor={`md-spoiler-label-${token.index}`}\n className=\"md-spoiler-header\"\n >\n <RenderTokens tokens={token.title} context={context} />\n </label>\n <div className=\"md-spoiler-content\">\n <RenderTokens tokens={token.tokens} context={context} />\n </div>\n </div>\n );\n}\n", "import { type IncludeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Include({\n token,\n context,\n}: TokenContext<IncludeToken>) {\n return <RenderTokens tokens={token.tokens} context={context} />;\n}\n", "import { type HTMLToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport sanitizeHtml from 'sanitize-html';\n\nexport default function Html({ token, context }: TokenContext<HTMLToken>) {\n const sanitization = context.overrideSanitization ?? sanitizeHtml;\n const html = context.sanitize ? sanitization(token.content) : token.content;\n return (\n <div\n data-id=\"html-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n display: 'contents',\n }}\n />\n );\n}\n", "import { type ParagraphToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Paragraph({\n token,\n context,\n}: TokenContext<ParagraphToken>) {\n return (\n <p className=\"md-paragraph\">\n <RenderTokens tokens={token.tokens} context={context} />\n </p>\n );\n}\n", "import { type FootnoteEndToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport { type JSX } from 'react';\nimport RenderTokens from '../RenderTokens';\n\nexport default function FootnoteEnd({\n context,\n}: TokenContext<FootnoteEndToken>) {\n const refSize = context.footnoteRefs.size;\n const result: JSX.Element[] = [];\n for (let i = 1; i <= refSize; i++) {\n const fnKey = `fn-${i - 1}`;\n const ref = context.footnoteRefs.get(i)!;\n const def = context.footnoteDefs.get(ref);\n if (def !== undefined) {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>\n <RenderTokens tokens={def} context={context} />\n </li>\n );\n } else {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>{`[${ref}]`}</li>\n );\n }\n }\n return (\n <section className=\"md-footnotes\">\n <ol className=\"md-fnlist\" dir=\"auto\">\n {result}\n </ol>\n </section>\n );\n}\n", "import { type SmallToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Small({ token, context }: TokenContext<SmallToken>) {\n return (\n <p className=\"md-paragraph\">\n <small className=\"md-small\">\n <RenderTokens tokens={token.tokens} context={context} />\n </small>\n </p>\n );\n}\n", "import { generateTableOfContent, type TableOfContentToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport TOCNodes from './TOCNodes';\n\nexport default function TableOfContent({\n context,\n}: TokenContext<TableOfContentToken>) {\n const nodes = generateTableOfContent(context.tableOfContents);\n return <TOCNodes {...{ nodes, context }} />;\n}\n", "import { type TOCNode } from 'mkimp';\nimport { type RendererContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function TOCNodes({\n nodes,\n context,\n}: {\n nodes: TOCNode[];\n context: RendererContext;\n}) {\n if (nodes.length === 0) return <></>;\n return (\n <ul role=\"list\" className=\"md-tableofcontent\">\n {nodes.map((node, index) => {\n const { token, children } = node;\n const itemKey = token.id || `toc-${token.depth}-${index}`;\n return (\n <li key={itemKey} role=\"listitem\" className=\"md-listitem\">\n {token.id && token.id.length > 0 ? (\n <a className=\"md-link\" href={`#${token.id}`}>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </a>\n ) : (\n <>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </>\n )}\n <TOCNodes nodes={children} context={context} />\n </li>\n );\n })}\n </ul>\n );\n}\n", "import { WHITESPACE_CHARS, type TextToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Text({ token, context }: TokenContext<TextToken>) {\n if (!context.abbrs || context.abbrs.length === 0) {\n return <>{token.text}</>;\n }\n const nodes: React.ReactNode[] = [];\n let i = 0;\n while (i < token.text.length) {\n let found = false;\n\n let whitespace = '';\n while (i < token.text.length && WHITESPACE_CHARS.has(token.text[i])) {\n whitespace += token.text[i++];\n }\n if (whitespace) nodes.push(whitespace);\n\n if (i >= token.text.length) break;\n\n for (const abbr of context.abbrs) {\n const sbr = token.text.slice(i, i + abbr.abbr.length);\n\n // Check if it matches and is followed by whitespace or end of string\n const isMatch = sbr === abbr.abbr;\n const isAtBoundary =\n i + abbr.abbr.length === token.text.length ||\n WHITESPACE_CHARS.has(token.text[i + abbr.abbr.length]);\n\n if (isMatch && isAtBoundary) {\n nodes.push(\n <abbr key={`abbr-${i}`} title={abbr.title}>\n {sbr}\n </abbr>\n );\n i += abbr.abbr.length;\n found = true;\n break;\n }\n }\n if (!found) {\n const startIndex = i;\n while (i < token.text.length && !WHITESPACE_CHARS.has(token.text[i])) {\n i++;\n }\n nodes.push(token.text.slice(startIndex, i));\n }\n }\n\n return <>{nodes}</>;\n}\n", "import { type YoutubeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function YoutubeEmbed({ token }: TokenContext<YoutubeToken>) {\n const vid = token.attributes.vid;\n const title = token.title || 'YouTube';\n const width = token.attributes.width || '560';\n const height = token.attributes.height || '315';\n const start = token.attributes.start;\n const allowfullscreen = token.attributes.allowfullscreen !== 'false';\n\n const urlParams = new URLSearchParams();\n if (start) urlParams.set('start', start);\n\n const src = `https://www.youtube.com/embed/${vid}${urlParams.toString() ? '?' + urlParams.toString() : ''}`;\n\n return (\n <div className=\"md-youtube\">\n <iframe\n width={width}\n height={height}\n src={src}\n title={title}\n allowFullScreen={allowfullscreen}\n style={{ border: 0 }}\n />\n </div>\n );\n}\n", "import { type OverlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Overline({\n token,\n context,\n}: TokenContext<OverlineToken>) {\n return (\n <u className=\"md-overline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type MetadataToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Metadata({ token }: TokenContext<MetadataToken>) {\n return <>{token.value}</>;\n}\n", "import { type CodespanToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Codespan({ token }: TokenContext<CodespanToken>) {\n return (\n <code aria-label=\"Code\" className=\"md-codespan\">\n {token.text}\n </code>\n );\n}\n", "import { cleanUrl, type LinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Link({ token, context }: TokenContext<LinkToken>) {\n const cleanHref = cleanUrl(token.href);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={token.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type RefLinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function RefLink({\n token,\n context,\n}: TokenContext<RefLinkToken>) {\n const refLink = context.reflinks.get(token.ref);\n if (refLink === undefined) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const cleanHref = cleanUrl(refLink.link);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={refLink.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type ImageToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Image({ token }: TokenContext<ImageToken>) {\n const imgcleanHref = cleanUrl(token.href);\n if (imgcleanHref === null) {\n return <>{token.alt}</>;\n }\n return (\n <img\n src={imgcleanHref}\n alt={token.alt}\n className=\"md-image\"\n title={token.title}\n />\n );\n}\n", "import { type FootnoteRefToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function FootnoteRef({\n token,\n context,\n}: TokenContext<FootnoteRefToken>) {\n return (\n <sup id={`fnref:${token.ref}`}>\n <a className=\"md-link\" href={`#fn:${token.ref}`}>\n {`[${context.footnoteIndexRefs.get(token.ref) ?? -1}]`}\n </a>\n </sup>\n );\n}\n", "export default function NewLine() {\n return <br />;\n}\n", "import { type HighlightToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Highlight({\n token,\n context,\n}: TokenContext<HighlightToken>) {\n return (\n <mark className=\"md-highlight\">\n <RenderTokens tokens={token.tokens} context={context} />\n </mark>\n );\n}\n", "import { type StrikethroughToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Strikethrough({\n token,\n context,\n}: TokenContext<StrikethroughToken>) {\n return (\n <del className=\"md-strikethrough\">\n <RenderTokens tokens={token.tokens} context={context} />\n </del>\n );\n}\n", "import { type EmojiToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Emoji({ token, context }: TokenContext<EmojiToken>) {\n const emoji = context.emojis[token.name];\n if (emoji === undefined) {\n return <>{`:${token.name}:`}</>;\n }\n switch (emoji.type) {\n case 'img':\n return (\n <img\n alt={emoji.alt ?? token.name}\n src={emoji.url}\n width={emoji.width ?? 20}\n height={emoji.height ?? 20}\n />\n );\n case 'i':\n return <i className={emoji.className}></i>;\n default:\n return <>{emoji.char}</>;\n }\n}\n", "import { type UnderlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Underline({\n token,\n context,\n}: TokenContext<UnderlineToken>) {\n return (\n <u className=\"md-underline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type BoldToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Bold({ token, context }: TokenContext<BoldToken>) {\n return (\n <strong className=\"md-bold\">\n <RenderTokens tokens={token.tokens} context={context} />\n </strong>\n );\n}\n", "import { type ItalicToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Italic({ token, context }: TokenContext<ItalicToken>) {\n return (\n <em className=\"md-italic\">\n <RenderTokens tokens={token.tokens} context={context} />\n </em>\n );\n}\n", "import { type SupToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sup({ token, context }: TokenContext<SupToken>) {\n return (\n <sup className=\"md-sup\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sup>\n );\n}\n", "import { type SubToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sub({ token, context }: TokenContext<SubToken>) {\n return (\n <sub className=\"md-sub\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sub>\n );\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useEffect", "useState", "Lexer", "flattenMetaData", "data", "prefix", "result", "item", "index", "key", "value", "newKey", "generateSections", "jsx", "Article", "children", "
|
|
3
|
+
"sources": ["../src/index.tsx", "../src/utils/flattenMapData.ts", "../src/renderer/RenderRootToken.tsx", "../src/renderer/Article.tsx", "../src/renderer/Section.tsx", "../src/renderer/RenderToken.tsx", "../src/renderer/RenderTokens.tsx", "../src/renderer/RenderCurrentTarget.tsx", "../src/renderer/tokens/Heading.tsx", "../src/renderer/HLJS.tsx", "../src/renderer/tokens/Codeblock.tsx", "../src/renderer/tokens/Conditional.tsx", "../src/renderer/tokens/Horizontal.tsx", "../src/renderer/tokens/Blockquote.tsx", "../src/renderer/tokens/List.tsx", "../src/renderer/tokens/ListItem.tsx", "../src/renderer/tokens/Table.tsx", "../src/renderer/tokens/Cell.tsx", "../src/renderer/tokens/DefinitionList.tsx", "../src/renderer/tokens/DefinitionListItem.tsx", "../src/renderer/LaTeX.tsx", "../src/renderer/tokens/Tex.tsx", "../src/renderer/tokens/Spoiler.tsx", "../src/renderer/tokens/Include.tsx", "../src/renderer/tokens/Html.tsx", "../src/renderer/tokens/Paragraph.tsx", "../src/renderer/tokens/FootnoteEnd.tsx", "../src/renderer/tokens/Small.tsx", "../src/renderer/tokens/TableOfContent.tsx", "../src/renderer/tokens/TOCNodes.tsx", "../src/renderer/tokens/Text.tsx", "../src/renderer/tokens/YoutubeEmbed.tsx", "../src/renderer/tokens/Overline.tsx", "../src/renderer/tokens/Metadata.tsx", "../src/renderer/tokens/Codespan.tsx", "../src/renderer/tokens/Link.tsx", "../src/renderer/tokens/RefLink.tsx", "../src/renderer/tokens/Image.tsx", "../src/renderer/tokens/FootnoteRef.tsx", "../src/renderer/tokens/NewLine.tsx", "../src/renderer/tokens/Highlight.tsx", "../src/renderer/tokens/Strikethrough.tsx", "../src/renderer/tokens/Emoji.tsx", "../src/renderer/tokens/Underline.tsx", "../src/renderer/tokens/Bold.tsx", "../src/renderer/tokens/Italic.tsx", "../src/renderer/tokens/Sup.tsx", "../src/renderer/tokens/Sub.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useState, type JSX } from 'react';\nimport {\n type EmojiRecord,\n Lexer,\n type RenderTarget,\n type RootToken,\n} from 'mkimp';\nimport { flattenMetaData } from './utils/flattenMapData';\nimport RenderRootToken, {\n type TokenRendering,\n} from './renderer/RenderRootToken';\nimport { type ArticleProps } from './renderer/Article';\nimport { type LaTeXProps } from './renderer/LaTeX';\nimport { type SectionProps } from './renderer/Section';\nimport { type HLJSProps } from './renderer/HLJS';\n\nexport {\n type TokenRendering,\n type TokenContext,\n} from './renderer/RenderRootToken';\nexport { type ArticleProps } from './renderer/Article';\nexport { type LaTeXProps } from './renderer/LaTeX';\nexport { type SectionProps } from './renderer/Section';\nexport { type HLJSProps } from './renderer/HLJS';\n\nexport type MetaDataPrimitives =\n | string\n | bigint\n | number\n | boolean\n | null\n | undefined;\nexport type MetaData =\n | MetaDataPrimitives\n | MetaData[]\n | { [key: string | number | symbol]: MetaData };\n\nexport interface MkImpRendererProps {\n emojis?: Record<string, EmojiRecord>;\n frontMatter?: (content: string) => Promise<MetaData>;\n include?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n includeCode?: (\n location: string,\n from: number | undefined,\n to: number | undefined\n ) => Promise<string | undefined>;\n mdContent: string;\n metadata?: MetaData;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideHLJS?: (props: HLJSProps) => JSX.Element;\n overrideLaTeX?: (props: LaTeXProps) => JSX.Element;\n overrideRenderer?: Partial<TokenRendering>;\n overrideSection?: (props: SectionProps) => JSX.Element;\n renderTarget?: RenderTarget;\n sanitize?: boolean;\n tabulation?: number;\n withSection?: boolean;\n}\n\nexport default function MkImpRenderer({\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n overrideArticle,\n overrideHLJS,\n overrideLaTeX,\n overrideRenderer,\n overrideSection,\n renderTarget = 'raw',\n sanitize = true,\n tabulation = 4,\n withSection = false,\n}: MkImpRendererProps) {\n const [rootToken, setRootToken] = useState<RootToken>();\n\n useEffect(() => {\n const generateMarkdown = async () => {\n const rootToken = await Lexer.lex(mdContent, {\n tabulation,\n metadata: flattenMetaData(metadata),\n emojis,\n frontMatter,\n include,\n includeCode,\n });\n setRootToken(rootToken);\n };\n generateMarkdown();\n }, [\n emojis,\n frontMatter,\n include,\n includeCode,\n mdContent,\n metadata,\n tabulation,\n ]);\n\n return (\n <RenderRootToken\n {...{\n renderTarget,\n root: rootToken,\n sanitize,\n overrideRenderer,\n overrideLaTeX,\n overrideHLJS,\n overrideArticle,\n overrideSection,\n withSection,\n }}\n />\n );\n}\n", "import { MetaData } from 'src';\n\ntype MapValue = string | number | bigint | boolean;\n\nexport function flattenMetaData(\n data: MetaData,\n prefix = '',\n result = new Map<string, MapValue>()\n): Map<string, MapValue> {\n // Handle Primitives (The \"Leaf\" nodes)\n if (data === null || data === undefined) return result;\n\n if (typeof data !== 'object') {\n if (prefix) result.set(prefix, data as MapValue);\n return result;\n }\n\n // Handle Arrays\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n flattenMetaData(\n item,\n prefix ? `${prefix}[${index}]` : `${index}`,\n result\n );\n });\n return result;\n }\n\n // Handle Objects\n for (const [key, value] of Object.entries(data)) {\n const newKey = prefix ? `${prefix}.${key}` : key;\n flattenMetaData(value, newKey, result);\n }\n\n return result;\n}\n", "import {\n type TokenType,\n type RootToken,\n type ExtractToken,\n type MdToken,\n type EmojiRecord,\n type HeadingToken,\n type AbbrToken,\n type LinkRef,\n type RenderTarget,\n generateSections,\n} from 'mkimp';\nimport { type JSX } from 'react';\nimport Article, { type ArticleProps } from './Article';\nimport Section, { type SectionProps } from './Section';\nimport RenderTokens from './RenderTokens';\nimport RenderCurrentTarget from './RenderCurrentTarget';\nimport RenderToken from './RenderToken';\nimport Heading from './tokens/Heading';\nimport Codeblock from './tokens/Codeblock';\nimport Conditional from './tokens/Conditional';\nimport Horizontal from './tokens/Horizontal';\nimport Blockquote from './tokens/Blockquote';\nimport List from './tokens/List';\nimport ListItem from './tokens/ListItem';\nimport Table from './tokens/Table';\nimport Cell from './tokens/Cell';\nimport DefinitionList from './tokens/DefinitionList';\nimport DefinitionListItem from './tokens/DefinitionListItem';\nimport Tex from './tokens/Tex';\nimport Spoiler from './tokens/Spoiler';\nimport Include from './tokens/Include';\nimport Html from './tokens/Html';\nimport Paragraph from './tokens/Paragraph';\nimport FootnoteEnd from './tokens/FootnoteEnd';\nimport Small from './tokens/Small';\nimport TableOfContent from './tokens/TableOfContent';\nimport Text from './tokens/Text';\nimport YoutubeEmbed from './tokens/YoutubeEmbed';\nimport Overline from './tokens/Overline';\nimport Metadata from './tokens/Metadata';\nimport Codespan from './tokens/Codespan';\nimport Link from './tokens/Link';\nimport RefLink from './tokens/RefLink';\nimport Image from './tokens/Image';\nimport FootnoteRef from './tokens/FootnoteRef';\nimport NewLine from './tokens/NewLine';\nimport Highlight from './tokens/Highlight';\nimport Strikethrough from './tokens/Strikethrough';\nimport Emoji from './tokens/Emoji';\nimport Underline from './tokens/Underline';\nimport Bold from './tokens/Bold';\nimport Italic from './tokens/Italic';\nimport Sup from './tokens/Sup';\nimport Sub from './tokens/Sub';\n\nexport type TokenRendering = {\n [K in TokenType]: (props: TokenContext<ExtractToken<K>>) => JSX.Element;\n};\n\nexport type TokenContext<T extends MdToken> = {\n token: T;\n context: RendererContext;\n};\n\nexport interface RendererContext {\n abbrs: AbbrToken[];\n currentRenderer: TokenRendering;\n emojis: Record<string, EmojiRecord>;\n footnoteDefs: Map<string, MdToken[]>;\n footnoteIndexRefs: Map<string, number>;\n footnoteRefs: Map<number, string>;\n metadata: Map<string, string | number | boolean | bigint>;\n reflinks: Map<string, LinkRef>;\n tableOfContents: HeadingToken[];\n sanitize: boolean;\n Article: (props: ArticleProps) => JSX.Element;\n convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;\n highlightText?: (content: string, language: string | undefined) => string;\n overrideSanitization?: (html: string) => string;\n}\n\nconst RENDERER: TokenRendering = {\n heading: Heading,\n codeblock: Codeblock,\n conditional: Conditional,\n horizontal: Horizontal,\n blockquote: Blockquote,\n list: List,\n listItem: ListItem,\n table: Table,\n cell: Cell,\n definitionList: DefinitionList,\n definitionListItem: DefinitionListItem,\n tex: Tex,\n spoiler: Spoiler,\n include: Include,\n html: Html,\n paragraph: Paragraph,\n footnoteEnd: FootnoteEnd,\n small: Small,\n tableOfContent: TableOfContent,\n text: Text,\n youtubeEmbed: YoutubeEmbed,\n overline: Overline,\n metadata: Metadata,\n codespan: Codespan,\n link: Link,\n reflink: RefLink,\n image: Image,\n footnoteRef: FootnoteRef,\n newline: NewLine,\n highlight: Highlight,\n strikethrough: Strikethrough,\n emoji: Emoji,\n underline: Underline,\n bold: Bold,\n italic: Italic,\n sup: Sup,\n sub: Sub,\n};\n\nexport interface RenderRootTokenProps {\n root: RootToken | undefined;\n sanitize: boolean;\n withSection: boolean;\n renderTarget: RenderTarget;\n overrideRenderer?: Partial<TokenRendering>;\n convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;\n highlightText?: (content: string, language: string | undefined) => string;\n overrideArticle?: (props: ArticleProps) => JSX.Element;\n overrideSanitization?: (html: string) => string;\n overrideSection?: (props: SectionProps) => JSX.Element;\n}\n\nexport default function RenderRootToken({\n root,\n sanitize,\n withSection,\n renderTarget,\n overrideRenderer,\n convertLaTeXToHTML,\n highlightText,\n overrideArticle,\n overrideSanitization,\n overrideSection,\n}: RenderRootTokenProps) {\n if (!root) return <></>;\n const context: RendererContext = {\n abbrs: root.abbrs,\n currentRenderer: { ...RENDERER, ...overrideRenderer },\n emojis: root.emojis,\n footnoteDefs: root.footnoteDefs,\n footnoteIndexRefs: root.footnoteIndexRefs,\n footnoteRefs: root.footnoteRefs,\n metadata: root.metadata,\n reflinks: root.reflinks,\n sanitize,\n tableOfContents: root.tableOfContents,\n Article: overrideArticle ?? Article,\n convertLaTeXToHTML,\n highlightText,\n overrideSanitization,\n };\n if (!withSection) {\n return (\n <RenderCurrentTarget context={context} renderTarget={renderTarget}>\n <RenderTokens tokens={root.tokens} context={context} />\n </RenderCurrentTarget>\n );\n }\n const SectionPart = overrideSection ?? Section;\n const sections: MdToken[][] = generateSections(root.tokens);\n\n return sections.map((section, i) => {\n const headingToken = section.find((t) => t.type === 'heading');\n const headingId = headingToken ? headingToken.id : undefined;\n const sKey = `sec-${i}`;\n return (\n <SectionPart key={sKey} headingId={headingId}>\n {section.map((token, si) => {\n const sectionKey = `section-${si}`;\n return (\n <RenderToken key={sectionKey} token={token} context={context} />\n );\n })}\n </SectionPart>\n );\n });\n}\n", "import { type JSX } from 'react';\n\nexport interface ArticleProps {\n children: JSX.Element;\n}\n\nexport default function Article({ children }: ArticleProps) {\n return (\n <article className=\"md-article\" role=\"document\" aria-label=\"Page content\">\n {children}\n </article>\n );\n}\n", "export interface SectionProps {\n headingId: string | undefined;\n children: React.ReactNode;\n}\n\nexport default function Section({ headingId, children }: SectionProps) {\n if (headingId) {\n return (\n <section className=\"md-section\" role=\"region\" aria-labelledby={headingId}>\n {children}\n </section>\n );\n }\n return <section>{children}</section>;\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\n\nexport default function RenderToken({\n token,\n context,\n}: {\n token: MdToken;\n context: RendererContext;\n}) {\n const renderFn = context.currentRenderer[token.type];\n if (!renderFn) return <></>;\n return renderFn({\n token: token,\n context,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n}\n", "import { type MdToken } from 'mkimp';\nimport { type RendererContext } from 'src/renderer/RenderRootToken';\nimport RenderToken from './RenderToken';\n\nexport default function RenderTokens({\n tokens,\n context,\n}: {\n tokens: MdToken[];\n context: RendererContext;\n}) {\n return (\n <>\n {tokens.map((token, i) => {\n const tokenKey = `${token.type}-${i}`;\n return <RenderToken key={tokenKey} token={token} context={context} />;\n })}\n </>\n );\n}\n", "import type { RenderTarget } from 'mkimp';\nimport type { RendererContext } from './RenderRootToken';\n\nexport interface RenderCurrentTargetProps {\n context: RendererContext;\n renderTarget: RenderTarget;\n children: React.JSX.Element;\n}\n\nexport default function RenderCurrentTarget({\n context,\n renderTarget,\n children,\n}: RenderCurrentTargetProps) {\n if (renderTarget === 'article') {\n const Article = context.Article;\n return <Article>{children}</Article>;\n }\n return children;\n}\n", "import { type HeadingToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Heading({\n token,\n context,\n}: TokenContext<HeadingToken>) {\n const className = token.isUnderline\n ? 'md-heading md-h-underline'\n : 'md-heading';\n switch (token.depth) {\n case 1:\n return (\n <h1 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h1>\n );\n case 2:\n return (\n <h2 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h2>\n );\n case 3:\n return (\n <h3 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h3>\n );\n case 4:\n return (\n <h4 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h4>\n );\n case 5:\n return (\n <h5 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h5>\n );\n default:\n return (\n <h6 id={token.id} aria-level={token.depth} className={className}>\n <RenderTokens tokens={token.tokens} context={context} />\n </h6>\n );\n }\n}\n", "import { useMemo, type JSX } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface HLJSProps {\n content: string;\n language?: string;\n from?: number;\n callback: (content: string, language: string | undefined) => string;\n}\n\nexport default function HLJS({\n content,\n language,\n from,\n callback,\n}: HLJSProps): JSX.Element {\n const lang = language ? ` language-${language}` : '';\n\n const highlightedHtml = useMemo(\n () => sanitizeHtml(callback(content, language)),\n [content, language, callback]\n );\n if (from !== undefined) {\n const lines = highlightedHtml.split(/\\r?\\n/);\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className={`md-code${lang}`}>\n <table className=\"md-code-table\">\n <colgroup>\n <col />\n <col className=\"md-table-line-space\" />\n <col />\n </colgroup>\n <tbody>\n {lines.map((line, i) => {\n const lineKey = `line-${from}-${i}`;\n return (\n <tr key={lineKey} className=\"md-code-row\">\n <td className=\"md-number-ln\">{i + from}</td>\n <td></td>\n <td\n className=\"md-code-ln\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: line || ' ' }}\n />\n </tr>\n );\n })}\n </tbody>\n </table>\n </code>\n </pre>\n );\n }\n\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code\n aria-label=\"Code\"\n className={`md-code${lang}`}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n </pre>\n );\n}\n", "import { type CodeBlockToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport HLJS from '../HLJS';\n\nexport default function Codeblock({\n token,\n context,\n}: TokenContext<CodeBlockToken>) {\n const from =\n token.from !== undefined || token.to !== undefined\n ? token.from || 1\n : undefined;\n if (\n context.highlightText &&\n token.lang &&\n (token.lang !== 'mermaid' ||\n (token.lang === 'mermaid' && from !== undefined))\n ) {\n return (\n <HLJS\n content={token.content}\n language={token.lang}\n from={from}\n callback={context.highlightText}\n />\n );\n }\n if (token.lang === 'mermaid') {\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-mermaid mermaid\">\n {token.content}\n </pre>\n );\n }\n return (\n <pre role=\"region\" aria-label=\"Code block\" className=\"md-precode\">\n <code aria-label=\"Code\" className=\"md-code\">\n {token.content}\n </code>\n </pre>\n );\n}\n", "import { type ConditionalToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Conditional({\n token,\n context,\n}: TokenContext<ConditionalToken>) {\n for (const branch of token.branches) {\n if (branch.condition === 'else') {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n const data = context.metadata.get(branch.condition);\n if (typeof data === 'boolean' && data === true) {\n return <RenderTokens tokens={branch.tokens} context={context} />;\n }\n }\n return <></>;\n}\n", "export default function Horizontal() {\n return <hr className=\"md-line\" role=\"separator\" aria-hidden=\"true\" />;\n}\n", "import { type BlockQuoteToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Blockquote({\n token,\n context,\n}: TokenContext<BlockQuoteToken>) {\n return (\n <blockquote\n className=\"md-blockquote\"\n role=\"note\"\n aria-label=\"A quote from the author\"\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </blockquote>\n );\n}\n", "import { type ListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function List({ token, context }: TokenContext<ListToken>) {\n const className = `md-${token.ordered ? 'ol' : 'ul'}list`;\n if (token.ordered) {\n const start = token.startAt ? Number(token.startAt) : undefined;\n return (\n <ol role=\"list\" className={className} start={start}>\n <RenderTokens tokens={token.items} context={context} />\n </ol>\n );\n }\n return (\n <ul role=\"list\" className={className}>\n <RenderTokens tokens={token.items} context={context} />\n </ul>\n );\n}\n", "import { type ListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function ListItem({\n token,\n context,\n}: TokenContext<ListItemToken>) {\n return (\n <li role=\"listitem\" className={token.task ? 'md-taskitem' : 'md-listitem'}>\n {token.task && (\n <input\n className=\"md-checkbox\"\n type=\"checkbox\"\n disabled\n checked={token.checked}\n />\n )}\n <RenderTokens tokens={token.tokens} context={context} />\n </li>\n );\n}\n", "import { type TableToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Table({ token, context }: TokenContext<TableToken>) {\n return (\n <table className=\"md-table\" role=\"table\">\n <thead className=\"md-thead\" role=\"rowgroup\">\n <tr className=\"md-htablerow\">\n <RenderTokens tokens={token.header} context={context} />\n </tr>\n </thead>\n <tbody className=\"md-tbody\" role=\"rowgroup\">\n {token.rows.map((row, i) => {\n const rowKey = `row-${i}`;\n return (\n <tr key={rowKey} className=\"md-tablerow\">\n <RenderTokens tokens={row} context={context} />\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n", "import { type TableCellToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Cell({ token, context }: TokenContext<TableCellToken>) {\n if (token.header) {\n return (\n <th\n className=\"md-tablecell\"\n style={{\n textAlign: token.align !== 'default' ? token.align : undefined,\n }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </th>\n );\n }\n return (\n <td\n className=\"md-tablecell\"\n style={{ textAlign: token.align !== 'default' ? token.align : undefined }}\n >\n <RenderTokens tokens={token.tokens} context={context} />\n </td>\n );\n}\n", "import { type DefinitionListToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionList({\n token,\n context,\n}: TokenContext<DefinitionListToken>) {\n return (\n <dl className=\"md-deflist\">\n <RenderTokens tokens={token.items} context={context} />\n </dl>\n );\n}\n", "import { type DefinitionListItemToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function DefinitionListItem({\n token,\n context,\n}: TokenContext<DefinitionListItemToken>) {\n return (\n <>\n <dt className=\"md-defterm\">\n <RenderTokens tokens={token.term} context={context} />\n </dt>\n {token.definitions.map((def, i) => {\n const defKey = `def-${i}`;\n return (\n <dd key={defKey} className=\"md-defdef\">\n <RenderTokens tokens={def} context={context} />\n </dd>\n );\n })}\n </>\n );\n}\n", "import { useMemo } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nexport interface LaTeXProps {\n content: string;\n inline: boolean;\n displayMode: boolean;\n callback: (content: string, displayMode: boolean) => string;\n}\n\nexport default function LaTeX({\n content,\n inline,\n displayMode,\n callback,\n}: LaTeXProps) {\n const html = useMemo(\n () => sanitizeHtml(callback(content, displayMode)),\n [content, displayMode, callback]\n );\n if (inline) {\n return (\n <span\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n display: displayMode ? 'inline-block' : undefined,\n }}\n />\n );\n }\n return (\n <div\n data-id=\"katex-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n}\n", "import { type TexToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport LaTeX from '../LaTeX';\n\nexport default function Tex({ token, context }: TokenContext<TexToken>) {\n const convertLaTeXToHTML = context.convertLaTeXToHTML;\n if (convertLaTeXToHTML !== undefined) {\n return (\n <LaTeX\n content={token.text}\n displayMode={token.displayMode}\n inline={token.inline}\n callback={convertLaTeXToHTML}\n />\n );\n }\n return <>{token.text}</>;\n}\n", "import { type SpoilerToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Spoiler({\n token,\n context,\n}: TokenContext<SpoilerToken>) {\n if (token.inline) {\n return (\n <label className=\"md-spoiler\">\n <input className=\"md-spoiltrigger\" type=\"checkbox\" hidden />\n <span className=\"md-spoilertext\">\n <RenderTokens tokens={token.tokens} context={context} />\n </span>\n </label>\n );\n }\n return (\n <div className=\"md-spoiler-toggle\">\n <input type=\"checkbox\" id={`md-spoiler-label-${token.index}`} hidden />\n <label\n htmlFor={`md-spoiler-label-${token.index}`}\n className=\"md-spoiler-header\"\n >\n <RenderTokens tokens={token.title} context={context} />\n </label>\n <div className=\"md-spoiler-content\">\n <RenderTokens tokens={token.tokens} context={context} />\n </div>\n </div>\n );\n}\n", "import { type IncludeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Include({\n token,\n context,\n}: TokenContext<IncludeToken>) {\n return <RenderTokens tokens={token.tokens} context={context} />;\n}\n", "import { type HTMLToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport sanitizeHtml from 'sanitize-html';\n\nexport default function Html({ token, context }: TokenContext<HTMLToken>) {\n const sanitization = context.overrideSanitization ?? sanitizeHtml;\n const html = context.sanitize ? sanitization(token.content) : token.content;\n return (\n <div\n data-id=\"html-react\"\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml\n dangerouslySetInnerHTML={{ __html: html }}\n style={{\n display: 'contents',\n }}\n />\n );\n}\n", "import { type ParagraphToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Paragraph({\n token,\n context,\n}: TokenContext<ParagraphToken>) {\n return (\n <p className=\"md-paragraph\">\n <RenderTokens tokens={token.tokens} context={context} />\n </p>\n );\n}\n", "import { type FootnoteEndToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport { type JSX } from 'react';\nimport RenderTokens from '../RenderTokens';\n\nexport default function FootnoteEnd({\n context,\n}: TokenContext<FootnoteEndToken>) {\n const refSize = context.footnoteRefs.size;\n const result: JSX.Element[] = [];\n for (let i = 1; i <= refSize; i++) {\n const fnKey = `fn-${i - 1}`;\n const ref = context.footnoteRefs.get(i)!;\n const def = context.footnoteDefs.get(ref);\n if (def !== undefined) {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>\n <RenderTokens tokens={def} context={context} />\n </li>\n );\n } else {\n result.push(\n <li key={fnKey} className=\"md-fnitem\" id={`fn:${ref}`}>{`[${ref}]`}</li>\n );\n }\n }\n return (\n <section className=\"md-footnotes\">\n <ol className=\"md-fnlist\" dir=\"auto\">\n {result}\n </ol>\n </section>\n );\n}\n", "import { type SmallToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Small({ token, context }: TokenContext<SmallToken>) {\n return (\n <p className=\"md-paragraph\">\n <small className=\"md-small\">\n <RenderTokens tokens={token.tokens} context={context} />\n </small>\n </p>\n );\n}\n", "import { generateTableOfContent, type TableOfContentToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport TOCNodes from './TOCNodes';\n\nexport default function TableOfContent({\n context,\n}: TokenContext<TableOfContentToken>) {\n const nodes = generateTableOfContent(context.tableOfContents);\n return <TOCNodes {...{ nodes, context }} />;\n}\n", "import { type TOCNode } from 'mkimp';\nimport { type RendererContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function TOCNodes({\n nodes,\n context,\n}: {\n nodes: TOCNode[];\n context: RendererContext;\n}) {\n if (nodes.length === 0) return <></>;\n return (\n <ul role=\"list\" className=\"md-tableofcontent\">\n {nodes.map((node, index) => {\n const { token, children } = node;\n const itemKey = token.id || `toc-${token.depth}-${index}`;\n return (\n <li key={itemKey} role=\"listitem\" className=\"md-listitem\">\n {token.id && token.id.length > 0 ? (\n <a className=\"md-link\" href={`#${token.id}`}>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </a>\n ) : (\n <>\n {token.headingIndex}\n <RenderTokens tokens={token.tokens} context={context} />\n </>\n )}\n <TOCNodes nodes={children} context={context} />\n </li>\n );\n })}\n </ul>\n );\n}\n", "import { WHITESPACE_CHARS, type TextToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Text({ token, context }: TokenContext<TextToken>) {\n if (!context.abbrs || context.abbrs.length === 0) {\n return <>{token.text}</>;\n }\n const nodes: React.ReactNode[] = [];\n let i = 0;\n while (i < token.text.length) {\n let found = false;\n\n let whitespace = '';\n while (i < token.text.length && WHITESPACE_CHARS.has(token.text[i])) {\n whitespace += token.text[i++];\n }\n if (whitespace) nodes.push(whitespace);\n\n if (i >= token.text.length) break;\n\n for (const abbr of context.abbrs) {\n const sbr = token.text.slice(i, i + abbr.abbr.length);\n\n // Check if it matches and is followed by whitespace or end of string\n const isMatch = sbr === abbr.abbr;\n const isAtBoundary =\n i + abbr.abbr.length === token.text.length ||\n WHITESPACE_CHARS.has(token.text[i + abbr.abbr.length]);\n\n if (isMatch && isAtBoundary) {\n nodes.push(\n <abbr key={`abbr-${i}`} title={abbr.title}>\n {sbr}\n </abbr>\n );\n i += abbr.abbr.length;\n found = true;\n break;\n }\n }\n if (!found) {\n const startIndex = i;\n while (i < token.text.length && !WHITESPACE_CHARS.has(token.text[i])) {\n i++;\n }\n nodes.push(token.text.slice(startIndex, i));\n }\n }\n\n return <>{nodes}</>;\n}\n", "import { type YoutubeToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function YoutubeEmbed({ token }: TokenContext<YoutubeToken>) {\n const vid = token.attributes.vid;\n const title = token.title || 'YouTube';\n const width = token.attributes.width || '560';\n const height = token.attributes.height || '315';\n const start = token.attributes.start;\n const allowfullscreen = token.attributes.allowfullscreen !== 'false';\n\n const urlParams = new URLSearchParams();\n if (start) urlParams.set('start', start);\n\n const src = `https://www.youtube.com/embed/${vid}${urlParams.toString() ? '?' + urlParams.toString() : ''}`;\n\n return (\n <div className=\"md-youtube\">\n <iframe\n width={width}\n height={height}\n src={src}\n title={title}\n allowFullScreen={allowfullscreen}\n style={{ border: 0 }}\n />\n </div>\n );\n}\n", "import { type OverlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Overline({\n token,\n context,\n}: TokenContext<OverlineToken>) {\n return (\n <u className=\"md-overline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type MetadataToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Metadata({ token }: TokenContext<MetadataToken>) {\n return <>{token.value}</>;\n}\n", "import { type CodespanToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Codespan({ token }: TokenContext<CodespanToken>) {\n return (\n <code aria-label=\"Code\" className=\"md-codespan\">\n {token.text}\n </code>\n );\n}\n", "import { cleanUrl, type LinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Link({ token, context }: TokenContext<LinkToken>) {\n const cleanHref = cleanUrl(token.href);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={token.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type RefLinkToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function RefLink({\n token,\n context,\n}: TokenContext<RefLinkToken>) {\n const refLink = context.reflinks.get(token.ref);\n if (refLink === undefined) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const cleanHref = cleanUrl(refLink.link);\n if (cleanHref === null) {\n return <RenderTokens tokens={token.label} context={context} />;\n }\n const isBlank = cleanHref.startsWith('#');\n return (\n <a\n className=\"md-link\"\n href={cleanHref}\n title={refLink.title}\n target={isBlank ? '_blank' : undefined}\n rel={isBlank ? 'noopener' : undefined}\n >\n <RenderTokens tokens={token.label} context={context} />\n </a>\n );\n}\n", "import { cleanUrl, type ImageToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Image({ token }: TokenContext<ImageToken>) {\n const imgcleanHref = cleanUrl(token.href);\n if (imgcleanHref === null) {\n return <>{token.alt}</>;\n }\n return (\n <img\n src={imgcleanHref}\n alt={token.alt}\n className=\"md-image\"\n title={token.title}\n />\n );\n}\n", "import { type FootnoteRefToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function FootnoteRef({\n token,\n context,\n}: TokenContext<FootnoteRefToken>) {\n return (\n <sup id={`fnref:${token.ref}`}>\n <a className=\"md-link\" href={`#fn:${token.ref}`}>\n {`[${context.footnoteIndexRefs.get(token.ref) ?? -1}]`}\n </a>\n </sup>\n );\n}\n", "export default function NewLine() {\n return <br />;\n}\n", "import { type HighlightToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Highlight({\n token,\n context,\n}: TokenContext<HighlightToken>) {\n return (\n <mark className=\"md-highlight\">\n <RenderTokens tokens={token.tokens} context={context} />\n </mark>\n );\n}\n", "import { type StrikethroughToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Strikethrough({\n token,\n context,\n}: TokenContext<StrikethroughToken>) {\n return (\n <del className=\"md-strikethrough\">\n <RenderTokens tokens={token.tokens} context={context} />\n </del>\n );\n}\n", "import { type EmojiToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\n\nexport default function Emoji({ token, context }: TokenContext<EmojiToken>) {\n const emoji = context.emojis[token.name];\n if (emoji === undefined) {\n return <>{`:${token.name}:`}</>;\n }\n switch (emoji.type) {\n case 'img':\n return (\n <img\n alt={emoji.alt ?? token.name}\n src={emoji.url}\n width={emoji.width ?? 20}\n height={emoji.height ?? 20}\n />\n );\n case 'i':\n return <i className={emoji.className}></i>;\n default:\n return <>{emoji.char}</>;\n }\n}\n", "import { type UnderlineToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Underline({\n token,\n context,\n}: TokenContext<UnderlineToken>) {\n return (\n <u className=\"md-underline\">\n <RenderTokens tokens={token.tokens} context={context} />\n </u>\n );\n}\n", "import { type BoldToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Bold({ token, context }: TokenContext<BoldToken>) {\n return (\n <strong className=\"md-bold\">\n <RenderTokens tokens={token.tokens} context={context} />\n </strong>\n );\n}\n", "import { type ItalicToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Italic({ token, context }: TokenContext<ItalicToken>) {\n return (\n <em className=\"md-italic\">\n <RenderTokens tokens={token.tokens} context={context} />\n </em>\n );\n}\n", "import { type SupToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sup({ token, context }: TokenContext<SupToken>) {\n return (\n <sup className=\"md-sup\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sup>\n );\n}\n", "import { type SubToken } from 'mkimp';\nimport { type TokenContext } from '../RenderRootToken';\nimport RenderTokens from '../RenderTokens';\n\nexport default function Sub({ token, context }: TokenContext<SubToken>) {\n return (\n <sub className=\"md-sub\">\n <RenderTokens tokens={token.tokens} context={context} />\n </sub>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useEffect", "useState", "Lexer", "flattenMetaData", "data", "prefix", "result", "item", "index", "key", "value", "newKey", "generateSections", "jsx", "Article", "children", "jsx", "Section", "headingId", "children", "Fragment", "jsx", "RenderToken", "token", "context", "renderFn", "Fragment", "jsx", "RenderTokens", "tokens", "context", "token", "i", "tokenKey", "RenderToken", "jsx", "RenderCurrentTarget", "context", "renderTarget", "children", "Article", "jsx", "Heading", "token", "context", "className", "RenderTokens", "useMemo", "sanitizeHtml", "jsx", "jsxs", "HLJS", "content", "language", "from", "callback", "lang", "highlightedHtml", "lines", "line", "i", "lineKey", "jsx", "Codeblock", "token", "context", "from", "HLJS", "Fragment", "jsx", "Conditional", "token", "context", "branch", "RenderTokens", "data", "jsx", "Horizontal", "jsx", "Blockquote", "token", "context", "RenderTokens", "jsx", "List", "token", "context", "className", "start", "RenderTokens", "jsx", "jsxs", "ListItem", "token", "context", "RenderTokens", "jsx", "jsxs", "Table", "token", "context", "RenderTokens", "row", "i", "rowKey", "jsx", "Cell", "token", "context", "RenderTokens", "jsx", "DefinitionList", "token", "context", "RenderTokens", "Fragment", "jsx", "jsxs", "DefinitionListItem", "token", "context", "RenderTokens", "def", "i", "defKey", "useMemo", "sanitizeHtml", "jsx", "LaTeX", "content", "inline", "displayMode", "callback", "html", "Fragment", "jsx", "Tex", "token", "context", "convertLaTeXToHTML", "LaTeX", "jsx", "jsxs", "Spoiler", "token", "context", "RenderTokens", "jsx", "Include", "token", "context", "RenderTokens", "sanitizeHtml", "jsx", "Html", "token", "context", "sanitization", "html", "jsx", "Paragraph", "token", "context", "RenderTokens", "jsx", "FootnoteEnd", "context", "refSize", "result", "i", "fnKey", "ref", "def", "RenderTokens", "jsx", "Small", "token", "context", "RenderTokens", "generateTableOfContent", "Fragment", "jsx", "jsxs", "TOCNodes", "nodes", "context", "node", "index", "token", "children", "itemKey", "RenderTokens", "jsx", "TableOfContent", "context", "nodes", "generateTableOfContent", "TOCNodes", "WHITESPACE_CHARS", "Fragment", "jsx", "Text", "token", "context", "nodes", "i", "found", "whitespace", "abbr", "sbr", "isMatch", "isAtBoundary", "startIndex", "jsx", "YoutubeEmbed", "token", "vid", "title", "width", "height", "start", "allowfullscreen", "urlParams", "src", "jsx", "Overline", "token", "context", "RenderTokens", "Fragment", "jsx", "Metadata", "token", "jsx", "Codespan", "token", "cleanUrl", "jsx", "Link", "token", "context", "cleanHref", "cleanUrl", "RenderTokens", "isBlank", "cleanUrl", "jsx", "RefLink", "token", "context", "refLink", "RenderTokens", "cleanHref", "cleanUrl", "isBlank", "cleanUrl", "Fragment", "jsx", "Image", "token", "imgcleanHref", "jsx", "FootnoteRef", "token", "context", "jsx", "NewLine", "jsx", "Highlight", "token", "context", "RenderTokens", "jsx", "Strikethrough", "token", "context", "RenderTokens", "Fragment", "jsx", "Emoji", "token", "context", "emoji", "jsx", "Underline", "token", "context", "RenderTokens", "jsx", "Bold", "token", "context", "RenderTokens", "jsx", "Italic", "token", "context", "RenderTokens", "jsx", "Sup", "token", "context", "RenderTokens", "jsx", "Sub", "token", "context", "RenderTokens", "Fragment", "jsx", "RENDERER", "Heading", "Codeblock", "Conditional", "Horizontal", "Blockquote", "List", "ListItem", "Table", "Cell", "DefinitionList", "DefinitionListItem", "Tex", "Spoiler", "Include", "Html", "Paragraph", "FootnoteEnd", "Small", "TableOfContent", "Text", "YoutubeEmbed", "Overline", "Metadata", "Codespan", "Link", "RefLink", "Image", "FootnoteRef", "NewLine", "Highlight", "Strikethrough", "Emoji", "Underline", "Bold", "Italic", "Sup", "Sub", "RenderRootToken", "root", "sanitize", "withSection", "renderTarget", "overrideRenderer", "convertLaTeXToHTML", "highlightText", "overrideArticle", "overrideSanitization", "overrideSection", "context", "Article", "RenderCurrentTarget", "RenderTokens", "SectionPart", "Section", "generateSections", "section", "i", "headingToken", "t", "headingId", "sKey", "token", "si", "sectionKey", "RenderToken", "jsx", "MkImpRenderer", "emojis", "frontMatter", "include", "includeCode", "mdContent", "metadata", "overrideArticle", "overrideHLJS", "overrideLaTeX", "overrideRenderer", "overrideSection", "renderTarget", "sanitize", "tabulation", "withSection", "rootToken", "setRootToken", "useState", "useEffect", "Lexer", "flattenMetaData", "RenderRootToken"]
|
|
7
7
|
}
|
package/dist/renderer/HLJS.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export interface HLJSProps {
|
|
|
3
3
|
content: string;
|
|
4
4
|
language?: string;
|
|
5
5
|
from?: number;
|
|
6
|
+
callback: (content: string, language: string | undefined) => string;
|
|
6
7
|
}
|
|
7
|
-
export default function HLJS({ content, language, from, }: HLJSProps): JSX.Element;
|
|
8
|
+
export default function HLJS({ content, language, from, callback, }: HLJSProps): JSX.Element;
|
package/dist/renderer/LaTeX.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export interface LaTeXProps {
|
|
|
2
2
|
content: string;
|
|
3
3
|
inline: boolean;
|
|
4
4
|
displayMode: boolean;
|
|
5
|
+
callback: (content: string, displayMode: boolean) => string;
|
|
5
6
|
}
|
|
6
|
-
export default function LaTeX({ content, inline, displayMode }: LaTeXProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default function LaTeX({ content, inline, displayMode, callback, }: LaTeXProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { type TokenType, type RootToken, type ExtractToken, type MdToken, type EmojiRecord, type HeadingToken, type AbbrToken, type LinkRef, type RenderTarget } from 'mkimp';
|
|
2
2
|
import { type JSX } from 'react';
|
|
3
3
|
import { type ArticleProps } from './Article';
|
|
4
|
-
import { type LaTeXProps } from './LaTeX';
|
|
5
4
|
import { type SectionProps } from './Section';
|
|
6
|
-
import { type HLJSProps } from './HLJS';
|
|
7
5
|
export type TokenRendering = {
|
|
8
6
|
[K in TokenType]: (props: TokenContext<ExtractToken<K>>) => JSX.Element;
|
|
9
7
|
};
|
|
@@ -23,8 +21,8 @@ export interface RendererContext {
|
|
|
23
21
|
tableOfContents: HeadingToken[];
|
|
24
22
|
sanitize: boolean;
|
|
25
23
|
Article: (props: ArticleProps) => JSX.Element;
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;
|
|
25
|
+
highlightText?: (content: string, language: string | undefined) => string;
|
|
28
26
|
overrideSanitization?: (html: string) => string;
|
|
29
27
|
}
|
|
30
28
|
export interface RenderRootTokenProps {
|
|
@@ -33,10 +31,10 @@ export interface RenderRootTokenProps {
|
|
|
33
31
|
withSection: boolean;
|
|
34
32
|
renderTarget: RenderTarget;
|
|
35
33
|
overrideRenderer?: Partial<TokenRendering>;
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
convertLaTeXToHTML?: (content: string, displayMode: boolean) => string;
|
|
35
|
+
highlightText?: (content: string, language: string | undefined) => string;
|
|
38
36
|
overrideArticle?: (props: ArticleProps) => JSX.Element;
|
|
39
37
|
overrideSanitization?: (html: string) => string;
|
|
40
38
|
overrideSection?: (props: SectionProps) => JSX.Element;
|
|
41
39
|
}
|
|
42
|
-
export default function RenderRootToken({ root, sanitize, withSection, renderTarget, overrideRenderer,
|
|
40
|
+
export default function RenderRootToken({ root, sanitize, withSection, renderTarget, overrideRenderer, convertLaTeXToHTML, highlightText, overrideArticle, overrideSanitization, overrideSection, }: RenderRootTokenProps): import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mkimp_react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Write markdown like a programmer should be able to, the react implementation.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -57,9 +57,7 @@
|
|
|
57
57
|
"format": "prettier --write \"**/*.{js,mjs,jsx,ts,mts,tsx,json}\" --log-level silent"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"
|
|
61
|
-
"katex": "^0.16.43",
|
|
62
|
-
"mkimp": "^5.0.1",
|
|
60
|
+
"mkimp": "^6.0.1",
|
|
63
61
|
"sanitize-html": "^2.17.2"
|
|
64
62
|
},
|
|
65
63
|
"peerDependencies": {
|
|
@@ -72,7 +70,6 @@
|
|
|
72
70
|
"@testing-library/jest-dom": "^6.9.1",
|
|
73
71
|
"@testing-library/react": "^16.3.2",
|
|
74
72
|
"@testing-library/user-event": "^14.6.1",
|
|
75
|
-
"@types/katex": "^0.16.8",
|
|
76
73
|
"@types/react": "^19.2.14",
|
|
77
74
|
"@types/react-dom": "^19.2.3",
|
|
78
75
|
"@types/sanitize-html": "^2.16.1",
|