mkimp_react 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/index.cjs.js +2 -0
  4. package/dist/index.cjs.js.map +7 -0
  5. package/dist/index.d.cts +34 -0
  6. package/dist/index.d.mts +34 -0
  7. package/dist/index.d.ts +34 -0
  8. package/dist/index.esm.js +2 -0
  9. package/dist/index.esm.js.map +7 -0
  10. package/dist/renderer/Article.d.ts +5 -0
  11. package/dist/renderer/HLJS.d.ts +7 -0
  12. package/dist/renderer/LaTeX.d.ts +6 -0
  13. package/dist/renderer/RenderCurrentTarget.d.ts +8 -0
  14. package/dist/renderer/RenderRootToken.d.ts +42 -0
  15. package/dist/renderer/RenderToken.d.ts +6 -0
  16. package/dist/renderer/RenderTokens.d.ts +6 -0
  17. package/dist/renderer/Section.d.ts +5 -0
  18. package/dist/renderer/tokens/Blockquote.d.ts +3 -0
  19. package/dist/renderer/tokens/Bold.d.ts +3 -0
  20. package/dist/renderer/tokens/Cell.d.ts +3 -0
  21. package/dist/renderer/tokens/Codeblock.d.ts +3 -0
  22. package/dist/renderer/tokens/Codespan.d.ts +3 -0
  23. package/dist/renderer/tokens/Conditional.d.ts +3 -0
  24. package/dist/renderer/tokens/DefinitionList.d.ts +3 -0
  25. package/dist/renderer/tokens/DefinitionListItem.d.ts +3 -0
  26. package/dist/renderer/tokens/Emoji.d.ts +3 -0
  27. package/dist/renderer/tokens/FootnoteEnd.d.ts +3 -0
  28. package/dist/renderer/tokens/FootnoteRef.d.ts +3 -0
  29. package/dist/renderer/tokens/Heading.d.ts +3 -0
  30. package/dist/renderer/tokens/Highlight.d.ts +3 -0
  31. package/dist/renderer/tokens/Horizontal.d.ts +1 -0
  32. package/dist/renderer/tokens/Html.d.ts +3 -0
  33. package/dist/renderer/tokens/Image.d.ts +3 -0
  34. package/dist/renderer/tokens/Include.d.ts +3 -0
  35. package/dist/renderer/tokens/Italic.d.ts +3 -0
  36. package/dist/renderer/tokens/Link.d.ts +3 -0
  37. package/dist/renderer/tokens/List.d.ts +3 -0
  38. package/dist/renderer/tokens/ListItem.d.ts +3 -0
  39. package/dist/renderer/tokens/Metadata.d.ts +3 -0
  40. package/dist/renderer/tokens/NewLine.d.ts +1 -0
  41. package/dist/renderer/tokens/Overline.d.ts +3 -0
  42. package/dist/renderer/tokens/Paragraph.d.ts +3 -0
  43. package/dist/renderer/tokens/RefLink.d.ts +3 -0
  44. package/dist/renderer/tokens/Small.d.ts +3 -0
  45. package/dist/renderer/tokens/Spoiler.d.ts +3 -0
  46. package/dist/renderer/tokens/Strikethrough.d.ts +3 -0
  47. package/dist/renderer/tokens/Sub.d.ts +3 -0
  48. package/dist/renderer/tokens/Sup.d.ts +3 -0
  49. package/dist/renderer/tokens/TOCNodes.d.ts +6 -0
  50. package/dist/renderer/tokens/Table.d.ts +3 -0
  51. package/dist/renderer/tokens/TableOfContent.d.ts +3 -0
  52. package/dist/renderer/tokens/Tex.d.ts +3 -0
  53. package/dist/renderer/tokens/Text.d.ts +3 -0
  54. package/dist/renderer/tokens/Underline.d.ts +3 -0
  55. package/dist/renderer/tokens/YoutubeEmbed.d.ts +3 -0
  56. package/dist/setupTests.d.ts +1 -0
  57. package/dist/utils/flattenMapData.d.ts +4 -0
  58. package/package.json +100 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 FriquetLuca
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # Mkimp React
2
+
3
+ <p align="center">
4
+ <img src="https://img.shields.io/badge/license-MIT-green">
5
+ <img src="https://img.shields.io/badge/typescript-v5.9.3-orange">
6
+ <img src="https://img.shields.io/badge/node-v24.0.0-yellow">
7
+ <img src="https://img.shields.io/badge/react-v19.2.4-blue">
8
+ </p>
9
+
10
+ **MkImp** lets you write Markdown like a programmer should be able to — with power, precision, and extensibility.
11
+
12
+ ⚠️ **Note:** This is **not** standard Markdown. MkImp defines its own rules and does **not** support arbitrary extensions out of the box.
13
+
14
+ This is the React implementation of [MkImp](https://www.npmjs.com/package/mkimp).
15
+
16
+ ## 🔧 Usage
17
+
18
+ ```tsx
19
+ import { MkImpRenderer } from 'mkimp_react';
20
+
21
+ export default function MkImpExample() {
22
+ return (<MkImpRenderer mdContent="# Hello\n\nThis *is* some __nice__ markdown!" />);
23
+ }
24
+ ```
25
+
26
+ ## ⚙️ Options
27
+
28
+ ```ts
29
+ interface MkImpRendererProps {
30
+ emojis?: Record<string, EmojiRecord>;
31
+ frontMatter?: (content: string) => Promise<MetaData>;
32
+ include?: (
33
+ location: string,
34
+ from: number | undefined,
35
+ to: number | undefined
36
+ ) => Promise<string | undefined>;
37
+ includeCode?: (
38
+ location: string,
39
+ from: number | undefined,
40
+ to: number | undefined
41
+ ) => Promise<string | undefined>;
42
+ mdContent: string;
43
+ metadata?: MetaData;
44
+ overrideArticle?: (props: ArticleProps) => JSX.Element;
45
+ overrideHLJS?: (props: HLJSProps) => JSX.Element;
46
+ overrideLaTeX?: (props: LaTeXProps) => JSX.Element;
47
+ overrideRenderer?: Partial<TokenRendering>;
48
+ overrideSection?: (props: SectionProps) => JSX.Element;
49
+ renderTarget?: RenderTarget;
50
+ sanitize?: boolean;
51
+ tabulation?: number;
52
+ withSection?: boolean;
53
+ }
54
+ function MkImpRenderer(props: MkImpRendererProps): JSX.Element;
55
+ ```
56
+
57
+ ## 📦 License
58
+
59
+ [MIT](./LICENSE)
@@ -0,0 +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})}
2
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.tsx", "../src/utils/flattenMapData.ts", "../src/renderer/RenderRootToken.tsx", "../src/renderer/Article.tsx", "../src/renderer/LaTeX.tsx", "../src/renderer/Section.tsx", "../src/renderer/HLJS.tsx", "../src/renderer/RenderToken.tsx", "../src/renderer/RenderTokens.tsx", "../src/renderer/RenderCurrentTarget.tsx", "../src/renderer/tokens/Heading.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/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 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", "import_react", "import_katex", "import_sanitize_html", "import_jsx_runtime", "LaTeX", "content", "inline", "displayMode", "html", "latex", "KaTeX", "sanitizeHtml", "import_jsx_runtime", "Section", "headingId", "children", "import_react", "import_highlight", "import_sanitize_html", "import_jsx_runtime", "HLJS", "content", "language", "from", "lang", "highlightedHtml", "result", "hljs", "sanitizeHtml", "lines", "line", "i", "lineKey", "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_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_jsx_runtime", "Tex", "token", "context", "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", "overrideLaTeX", "overrideHLJS", "overrideArticle", "overrideSanitization", "overrideSection", "context", "Article", "LaTeX", "HLJS", "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
+ }
@@ -0,0 +1,34 @@
1
+ import { type JSX } from 'react';
2
+ import { type EmojiRecord, type RenderTarget } from 'mkimp';
3
+ import { type TokenRendering } from './renderer/RenderRootToken';
4
+ import { type ArticleProps } from './renderer/Article';
5
+ import { type LaTeXProps } from './renderer/LaTeX';
6
+ import { type SectionProps } from './renderer/Section';
7
+ import { type HLJSProps } from './renderer/HLJS';
8
+ export { type TokenRendering, type TokenContext, } from './renderer/RenderRootToken';
9
+ export { type ArticleProps } from './renderer/Article';
10
+ export { type LaTeXProps } from './renderer/LaTeX';
11
+ export { type SectionProps } from './renderer/Section';
12
+ export { type HLJSProps } from './renderer/HLJS';
13
+ export type MetaDataPrimitives = string | bigint | number | boolean | null | undefined;
14
+ export type MetaData = MetaDataPrimitives | MetaData[] | {
15
+ [key: string | number | symbol]: MetaData;
16
+ };
17
+ export interface MkImpRendererProps {
18
+ emojis?: Record<string, EmojiRecord>;
19
+ frontMatter?: (content: string) => Promise<MetaData>;
20
+ include?: (location: string, from: number | undefined, to: number | undefined) => Promise<string | undefined>;
21
+ includeCode?: (location: string, from: number | undefined, to: number | undefined) => Promise<string | undefined>;
22
+ mdContent: string;
23
+ metadata?: MetaData;
24
+ overrideArticle?: (props: ArticleProps) => JSX.Element;
25
+ overrideHLJS?: (props: HLJSProps) => JSX.Element;
26
+ overrideLaTeX?: (props: LaTeXProps) => JSX.Element;
27
+ overrideRenderer?: Partial<TokenRendering>;
28
+ overrideSection?: (props: SectionProps) => JSX.Element;
29
+ renderTarget?: RenderTarget;
30
+ sanitize?: boolean;
31
+ tabulation?: number;
32
+ withSection?: boolean;
33
+ }
34
+ export default function MkImpRenderer({ emojis, frontMatter, include, includeCode, mdContent, metadata, overrideArticle, overrideHLJS, overrideLaTeX, overrideRenderer, overrideSection, renderTarget, sanitize, tabulation, withSection, }: MkImpRendererProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,34 @@
1
+ import { type JSX } from 'react';
2
+ import { type EmojiRecord, type RenderTarget } from 'mkimp';
3
+ import { type TokenRendering } from './renderer/RenderRootToken';
4
+ import { type ArticleProps } from './renderer/Article';
5
+ import { type LaTeXProps } from './renderer/LaTeX';
6
+ import { type SectionProps } from './renderer/Section';
7
+ import { type HLJSProps } from './renderer/HLJS';
8
+ export { type TokenRendering, type TokenContext, } from './renderer/RenderRootToken';
9
+ export { type ArticleProps } from './renderer/Article';
10
+ export { type LaTeXProps } from './renderer/LaTeX';
11
+ export { type SectionProps } from './renderer/Section';
12
+ export { type HLJSProps } from './renderer/HLJS';
13
+ export type MetaDataPrimitives = string | bigint | number | boolean | null | undefined;
14
+ export type MetaData = MetaDataPrimitives | MetaData[] | {
15
+ [key: string | number | symbol]: MetaData;
16
+ };
17
+ export interface MkImpRendererProps {
18
+ emojis?: Record<string, EmojiRecord>;
19
+ frontMatter?: (content: string) => Promise<MetaData>;
20
+ include?: (location: string, from: number | undefined, to: number | undefined) => Promise<string | undefined>;
21
+ includeCode?: (location: string, from: number | undefined, to: number | undefined) => Promise<string | undefined>;
22
+ mdContent: string;
23
+ metadata?: MetaData;
24
+ overrideArticle?: (props: ArticleProps) => JSX.Element;
25
+ overrideHLJS?: (props: HLJSProps) => JSX.Element;
26
+ overrideLaTeX?: (props: LaTeXProps) => JSX.Element;
27
+ overrideRenderer?: Partial<TokenRendering>;
28
+ overrideSection?: (props: SectionProps) => JSX.Element;
29
+ renderTarget?: RenderTarget;
30
+ sanitize?: boolean;
31
+ tabulation?: number;
32
+ withSection?: boolean;
33
+ }
34
+ export default function MkImpRenderer({ emojis, frontMatter, include, includeCode, mdContent, metadata, overrideArticle, overrideHLJS, overrideLaTeX, overrideRenderer, overrideSection, renderTarget, sanitize, tabulation, withSection, }: MkImpRendererProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,34 @@
1
+ import { type JSX } from 'react';
2
+ import { type EmojiRecord, type RenderTarget } from 'mkimp';
3
+ import { type TokenRendering } from './renderer/RenderRootToken';
4
+ import { type ArticleProps } from './renderer/Article';
5
+ import { type LaTeXProps } from './renderer/LaTeX';
6
+ import { type SectionProps } from './renderer/Section';
7
+ import { type HLJSProps } from './renderer/HLJS';
8
+ export { type TokenRendering, type TokenContext, } from './renderer/RenderRootToken';
9
+ export { type ArticleProps } from './renderer/Article';
10
+ export { type LaTeXProps } from './renderer/LaTeX';
11
+ export { type SectionProps } from './renderer/Section';
12
+ export { type HLJSProps } from './renderer/HLJS';
13
+ export type MetaDataPrimitives = string | bigint | number | boolean | null | undefined;
14
+ export type MetaData = MetaDataPrimitives | MetaData[] | {
15
+ [key: string | number | symbol]: MetaData;
16
+ };
17
+ export interface MkImpRendererProps {
18
+ emojis?: Record<string, EmojiRecord>;
19
+ frontMatter?: (content: string) => Promise<MetaData>;
20
+ include?: (location: string, from: number | undefined, to: number | undefined) => Promise<string | undefined>;
21
+ includeCode?: (location: string, from: number | undefined, to: number | undefined) => Promise<string | undefined>;
22
+ mdContent: string;
23
+ metadata?: MetaData;
24
+ overrideArticle?: (props: ArticleProps) => JSX.Element;
25
+ overrideHLJS?: (props: HLJSProps) => JSX.Element;
26
+ overrideLaTeX?: (props: LaTeXProps) => JSX.Element;
27
+ overrideRenderer?: Partial<TokenRendering>;
28
+ overrideSection?: (props: SectionProps) => JSX.Element;
29
+ renderTarget?: RenderTarget;
30
+ sanitize?: boolean;
31
+ tabulation?: number;
32
+ withSection?: boolean;
33
+ }
34
+ export default function MkImpRenderer({ emojis, frontMatter, include, includeCode, mdContent, metadata, overrideArticle, overrideHLJS, overrideLaTeX, overrideRenderer, overrideSection, renderTarget, sanitize, tabulation, withSection, }: MkImpRendererProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +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};
2
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.tsx", "../src/utils/flattenMapData.ts", "../src/renderer/RenderRootToken.tsx", "../src/renderer/Article.tsx", "../src/renderer/LaTeX.tsx", "../src/renderer/Section.tsx", "../src/renderer/HLJS.tsx", "../src/renderer/RenderToken.tsx", "../src/renderer/RenderTokens.tsx", "../src/renderer/RenderCurrentTarget.tsx", "../src/renderer/tokens/Heading.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/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 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", "useMemo", "KaTeX", "sanitizeHtml", "jsx", "LaTeX", "content", "inline", "displayMode", "html", "latex", "jsx", "Section", "headingId", "children", "useMemo", "hljs", "sanitizeHtml", "jsx", "jsxs", "HLJS", "content", "language", "from", "lang", "highlightedHtml", "result", "lines", "line", "i", "lineKey", "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", "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", "jsx", "Tex", "token", "context", "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", "overrideLaTeX", "overrideHLJS", "overrideArticle", "overrideSanitization", "overrideSection", "context", "Article", "LaTeX", "HLJS", "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
+ }
@@ -0,0 +1,5 @@
1
+ import { type JSX } from 'react';
2
+ export interface ArticleProps {
3
+ children: JSX.Element;
4
+ }
5
+ export default function Article({ children }: ArticleProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { type JSX } from 'react';
2
+ export interface HLJSProps {
3
+ content: string;
4
+ language?: string;
5
+ from?: number;
6
+ }
7
+ export default function HLJS({ content, language, from, }: HLJSProps): JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface LaTeXProps {
2
+ content: string;
3
+ inline: boolean;
4
+ displayMode: boolean;
5
+ }
6
+ export default function LaTeX({ content, inline, displayMode }: LaTeXProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { RenderTarget } from 'mkimp';
2
+ import type { RendererContext } from './RenderRootToken';
3
+ export interface RenderCurrentTargetProps {
4
+ context: RendererContext;
5
+ renderTarget: RenderTarget;
6
+ children: React.JSX.Element;
7
+ }
8
+ export default function RenderCurrentTarget({ context, renderTarget, children, }: RenderCurrentTargetProps): import("react").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import { type TokenType, type RootToken, type ExtractToken, type MdToken, type EmojiRecord, type HeadingToken, type AbbrToken, type LinkRef, type RenderTarget } from 'mkimp';
2
+ import { type JSX } from 'react';
3
+ import { type ArticleProps } from './Article';
4
+ import { type LaTeXProps } from './LaTeX';
5
+ import { type SectionProps } from './Section';
6
+ import { type HLJSProps } from './HLJS';
7
+ export type TokenRendering = {
8
+ [K in TokenType]: (props: TokenContext<ExtractToken<K>>) => JSX.Element;
9
+ };
10
+ export type TokenContext<T extends MdToken> = {
11
+ token: T;
12
+ context: RendererContext;
13
+ };
14
+ export interface RendererContext {
15
+ abbrs: AbbrToken[];
16
+ currentRenderer: TokenRendering;
17
+ emojis: Record<string, EmojiRecord>;
18
+ footnoteDefs: Map<string, MdToken[]>;
19
+ footnoteIndexRefs: Map<string, number>;
20
+ footnoteRefs: Map<number, string>;
21
+ metadata: Map<string, string | number | boolean | bigint>;
22
+ reflinks: Map<string, LinkRef>;
23
+ tableOfContents: HeadingToken[];
24
+ sanitize: boolean;
25
+ Article: (props: ArticleProps) => JSX.Element;
26
+ LaTeX: (props: LaTeXProps) => JSX.Element;
27
+ HLJS: (props: HLJSProps) => JSX.Element;
28
+ overrideSanitization?: (html: string) => string;
29
+ }
30
+ export interface RenderRootTokenProps {
31
+ root: RootToken | undefined;
32
+ sanitize: boolean;
33
+ withSection: boolean;
34
+ renderTarget: RenderTarget;
35
+ overrideRenderer?: Partial<TokenRendering>;
36
+ overrideLaTeX?: (props: LaTeXProps) => JSX.Element;
37
+ overrideHLJS?: (props: HLJSProps) => JSX.Element;
38
+ overrideArticle?: (props: ArticleProps) => JSX.Element;
39
+ overrideSanitization?: (html: string) => string;
40
+ overrideSection?: (props: SectionProps) => JSX.Element;
41
+ }
42
+ export default function RenderRootToken({ root, sanitize, withSection, renderTarget, overrideRenderer, overrideLaTeX, overrideHLJS, overrideArticle, overrideSanitization, overrideSection, }: RenderRootTokenProps): import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
@@ -0,0 +1,6 @@
1
+ import { type MdToken } from 'mkimp';
2
+ import { type RendererContext } from 'src/renderer/RenderRootToken';
3
+ export default function RenderToken({ token, context, }: {
4
+ token: MdToken;
5
+ context: RendererContext;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type MdToken } from 'mkimp';
2
+ import { type RendererContext } from 'src/renderer/RenderRootToken';
3
+ export default function RenderTokens({ tokens, context, }: {
4
+ tokens: MdToken[];
5
+ context: RendererContext;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface SectionProps {
2
+ headingId: string | undefined;
3
+ children: React.ReactNode;
4
+ }
5
+ export default function Section({ headingId, children }: SectionProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type BlockQuoteToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Blockquote({ token, context, }: TokenContext<BlockQuoteToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type BoldToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Bold({ token, context }: TokenContext<BoldToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type TableCellToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Cell({ token, context }: TokenContext<TableCellToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type CodeBlockToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Codeblock({ token, context, }: TokenContext<CodeBlockToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type CodespanToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Codespan({ token }: TokenContext<CodespanToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type ConditionalToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Conditional({ token, context, }: TokenContext<ConditionalToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type DefinitionListToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function DefinitionList({ token, context, }: TokenContext<DefinitionListToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type DefinitionListItemToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function DefinitionListItem({ token, context, }: TokenContext<DefinitionListItemToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type EmojiToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Emoji({ token, context }: TokenContext<EmojiToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type FootnoteEndToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function FootnoteEnd({ context, }: TokenContext<FootnoteEndToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type FootnoteRefToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function FootnoteRef({ token, context, }: TokenContext<FootnoteRefToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type HeadingToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Heading({ token, context, }: TokenContext<HeadingToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type HighlightToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Highlight({ token, context, }: TokenContext<HighlightToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function Horizontal(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type HTMLToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Html({ token, context }: TokenContext<HTMLToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type ImageToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Image({ token }: TokenContext<ImageToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type IncludeToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Include({ token, context, }: TokenContext<IncludeToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type ItalicToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Italic({ token, context }: TokenContext<ItalicToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type LinkToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Link({ token, context }: TokenContext<LinkToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type ListToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function List({ token, context }: TokenContext<ListToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type ListItemToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function ListItem({ token, context, }: TokenContext<ListItemToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type MetadataToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Metadata({ token }: TokenContext<MetadataToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function NewLine(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type OverlineToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Overline({ token, context, }: TokenContext<OverlineToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type ParagraphToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Paragraph({ token, context, }: TokenContext<ParagraphToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type RefLinkToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function RefLink({ token, context, }: TokenContext<RefLinkToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type SmallToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Small({ token, context }: TokenContext<SmallToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type SpoilerToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Spoiler({ token, context, }: TokenContext<SpoilerToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type StrikethroughToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Strikethrough({ token, context, }: TokenContext<StrikethroughToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type SubToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Sub({ token, context }: TokenContext<SubToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type SupToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Sup({ token, context }: TokenContext<SupToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type TOCNode } from 'mkimp';
2
+ import { type RendererContext } from '../RenderRootToken';
3
+ export default function TOCNodes({ nodes, context, }: {
4
+ nodes: TOCNode[];
5
+ context: RendererContext;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type TableToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Table({ token, context }: TokenContext<TableToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type TableOfContentToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function TableOfContent({ context, }: TokenContext<TableOfContentToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type TexToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Tex({ token, context }: TokenContext<TexToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type TextToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Text({ token, context }: TokenContext<TextToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type UnderlineToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function Underline({ token, context, }: TokenContext<UnderlineToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type YoutubeToken } from 'mkimp';
2
+ import { type TokenContext } from '../RenderRootToken';
3
+ export default function YoutubeEmbed({ token }: TokenContext<YoutubeToken>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom/vitest';
@@ -0,0 +1,4 @@
1
+ import { MetaData } from 'src';
2
+ type MapValue = string | number | bigint | boolean;
3
+ export declare function flattenMetaData(data: MetaData, prefix?: string, result?: Map<string, MapValue>): Map<string, MapValue>;
4
+ export {};
package/package.json ADDED
@@ -0,0 +1,100 @@
1
+ {
2
+ "name": "mkimp_react",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "Write markdown like a programmer should be able to, the react implementation.",
6
+ "license": "MIT",
7
+ "author": "FriquetLuca",
8
+ "sideEffects": false,
9
+ "keywords": [
10
+ "markdown",
11
+ "md",
12
+ "include",
13
+ "import",
14
+ "template",
15
+ "programming",
16
+ "modular",
17
+ "inject",
18
+ "documentation",
19
+ "react",
20
+ "dom"
21
+ ],
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "main": "./dist/index.cjs.js",
26
+ "module": "./dist/index.esm.js",
27
+ "types": "./dist/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "import": {
31
+ "types": "./dist/index.d.mts",
32
+ "default": "./dist/index.esm.js"
33
+ },
34
+ "require": {
35
+ "types": "./dist/index.d.cts",
36
+ "default": "./dist/index.cjs.js"
37
+ }
38
+ }
39
+ },
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "git+https://github.com/FriquetLuca/mkimp_react.git"
43
+ },
44
+ "bugs": {
45
+ "url": "https://github.com/FriquetLuca/mkimp_react/issues"
46
+ },
47
+ "homepage": "https://github.com/FriquetLuca/mkimp_react",
48
+ "scripts": {
49
+ "clean": "rm -rf dist",
50
+ "build:js": "node build.mjs",
51
+ "build:types": "tsc --emitDeclarationOnly && cp dist/index.d.ts dist/index.d.mts && cp dist/index.d.ts dist/index.d.cts",
52
+ "build": "npm run clean && npm run build:js && npm run build:types",
53
+ "test": "vitest run",
54
+ "test:watch": "vitest",
55
+ "lint": "eslint .",
56
+ "prepare": "husky",
57
+ "format": "prettier --write \"**/*.{js,mjs,jsx,ts,mts,tsx,json}\" --log-level silent"
58
+ },
59
+ "dependencies": {
60
+ "highlight.js": "^11.11.1",
61
+ "katex": "^0.16.43",
62
+ "mkimp": "^5.0.1",
63
+ "sanitize-html": "^2.17.2"
64
+ },
65
+ "peerDependencies": {
66
+ "react": "^18.0.0 || ^19.0.0",
67
+ "react-dom": "^18.0.0 || ^19.0.0"
68
+ },
69
+ "devDependencies": {
70
+ "@eslint-react/eslint-plugin": "^3.0.0",
71
+ "@eslint/js": "^9.39.4",
72
+ "@testing-library/jest-dom": "^6.9.1",
73
+ "@testing-library/react": "^16.3.2",
74
+ "@testing-library/user-event": "^14.6.1",
75
+ "@types/katex": "^0.16.8",
76
+ "@types/react": "^19.2.14",
77
+ "@types/react-dom": "^19.2.3",
78
+ "@types/sanitize-html": "^2.16.1",
79
+ "@vitejs/plugin-react": "^5.2.0",
80
+ "babel-plugin-react-compiler": "^19.1.0-rc.3",
81
+ "esbuild": "^0.27.4",
82
+ "eslint": "^10.1.0",
83
+ "globals": "^17.4.0",
84
+ "husky": "^9.1.7",
85
+ "jsdom": "^29.0.1",
86
+ "lint-staged": "^16.4.0",
87
+ "prettier": "3.8.1",
88
+ "react": "^19.2.4",
89
+ "react-dom": "^19.2.4",
90
+ "typescript": "^5.9.3",
91
+ "typescript-eslint": "^8.57.2",
92
+ "vite": "^8.0.3",
93
+ "vitest": "^4.1.2"
94
+ },
95
+ "lint-staged": {
96
+ "**/*.{js,mjs,jsx,ts,mts,tsx,json}": [
97
+ "prettier --write"
98
+ ]
99
+ }
100
+ }