foxmd 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -12
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +46 -3
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# foxmd
|
|
2
2
|
|
|
3
|
-
An opinionated
|
|
3
|
+
An opinionated library that can turn Markdown string into `React.ReactNode[]`.
|
|
4
4
|
|
|
5
5
|
## Why foxmd?
|
|
6
6
|
|
|
@@ -53,7 +53,7 @@ pnpm add foxmd
|
|
|
53
53
|
**Turn Markdown string into React elements**
|
|
54
54
|
|
|
55
55
|
```tsx
|
|
56
|
-
import { foxmd } from 'foxmd';
|
|
56
|
+
import { foxmd, tocArrayToTree } from 'foxmd';
|
|
57
57
|
import Link from 'next/link';
|
|
58
58
|
|
|
59
59
|
export interface MarkdownComponentProps {
|
|
@@ -89,7 +89,7 @@ export default async function MarkdownComponent({ slug }: MarkdownComponentProps
|
|
|
89
89
|
customReactComponentsForHtmlTags: {
|
|
90
90
|
// Here is an example of customizing how `<a>` tag is rendered
|
|
91
91
|
// This is just for demonstration purposes. In real-world usage, since you have already customized the "link" token render method above,
|
|
92
|
-
//This option will not affect links from markdown (if you have "UNSAFE_allowHtml" enabled, links from inline HTML still apply).
|
|
92
|
+
// This option will not affect links from markdown (if you have "UNSAFE_allowHtml" enabled, links from inline HTML still apply).
|
|
93
93
|
a: (props) => <Link {...props} />
|
|
94
94
|
},
|
|
95
95
|
// Whether to use `htmlparser2` to parse inline HTML and turn them into React elements, default to false
|
|
@@ -109,18 +109,29 @@ export default async function MarkdownComponent({ slug }: MarkdownComponentProps
|
|
|
109
109
|
// e.g., enabling some Marked.js extensions/plugins that are not supported via options, and here is where you do it
|
|
110
110
|
// Note that not all Marked.js extensions/plugins are compatible with foxmd, since foxmd only uses the Tokenizer/Lexer from Marked.js
|
|
111
111
|
markedInstance: undefined,
|
|
112
|
+
|
|
113
|
+
// Want to work with the Table of Contents (TOC)? No problem, foxmd gets you covered.
|
|
114
|
+
//
|
|
115
|
+
// foxmd has a built-in slugger that handles slug/id generation and collision avoidance out of the box.
|
|
116
|
+
//
|
|
117
|
+
// However, if you want to customize the slug/id generation logic (e.g., working with your existing system),
|
|
118
|
+
// here is where you can provide your own slug/id generation function.
|
|
119
|
+
slugize: (str: string) => {
|
|
120
|
+
// Imagine you have set up a custom slug instance before foxmd() invocation
|
|
121
|
+
//
|
|
122
|
+
// import GithubSlugger from 'github-slugger'
|
|
123
|
+
// const slugger = new GithubSlugger();
|
|
124
|
+
return slugger.slug(str);
|
|
125
|
+
|
|
126
|
+
// It is recommended to create one slugger instance per foxmd() call, so collision avoidance only tracks within
|
|
127
|
+
// the current markdown content, which is also the foxmd built-in slugger does.
|
|
128
|
+
}
|
|
112
129
|
});
|
|
113
130
|
|
|
114
|
-
//
|
|
115
|
-
// foxmd handles slug/id generation and collision avoidance out of the box.
|
|
116
|
-
//
|
|
117
|
-
// Currently, slug/id generation is not customizable (have I ever mentioned that foxmd is opinionated?), but PR
|
|
118
|
-
// is always welcome if you really want a custom slug/id generation logic (e.g., working with your existing system)
|
|
119
|
-
//
|
|
120
|
-
// Also, note that the toc is a flat array of headings, with their level and text content.
|
|
131
|
+
// Note that the `toc` is a flat array of headings, with their level, id (already slugified) and text content.
|
|
121
132
|
// Most likely, you will want to convert this flat array into a tree structure.
|
|
122
|
-
// Currently, foxmd does
|
|
123
|
-
console.log({ toc });
|
|
133
|
+
// Currently, foxmd does export an opinionated utility `tocArrayToTree`, but you can always write your own transformation if you wish.
|
|
134
|
+
console.log({ tocTree: tocArrayToTree(toc) });
|
|
124
135
|
|
|
125
136
|
return (
|
|
126
137
|
<div>
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("foxts/lazy-value"),t=require("marked"),r=require("react"),n=require("htmlparser2"),a=require("domhandler"),i=require("postcss"),s=require("postcss-js"),o=require("fast-escape-regexp"),l=require("foxts/guard"),c=require("html-entities");let p={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",fetchpriority:"fetchPriority",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",imagesizes:"imageSizes",imagesrcset:"imageSrcSet",inert:"inert",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",popover:"popover",popovertarget:"popoverTarget",popovertargetaction:"popoverTargetAction",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",transformorigin:"transformOrigin","transform-origin":"transformOrigin",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},d=new Set(["inert","allowFullScreen","async","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope","autoFocus"]),u=new Set(["capture","download"]);function h(e,t){return e in t?t[e]:e}let m=/[\u0000-\u001F]/g,g=/[\s!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-]+/g,f={};for(let e of[{base:"A",letters:"AⒶA\xc0\xc1\xc2ẦẤẪẨ\xc3ĀĂẰẮẴẲȦǠ\xc4ǞẢ\xc5ǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"\xc6ǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČ\xc7ḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺE\xc8\xc9\xcaỀẾỄỂẼĒḔḖĔĖ\xcbẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾI\xcc\xcd\xceĨĪĬİ\xcfḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃ\xd1ṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄO\xd2\xd3\xd4ỒỐỖỔ\xd5ṌȬṎŌṐṒŎȮȰ\xd6ȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬ\xd8ǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\x8cŒ"},{base:"oe",letters:"\x9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊU\xd9\xda\xdbŨṸŪṺŬ\xdcǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲ\xddŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚ\xe0\xe1\xe2ầấẫẩ\xe3āăằắẵẳȧǡ\xe4ǟả\xe5ǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"\xe6ǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċč\xe7ḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔe\xe8\xe9\xeaềếễểẽēḕḗĕė\xebẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘi\xec\xed\xeeĩīĭ\xefḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹń\xf1ṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞo\xf2\xf3\xf4ồốỗổ\xf5ṍȭṏōṑṓŏȯȱ\xf6ȫỏőǒȍȏơờớỡởợọộǫǭ\xf8ǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢs\xdfśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤu\xf9\xfa\xfbũṹūṻŭ\xfcǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳ\xfdŷỹȳẏ\xffỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}])for(let t of e.letters.split(""))f[t]=e.base;function b(e,t){let r="";for(let n=0,a=e.length;n<a;n++)r+=function(e,t){switch(e.type){case"text":if(e.tokens)return b(e.tokens,t);return c.decode(e.text);case"heading":case"paragraph":case"blockquote":return b(e.tokens,t)+"\n";case"link":case"list_item":return b(e.tokens,t);case"em":case"strong":case"codespan":case"del":case"escape":return c.decode(e.text);case"code":if(t)return"";return c.decode(e.text)+"\n";case"br":case"hr":case"html":case"image":case"table":case"def":return"\n";case"space":return e.raw;case"list":{let r="";for(let n=0,a=e.items.length;n<a;n++)r+=b(e.items[n].tokens,t)+"\n";return r}default:l.never(e,"marked token")}}(e[n],t);return r}let k=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]),y=new Map([["bash","shell"],["zsh","shell"],["sh","shell"],["js","javascript"],["ts","typescript"],["py","python"],["yml","yaml"]]);function x({suppressHydrationWarning:e=!1,customRenderMethods:t={},customReactComponentsForHtmlTags:o={},UNSAFE_allowHtml:l=!1}={}){return{...function(e,t,o){function l(n,a,i=null,s={}){let o=h(n,t),c=Object.entries(s).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return c.key=a,e&&(c.suppressHydrationWarning=!0),r.createElement(o,c,i)}return{heading:(e,t,r,n)=>l(`h${r}`,e,t,{id:n}),paragraph:(e,t)=>l("p",e,t),link:(e,t,r,n)=>((t.startsWith("javascript:")||t.startsWith("data:")||t.startsWith("vbscript:"))&&(t=""),l("a",e,r,{href:t,title:n})),image:(e,t,r,n)=>l("img",e,null,{src:t,alt:r,title:n}),codespan:(e,t,r=null)=>l("code",e,t,{className:r?`language-${r}`:void 0}),code(e,t,r=""){return l("pre",e,this.codespan(e+"-codespan-"+r,t,r),{"data-language":(y.has(r)?y.get(r):r).toUpperCase()})},blockquote:(e,t)=>l("blockquote",e,t),list:(e,t,r,n)=>l(r?"ol":"ul",e,t,r&&1!==n?{start:n}:{}),listItem:(e,t)=>l("li",e,t),checkbox:(e,t)=>l("input",e,null,{type:"checkbox",disabled:!0,checked:t}),table:(e,t)=>l("table",e,t),tableHeader:(e,t)=>l("thead",e,t),tableBody:(e,t)=>l("tbody",e,t),tableRow:(e,t)=>l("tr",e,t),tableCell:(e,t,r)=>l(r.header?"th":"td",e,t,{align:r.align||void 0}),strong:(e,t)=>l("strong",e,t),em:(e,t)=>l("em",e,t),del:(e,t)=>l("del",e,t),text:e=>e,html(e,l){if(o){let o;return o=new a.DomHandler,new n.Parser(o,{decodeEntities:!0}).parseComplete(l),o.dom.map((n,o)=>(function e(t,n,o,l){if(a.isDirective(t))return null;if(a.isText(t))return t.data;if(a.isComment(t)||a.isCDATA(t))return null;let c=null;"children"in t&&t.children.length>0&&(c=t.children.reduce((t,r,a)=>{let i=e(r,a,o+"-"+n,l);return null!=i&&t.push(i),t},[]));var m,g=c;let f="name"in t&&t.name.includes("-"),b={key:"foxmd-html-"+o+"-"+n+("name"in t?"-"+t.name:"")};if("attribs"in t&&t.attribs){for(let e in t.attribs)if(Object.hasOwn(t.attribs,e)){if(f){b[e]=t.attribs[e];continue}if("ref"===e||e.startsWith("on"))continue;let r=t.attribs[e];if(e.startsWith("data-")||e.startsWith("aria-")){b[e]=""===r||r;continue}let n=e.toLowerCase();if(n in p&&(e=p[n]),"style"===e){b.style=s.objectify(i.parse(r),{stringifyImportant:!0});continue}if(("checked"===e||"value"===e)&&"reset"!==t.attribs.type&&"submit"!==t.attribs.type){e=p[`default${n}`]||e;continue}if(d.has(e)){b[e]=!0;continue}if(u.has(e)){b[e]=""===r||r;continue}b[e]=r}}if("data"in t&&null!=t.data&&console.warn("[foxmd] Unknown node.data found vs node:",{node:t,data:t.data}),a.isDocument(t))return r.createElement(r.Fragment,b,g);return(m=t.name,k.has(m))?g?.length?(console.warn("[foxmd] Void HTML tag should not have children, foxmd push children after the self-closing tags.",{node:t,tag:t.name,children:g}),r.createElement(r.Fragment,null,r.createElement(h(t.name,l),b),g)):r.createElement(h(t.name,l),b):r.createElement(h(t.name,l),b,g)})(n,o,e,t))}return l},hr:e=>l("hr",e),br:e=>l("br",e)}}(e,o,l),...t}}function v(e,{UNSAFE_pickSingleImageChildOutOfParentParagraph:t=!1}={}){let r=new Map,n=[],a=()=>{n[n.length-1]+=1};function i(t=[]){n.push(0);let r=!1,s="",o=t.map(t=>{switch(t.type){case"text":if(r)return s+=t.text,null;return a(),e.text(c.decode(t.text));case"strong":return a(),e.strong(n.join("-"),i(t.tokens).jsx);case"em":return a(),e.em(n.join("-"),i(t.tokens).jsx);case"del":return a(),e.del(n.join("-"),i(t.tokens).jsx);case"codespan":return a(),e.codespan(n.join("-"),c.decode(t.text));case"link":return a(),e.link(n.join("-"),t.href,i(t.tokens).jsx,t.title??void 0);case"image":return a(),e.image(n.join("-"),t.href,t.text,t.title);case"html":{if("inRawBlock"in t&&(r=t.inRawBlock),r)return s+=t.text,null;a();let i=e.html(n.join("-"),s);return s="",i}case"br":return a(),e.br(n.join("-"));case"escape":return a(),e.text(t.text);default:return console.warn(`[foxmd] Token with "${t.type}" type was not found`),null}});return n.pop(),{jsx:o,toc:[]}}return{parse:function s(l){let p=[];n.push(0);let d=!1,u="",h=l.map(l=>{switch(l.type){case"space":return" ";case"heading":{let t=l.depth,s=b(l.tokens,!0),c=function(e){if("string"!=typeof e)throw TypeError("str must be a string!");let t=o.escapeRegexp("-");return e.replaceAll(/[^\u0000-\u007E]/g,e=>f[e]||e).replaceAll(m,"").replaceAll(g,"-").replaceAll(RegExp(`${t}{2,}`,"g"),"-").replaceAll(RegExp(`^${t}+|${t}+$`,"g"),"").toLowerCase()}(s),d=1;return r.has(c)?(d=r.get(c)+1,r.set(c,d),c=c+"-"+d):r.set(c,d),p.push({text:s,id:c,level:t}),a(),e.heading(n.join("-"),i(l.tokens).jsx,t,c)}case"paragraph":if(t&&l.tokens?.length===1&&"image"===l.tokens[0].type)return i(l.tokens).jsx;return a(),e.paragraph(n.join("-"),i(l.tokens).jsx);case"text":if(d)return u+=l.text,null;return l.tokens?i(l.tokens).jsx:c.decode(l.text);case"blockquote":{let t=s(l.tokens).jsx;return a(),e.blockquote(n.join("-"),t)}case"list":{n.push(0);let t=l.items.map(t=>{let r=[];return t.task&&(a(),r.push(e.checkbox(n.join("-"),t.checked??!1))),r.push(s(t.tokens).jsx),a(),e.listItem(n.join("-"),r)});return n.pop(),a(),e.list(n.join("-"),t,l.ordered,l.ordered?l.start:null)}case"code":return a(),e.code(n.join("-"),l.text,l.lang);case"html":{if("inRawBlock"in l&&(d=l.inRawBlock),d)return u+=l.text,null;a();let t=e.html(n.join("-"),u);return u="",t}case"table":{n.push(0);let t=l.header.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!0,align:l.align[r]})));n.pop(),a();let r=e.tableRow(n.join("-"),t);a();let s=e.tableHeader(n.join("-"),r);n.push(0);let o=l.rows.map(t=>{n.push(0);let r=t.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!1,align:l.align[r]})));return n.pop(),a(),e.tableRow(n.join("-"),r)});n.pop(),a();let c=e.tableBody(n.join("-"),o);return a(),e.table(n.join("-"),[s,c])}case"hr":return a(),e.hr(n.join("-"));default:return console.warn(`[foxmd] Token with "${l.type}" type was not found`),null}});return n.pop(),{jsx:h,toc:p}},parseInline:i}}let w=e.lazyValue(()=>new t.Marked);function j(e){return{gfm:!0,breaks:!0,tokenizer:e.defaults.tokenizer}}exports.createFoxmdParser=v,exports.createFoxmdRenderer=x,exports.foxmd=function(e,{foxmdRendererOptions:t,foxmdParserOptions:r,markedInstance:n=w(),lexerOptions:a=j(n),isInline:i=!1}={}){let s;s="string"==typeof e?n.lexer(e,a):e;let o=v(x(t),r);return i?o.parseInline(s):o.parse(s)},exports.markdownToText=function(e,{markedInstance:t=w(),lexerOptions:r=j(t),skipCodeBlock:n=!1}={}){return b("string"==typeof e?t.lexer(e,r):e,n)};
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("foxts/lazy-value"),t=require("marked"),r=require("react"),n=require("htmlparser2"),a=require("domhandler"),i=require("postcss"),s=require("postcss-js"),o=require("fast-escape-regexp"),l=require("foxts/guard"),c=require("html-entities");let p={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",fetchpriority:"fetchPriority",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",imagesizes:"imageSizes",imagesrcset:"imageSrcSet",inert:"inert",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",popover:"popover",popovertarget:"popoverTarget",popovertargetaction:"popoverTargetAction",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",transformorigin:"transformOrigin","transform-origin":"transformOrigin",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},d=new Set(["inert","allowFullScreen","async","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope","autoFocus"]),u=new Set(["capture","download"]),h=/[\u0000-\u001F]/g,m=/[\s!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-]+/g;function g(e,t){return e in t?t[e]:e}let f={};for(let e of[{base:"A",letters:"AⒶA\xc0\xc1\xc2ẦẤẪẨ\xc3ĀĂẰẮẴẲȦǠ\xc4ǞẢ\xc5ǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"\xc6ǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČ\xc7ḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺE\xc8\xc9\xcaỀẾỄỂẼĒḔḖĔĖ\xcbẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾI\xcc\xcd\xceĨĪĬİ\xcfḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃ\xd1ṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄO\xd2\xd3\xd4ỒỐỖỔ\xd5ṌȬṎŌṐṒŎȮȰ\xd6ȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬ\xd8ǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\x8cŒ"},{base:"oe",letters:"\x9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊU\xd9\xda\xdbŨṸŪṺŬ\xdcǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲ\xddŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚ\xe0\xe1\xe2ầấẫẩ\xe3āăằắẵẳȧǡ\xe4ǟả\xe5ǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"\xe6ǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċč\xe7ḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔe\xe8\xe9\xeaềếễểẽēḕḗĕė\xebẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘi\xec\xed\xeeĩīĭ\xefḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹń\xf1ṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞo\xf2\xf3\xf4ồốỗổ\xf5ṍȭṏōṑṓŏȯȱ\xf6ȫỏőǒȍȏơờớỡởợọộǫǭ\xf8ǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢs\xdfśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤu\xf9\xfa\xfbũṹūṻŭ\xfcǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳ\xfdŷỹȳẏ\xffỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}])for(let t of e.letters.split(""))f[t]=e.base;function b(e,t){let r="";for(let n=0,a=e.length;n<a;n++)r+=function(e,t){switch(e.type){case"text":if(e.tokens)return b(e.tokens,t);return c.decode(e.text);case"heading":case"paragraph":case"blockquote":return b(e.tokens,t)+"\n";case"link":case"list_item":return b(e.tokens,t);case"em":case"strong":case"codespan":case"del":case"escape":return c.decode(e.text);case"code":if(t)return"";return c.decode(e.text)+"\n";case"br":case"hr":case"html":case"image":case"table":case"def":return"\n";case"space":return e.raw;case"list":{let r="";for(let n=0,a=e.items.length;n<a;n++)r+=b(e.items[n].tokens,t)+"\n";return r}default:l.never(e,"marked token")}}(e[n],t);return r}let k=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]),y=new Map([["bash","shell"],["zsh","shell"],["sh","shell"],["js","javascript"],["ts","typescript"],["py","python"],["yml","yaml"]]);function x({suppressHydrationWarning:e=!1,customRenderMethods:t={},customReactComponentsForHtmlTags:o={},UNSAFE_allowHtml:l=!1}={}){return{...function(e,t,o){function l(n,a,i=null,s={}){let o=g(n,t),c=Object.entries(s).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return c.key=a,e&&(c.suppressHydrationWarning=!0),r.createElement(o,c,i)}return{heading:(e,t,r,n)=>l(`h${r}`,e,t,{id:n}),paragraph:(e,t)=>l("p",e,t),link:(e,t,r,n)=>((t.startsWith("javascript:")||t.startsWith("data:")||t.startsWith("vbscript:"))&&(t=""),l("a",e,r,{href:t,title:n})),image:(e,t,r,n)=>l("img",e,null,{src:t,alt:r,title:n}),codespan:(e,t,r=null)=>l("code",e,t,{className:r?`language-${r}`:void 0}),code(e,t,r=""){return l("pre",e,this.codespan(e+"-codespan-"+r,t,r),{"data-language":(y.has(r)?y.get(r):r).toUpperCase()})},blockquote:(e,t)=>l("blockquote",e,t),list:(e,t,r,n)=>l(r?"ol":"ul",e,t,r&&1!==n?{start:n}:{}),listItem:(e,t)=>l("li",e,t),checkbox:(e,t)=>l("input",e,null,{type:"checkbox",disabled:!0,checked:t}),table:(e,t)=>l("table",e,t),tableHeader:(e,t)=>l("thead",e,t),tableBody:(e,t)=>l("tbody",e,t),tableRow:(e,t)=>l("tr",e,t),tableCell:(e,t,r)=>l(r.header?"th":"td",e,t,{align:r.align||void 0}),strong:(e,t)=>l("strong",e,t),em:(e,t)=>l("em",e,t),del:(e,t)=>l("del",e,t),text:e=>e,html(e,l){if(o){let o;return o=new a.DomHandler,new n.Parser(o,{decodeEntities:!0}).parseComplete(l),o.dom.map((n,o)=>(function e(t,n,o,l){if(a.isDirective(t))return null;if(a.isText(t))return t.data;if(a.isComment(t)||a.isCDATA(t))return null;let c=null;"children"in t&&t.children.length>0&&(c=t.children.reduce((t,r,a)=>{let i=e(r,a,o+"-"+n,l);return null!=i&&t.push(i),t},[]));var h,m=c;let f="name"in t&&t.name.includes("-"),b={key:"foxmd-html-"+o+"-"+n+("name"in t?"-"+t.name:"")};if("attribs"in t&&t.attribs){for(let e in t.attribs)if(Object.hasOwn(t.attribs,e)){if(f){b[e]=t.attribs[e];continue}if("ref"===e||e.startsWith("on"))continue;let r=t.attribs[e];if(e.startsWith("data-")||e.startsWith("aria-")){b[e]=""===r||r;continue}let n=e.toLowerCase();if(n in p&&(e=p[n]),"style"===e){b.style=s.objectify(i.parse(r),{stringifyImportant:!0});continue}if(("checked"===e||"value"===e)&&"reset"!==t.attribs.type&&"submit"!==t.attribs.type){e=p[`default${n}`]||e;continue}if(d.has(e)){b[e]=!0;continue}if(u.has(e)){b[e]=""===r||r;continue}b[e]=r}}if("data"in t&&null!=t.data&&console.warn("[foxmd] Unknown node.data found vs node:",{node:t,data:t.data}),a.isDocument(t))return r.createElement(r.Fragment,b,m);return(h=t.name,k.has(h))?m?.length?(console.warn("[foxmd] Void HTML tag should not have children, foxmd push children after the self-closing tags.",{node:t,tag:t.name,children:m}),r.createElement(r.Fragment,null,r.createElement(g(t.name,l),b),m)):r.createElement(g(t.name,l),b):r.createElement(g(t.name,l),b,m)})(n,o,e,t))}return l},hr:e=>l("hr",e),br:e=>l("br",e)}}(e,o,l),...t}}function v(e,{UNSAFE_pickSingleImageChildOutOfParentParagraph:t=!1,slugize:r}){let n=[],a=()=>{n[n.length-1]+=1};function i(t=[]){n.push(0);let r=!1,s="",o=t.map(t=>{switch(t.type){case"text":if(r)return s+=t.text,null;return a(),e.text(c.decode(t.text));case"strong":return a(),e.strong(n.join("-"),i(t.tokens).jsx);case"em":return a(),e.em(n.join("-"),i(t.tokens).jsx);case"del":return a(),e.del(n.join("-"),i(t.tokens).jsx);case"codespan":return a(),e.codespan(n.join("-"),c.decode(t.text));case"link":return a(),e.link(n.join("-"),t.href,i(t.tokens).jsx,t.title??void 0);case"image":return a(),e.image(n.join("-"),t.href,t.text,t.title);case"html":{if("inRawBlock"in t&&(r=t.inRawBlock),r)return s+=t.text,null;a();let i=e.html(n.join("-"),s);return s="",i}case"br":return a(),e.br(n.join("-"));case"escape":return a(),e.text(t.text);default:return console.warn(`[foxmd] Token with "${t.type}" type was not found`),null}});return n.pop(),{jsx:o,toc:[]}}return{parse:function s(o){let l=[];n.push(0);let p=!1,d="",u=o.map(o=>{switch(o.type){case"space":return" ";case"heading":{let t=o.depth,s=b(o.tokens,!0),c=r(s);return l.push({text:s,id:c,level:t}),a(),e.heading(n.join("-"),i(o.tokens).jsx,t,c)}case"paragraph":if(t&&1===o.tokens.length&&"image"===o.tokens[0].type)return i(o.tokens).jsx;return a(),e.paragraph(n.join("-"),i(o.tokens).jsx);case"text":if(p)return d+=o.text,null;return o.tokens?i(o.tokens).jsx:c.decode(o.text);case"blockquote":{let t=s(o.tokens).jsx;return a(),e.blockquote(n.join("-"),t)}case"list":{n.push(0);let t=o.items.map(t=>{let r=[];return t.task&&(a(),r.push(e.checkbox(n.join("-"),t.checked??!1))),r.push(s(t.tokens).jsx),a(),e.listItem(n.join("-"),r)});return n.pop(),a(),e.list(n.join("-"),t,o.ordered,o.ordered?o.start:null)}case"code":return a(),e.code(n.join("-"),o.text,o.lang);case"html":{if("inRawBlock"in o&&(p=o.inRawBlock),p)return d+=o.text,null;a();let t=e.html(n.join("-"),d);return d="",t}case"table":{n.push(0);let t=o.header.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!0,align:o.align[r]})));n.pop(),a();let r=e.tableRow(n.join("-"),t);a();let s=e.tableHeader(n.join("-"),r);n.push(0);let l=o.rows.map(t=>{n.push(0);let r=t.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!1,align:o.align[r]})));return n.pop(),a(),e.tableRow(n.join("-"),r)});n.pop(),a();let c=e.tableBody(n.join("-"),l);return a(),e.table(n.join("-"),[s,c])}case"hr":return a(),e.hr(n.join("-"));default:return console.warn(`[foxmd] Token with "${o.type}" type was not found`),null}});return n.pop(),{jsx:u,toc:l}},parseInline:i}}let w=e.lazyValue(()=>new t.Marked);function j(e){return{gfm:!0,breaks:!0,tokenizer:e.defaults.tokenizer}}exports.createFoxmdParser=v,exports.createFoxmdRenderer=x,exports.foxmd=function(e,{foxmdRendererOptions:t,foxmdParserOptions:r,markedInstance:n=w(),lexerOptions:a=j(n),isInline:i=!1}={}){let s,l;s="string"==typeof e?n.lexer(e,a):e;let c=(l=new Map,e=>{var t;let r,n=(t=e,r=o.escapeRegexp("-"),t.replaceAll(/[^\u0000-\u007E]/g,e=>f[e]||e).replaceAll(h,"").replaceAll(m,"-").replaceAll(RegExp(`${r}{2,}`,"g"),"-").replaceAll(RegExp(`^${r}+|${r}+$`,"g"),"").toLowerCase()),a=1;return l.has(n)?(a=l.get(n)+1,l.set(n,a),n=n+"-"+a):l.set(n,a),n}),p=v(x(t),{slugize:c,...r});return i?p.parseInline(s):p.parse(s)},exports.markdownToText=function(e,{markedInstance:t=w(),lexerOptions:r=j(t),skipCodeBlock:n=!1}={}){return b("string"==typeof e?t.lexer(e,r):e,n)},exports.tocArrayToTree=function(e){let t={},r=[0,0,0,0,0,0],n=Math.min(...e.map(e=>e.level));for(let a=0,i=e.length;a<i;a++){let i=e[a],{text:s,id:o}=i,l=i.level-n;for(let e=0;e<6;e++)e>l?r[e]=0:e<l?0===r[e]&&(r[e]=1):r[e]+=1;let c=t,p=r.slice(0,l+1);for(let e=0,t=p.length;e<t;e++){let t=p[e];t in c||(c[t]={}),c=c[t]}c.id=o,c.text=s,c.index=p.join(".")}return t};
|
package/dist/index.d.ts
CHANGED
|
@@ -77,8 +77,12 @@ interface FoxmdParserParseResult {
|
|
|
77
77
|
}
|
|
78
78
|
interface FoxmdParserOptions {
|
|
79
79
|
UNSAFE_pickSingleImageChildOutOfParentParagraph?: boolean;
|
|
80
|
+
slugize?: (str: string) => string;
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
interface InnerFoxmdParserOptions extends FoxmdParserOptions {
|
|
83
|
+
slugize: (str: string) => string;
|
|
84
|
+
}
|
|
85
|
+
declare function createFoxmdParser(renderer: FoxmdRenderer, { UNSAFE_pickSingleImageChildOutOfParentParagraph, slugize }: InnerFoxmdParserOptions): {
|
|
82
86
|
parse: (tokens: MarkedToken[]) => FoxmdParserParseResult;
|
|
83
87
|
parseInline: (tokens?: MarkedToken[]) => FoxmdParserParseResult;
|
|
84
88
|
};
|
|
@@ -97,6 +101,45 @@ interface MarkdownToTextOptions {
|
|
|
97
101
|
skipCodeBlock?: boolean;
|
|
98
102
|
}
|
|
99
103
|
declare function markdownToText(markdownString: string | Token[], { markedInstance, lexerOptions, skipCodeBlock }?: MarkdownToTextOptions): string;
|
|
104
|
+
type ToCTree = {
|
|
105
|
+
id?: string;
|
|
106
|
+
index?: string;
|
|
107
|
+
text?: string;
|
|
108
|
+
} & {
|
|
109
|
+
[key: string]: ToCTree;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Example
|
|
113
|
+
* ```js
|
|
114
|
+
* {
|
|
115
|
+
* "1": {
|
|
116
|
+
* "id": "foxmd-is-an-opinionated-library-that-can-turn-Markdown-string-into-React-ReactNodes",
|
|
117
|
+
* "index": "1"
|
|
118
|
+
* },
|
|
119
|
+
* "2": {
|
|
120
|
+
* "1": {
|
|
121
|
+
* "1": {
|
|
122
|
+
* "id": "Third-level-title",
|
|
123
|
+
* "index": "2.1.1"
|
|
124
|
+
* },
|
|
125
|
+
* "id": "Second-level-title",
|
|
126
|
+
* "index": "2.1"
|
|
127
|
+
* },
|
|
128
|
+
* "2": {
|
|
129
|
+
* "id": "Another-second-level-title",
|
|
130
|
+
* "index": "2.2"
|
|
131
|
+
* },
|
|
132
|
+
* "id": "First-level-title",
|
|
133
|
+
* "index": "2"
|
|
134
|
+
* }
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
declare function tocArrayToTree(tocArray: Array<{
|
|
139
|
+
text: string;
|
|
140
|
+
id: string;
|
|
141
|
+
level: number;
|
|
142
|
+
}>): ToCTree;
|
|
100
143
|
|
|
101
|
-
export { createFoxmdParser, createFoxmdRenderer, foxmd, markdownToText };
|
|
102
|
-
export type { FoxmdCustomRendererMethods, FoxmdOptions, FoxmdParserOptions, FoxmdRendererOptions, MarkdownToTextOptions };
|
|
144
|
+
export { createFoxmdParser, createFoxmdRenderer, foxmd, markdownToText, tocArrayToTree };
|
|
145
|
+
export type { FoxmdCustomRendererMethods, FoxmdOptions, FoxmdParserOptions, FoxmdRendererOptions, MarkdownToTextOptions, ToCTree };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{lazyValue as e}from"foxts/lazy-value";import{Marked as t}from"marked";import{createElement as r,Fragment as n}from"react";import{Parser as a}from"htmlparser2";import{isDocument as i,DomHandler as s,isDirective as o,isText as l,isComment as c,isCDATA as p}from"domhandler";import{parse as d}from"postcss";import{objectify as u}from"postcss-js";import{escapeRegexp as h}from"fast-escape-regexp";import{never as m}from"foxts/guard";import{decode as g}from"html-entities";let f={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",fetchpriority:"fetchPriority",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",imagesizes:"imageSizes",imagesrcset:"imageSrcSet",inert:"inert",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",popover:"popover",popovertarget:"popoverTarget",popovertargetaction:"popoverTargetAction",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",transformorigin:"transformOrigin","transform-origin":"transformOrigin",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},b=new Set(["inert","allowFullScreen","async","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope","autoFocus"]),k=new Set(["capture","download"]);function y(e,t){return e in t?t[e]:e}let x=/[\u0000-\u001F]/g,v=/[\s!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-]+/g,w={};for(let e of[{base:"A",letters:"AⒶA\xc0\xc1\xc2ẦẤẪẨ\xc3ĀĂẰẮẴẲȦǠ\xc4ǞẢ\xc5ǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"\xc6ǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČ\xc7ḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺE\xc8\xc9\xcaỀẾỄỂẼĒḔḖĔĖ\xcbẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾI\xcc\xcd\xceĨĪĬİ\xcfḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃ\xd1ṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄO\xd2\xd3\xd4ỒỐỖỔ\xd5ṌȬṎŌṐṒŎȮȰ\xd6ȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬ\xd8ǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\x8cŒ"},{base:"oe",letters:"\x9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊU\xd9\xda\xdbŨṸŪṺŬ\xdcǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲ\xddŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚ\xe0\xe1\xe2ầấẫẩ\xe3āăằắẵẳȧǡ\xe4ǟả\xe5ǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"\xe6ǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċč\xe7ḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔe\xe8\xe9\xeaềếễểẽēḕḗĕė\xebẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘi\xec\xed\xeeĩīĭ\xefḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹń\xf1ṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞo\xf2\xf3\xf4ồốỗổ\xf5ṍȭṏōṑṓŏȯȱ\xf6ȫỏőǒȍȏơờớỡởợọộǫǭ\xf8ǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢs\xdfśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤu\xf9\xfa\xfbũṹūṻŭ\xfcǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳ\xfdŷỹȳẏ\xffỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}])for(let t of e.letters.split(""))w[t]=e.base;function j(e,t){let r="";for(let n=0,a=e.length;n<a;n++)r+=function(e,t){switch(e.type){case"text":if(e.tokens)return j(e.tokens,t);return g(e.text);case"heading":case"paragraph":case"blockquote":return j(e.tokens,t)+"\n";case"link":case"list_item":return j(e.tokens,t);case"em":case"strong":case"codespan":case"del":case"escape":return g(e.text);case"code":if(t)return"";return g(e.text)+"\n";case"br":case"hr":case"html":case"image":case"table":case"def":return"\n";case"space":return e.raw;case"list":{let r="";for(let n=0,a=e.items.length;n<a;n++)r+=j(e.items[n].tokens,t)+"\n";return r}default:m(e,"marked token")}}(e[n],t);return r}let S=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]),z=new Map([["bash","shell"],["zsh","shell"],["sh","shell"],["js","javascript"],["ts","typescript"],["py","python"],["yml","yaml"]]);function A({suppressHydrationWarning:e=!1,customRenderMethods:t={},customReactComponentsForHtmlTags:h={},UNSAFE_allowHtml:m=!1}={}){return{...function(e,t,h){function m(n,a,i=null,s={}){let o=y(n,t),l=Object.entries(s).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return l.key=a,e&&(l.suppressHydrationWarning=!0),r(o,l,i)}return{heading:(e,t,r,n)=>m(`h${r}`,e,t,{id:n}),paragraph:(e,t)=>m("p",e,t),link:(e,t,r,n)=>((t.startsWith("javascript:")||t.startsWith("data:")||t.startsWith("vbscript:"))&&(t=""),m("a",e,r,{href:t,title:n})),image:(e,t,r,n)=>m("img",e,null,{src:t,alt:r,title:n}),codespan:(e,t,r=null)=>m("code",e,t,{className:r?`language-${r}`:void 0}),code(e,t,r=""){return m("pre",e,this.codespan(e+"-codespan-"+r,t,r),{"data-language":(z.has(r)?z.get(r):r).toUpperCase()})},blockquote:(e,t)=>m("blockquote",e,t),list:(e,t,r,n)=>m(r?"ol":"ul",e,t,r&&1!==n?{start:n}:{}),listItem:(e,t)=>m("li",e,t),checkbox:(e,t)=>m("input",e,null,{type:"checkbox",disabled:!0,checked:t}),table:(e,t)=>m("table",e,t),tableHeader:(e,t)=>m("thead",e,t),tableBody:(e,t)=>m("tbody",e,t),tableRow:(e,t)=>m("tr",e,t),tableCell:(e,t,r)=>m(r.header?"th":"td",e,t,{align:r.align||void 0}),strong:(e,t)=>m("strong",e,t),em:(e,t)=>m("em",e,t),del:(e,t)=>m("del",e,t),text:e=>e,html(e,m){if(h){let h;return new a(h=new s,{decodeEntities:!0}).parseComplete(m),h.dom.map((a,s)=>(function e(t,a,s,h){if(o(t))return null;if(l(t))return t.data;if(c(t)||p(t))return null;let m=null;"children"in t&&t.children.length>0&&(m=t.children.reduce((t,r,n)=>{let i=e(r,n,s+"-"+a,h);return null!=i&&t.push(i),t},[]));var g,x=m;let v="name"in t&&t.name.includes("-"),w={key:"foxmd-html-"+s+"-"+a+("name"in t?"-"+t.name:"")};if("attribs"in t&&t.attribs){for(let e in t.attribs)if(Object.hasOwn(t.attribs,e)){if(v){w[e]=t.attribs[e];continue}if("ref"===e||e.startsWith("on"))continue;let r=t.attribs[e];if(e.startsWith("data-")||e.startsWith("aria-")){w[e]=""===r||r;continue}let n=e.toLowerCase();if(n in f&&(e=f[n]),"style"===e){w.style=u(d(r),{stringifyImportant:!0});continue}if(("checked"===e||"value"===e)&&"reset"!==t.attribs.type&&"submit"!==t.attribs.type){e=f[`default${n}`]||e;continue}if(b.has(e)){w[e]=!0;continue}if(k.has(e)){w[e]=""===r||r;continue}w[e]=r}}if("data"in t&&null!=t.data&&console.warn("[foxmd] Unknown node.data found vs node:",{node:t,data:t.data}),i(t))return r(n,w,x);return(g=t.name,S.has(g))?x?.length?(console.warn("[foxmd] Void HTML tag should not have children, foxmd push children after the self-closing tags.",{node:t,tag:t.name,children:x}),r(n,null,r(y(t.name,h),w),x)):r(y(t.name,h),w):r(y(t.name,h),w,x)})(a,s,e,t))}return m},hr:e=>m("hr",e),br:e=>m("br",e)}}(e,h,m),...t}}function O(e,{UNSAFE_pickSingleImageChildOutOfParentParagraph:t=!1}={}){let r=new Map,n=[],a=()=>{n[n.length-1]+=1};function i(t=[]){n.push(0);let r=!1,s="",o=t.map(t=>{switch(t.type){case"text":if(r)return s+=t.text,null;return a(),e.text(g(t.text));case"strong":return a(),e.strong(n.join("-"),i(t.tokens).jsx);case"em":return a(),e.em(n.join("-"),i(t.tokens).jsx);case"del":return a(),e.del(n.join("-"),i(t.tokens).jsx);case"codespan":return a(),e.codespan(n.join("-"),g(t.text));case"link":return a(),e.link(n.join("-"),t.href,i(t.tokens).jsx,t.title??void 0);case"image":return a(),e.image(n.join("-"),t.href,t.text,t.title);case"html":{if("inRawBlock"in t&&(r=t.inRawBlock),r)return s+=t.text,null;a();let i=e.html(n.join("-"),s);return s="",i}case"br":return a(),e.br(n.join("-"));case"escape":return a(),e.text(t.text);default:return console.warn(`[foxmd] Token with "${t.type}" type was not found`),null}});return n.pop(),{jsx:o,toc:[]}}return{parse:function s(o){let l=[];n.push(0);let c=!1,p="",d=o.map(o=>{switch(o.type){case"space":return" ";case"heading":{let t=o.depth,s=j(o.tokens,!0),c=function(e){if("string"!=typeof e)throw TypeError("str must be a string!");let t=h("-");return e.replaceAll(/[^\u0000-\u007E]/g,e=>w[e]||e).replaceAll(x,"").replaceAll(v,"-").replaceAll(RegExp(`${t}{2,}`,"g"),"-").replaceAll(RegExp(`^${t}+|${t}+$`,"g"),"").toLowerCase()}(s),p=1;return r.has(c)?(p=r.get(c)+1,r.set(c,p),c=c+"-"+p):r.set(c,p),l.push({text:s,id:c,level:t}),a(),e.heading(n.join("-"),i(o.tokens).jsx,t,c)}case"paragraph":if(t&&o.tokens?.length===1&&"image"===o.tokens[0].type)return i(o.tokens).jsx;return a(),e.paragraph(n.join("-"),i(o.tokens).jsx);case"text":if(c)return p+=o.text,null;return o.tokens?i(o.tokens).jsx:g(o.text);case"blockquote":{let t=s(o.tokens).jsx;return a(),e.blockquote(n.join("-"),t)}case"list":{n.push(0);let t=o.items.map(t=>{let r=[];return t.task&&(a(),r.push(e.checkbox(n.join("-"),t.checked??!1))),r.push(s(t.tokens).jsx),a(),e.listItem(n.join("-"),r)});return n.pop(),a(),e.list(n.join("-"),t,o.ordered,o.ordered?o.start:null)}case"code":return a(),e.code(n.join("-"),o.text,o.lang);case"html":{if("inRawBlock"in o&&(c=o.inRawBlock),c)return p+=o.text,null;a();let t=e.html(n.join("-"),p);return p="",t}case"table":{n.push(0);let t=o.header.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!0,align:o.align[r]})));n.pop(),a();let r=e.tableRow(n.join("-"),t);a();let s=e.tableHeader(n.join("-"),r);n.push(0);let l=o.rows.map(t=>{n.push(0);let r=t.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!1,align:o.align[r]})));return n.pop(),a(),e.tableRow(n.join("-"),r)});n.pop(),a();let c=e.tableBody(n.join("-"),l);return a(),e.table(n.join("-"),[s,c])}case"hr":return a(),e.hr(n.join("-"));default:return console.warn(`[foxmd] Token with "${o.type}" type was not found`),null}});return n.pop(),{jsx:d,toc:l}},parseInline:i}}let R=e(()=>new t);function T(e,{foxmdRendererOptions:t,foxmdParserOptions:r,markedInstance:n=R(),lexerOptions:a=P(n),isInline:i=!1}={}){let s;s="string"==typeof e?n.lexer(e,a):e;let o=O(A(t),r);return i?o.parseInline(s):o.parse(s)}function P(e){return{gfm:!0,breaks:!0,tokenizer:e.defaults.tokenizer}}function C(e,{markedInstance:t=R(),lexerOptions:r=P(t),skipCodeBlock:n=!1}={}){return j("string"==typeof e?t.lexer(e,r):e,n)}export{O as createFoxmdParser,A as createFoxmdRenderer,T as foxmd,C as markdownToText};
|
|
1
|
+
import{lazyValue as e}from"foxts/lazy-value";import{Marked as t}from"marked";import{createElement as r,Fragment as n}from"react";import{Parser as a}from"htmlparser2";import{isDocument as i,DomHandler as s,isDirective as o,isText as l,isComment as c,isCDATA as p}from"domhandler";import{parse as d}from"postcss";import{objectify as u}from"postcss-js";import{escapeRegexp as h}from"fast-escape-regexp";import{never as m}from"foxts/guard";import{decode as g}from"html-entities";let f={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",fetchpriority:"fetchPriority",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",imagesizes:"imageSizes",imagesrcset:"imageSrcSet",inert:"inert",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",popover:"popover",popovertarget:"popoverTarget",popovertargetaction:"popoverTargetAction",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",transformorigin:"transformOrigin","transform-origin":"transformOrigin",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},b=new Set(["inert","allowFullScreen","async","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope","autoFocus"]),k=new Set(["capture","download"]),y=/[\u0000-\u001F]/g,x=/[\s!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-]+/g;function v(e,t){return e in t?t[e]:e}let w={};for(let e of[{base:"A",letters:"AⒶA\xc0\xc1\xc2ẦẤẪẨ\xc3ĀĂẰẮẴẲȦǠ\xc4ǞẢ\xc5ǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"\xc6ǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČ\xc7ḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺE\xc8\xc9\xcaỀẾỄỂẼĒḔḖĔĖ\xcbẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾI\xcc\xcd\xceĨĪĬİ\xcfḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃ\xd1ṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄO\xd2\xd3\xd4ỒỐỖỔ\xd5ṌȬṎŌṐṒŎȮȰ\xd6ȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬ\xd8ǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\x8cŒ"},{base:"oe",letters:"\x9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊU\xd9\xda\xdbŨṸŪṺŬ\xdcǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲ\xddŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚ\xe0\xe1\xe2ầấẫẩ\xe3āăằắẵẳȧǡ\xe4ǟả\xe5ǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"\xe6ǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċč\xe7ḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔe\xe8\xe9\xeaềếễểẽēḕḗĕė\xebẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘi\xec\xed\xeeĩīĭ\xefḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹń\xf1ṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞo\xf2\xf3\xf4ồốỗổ\xf5ṍȭṏōṑṓŏȯȱ\xf6ȫỏőǒȍȏơờớỡởợọộǫǭ\xf8ǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢs\xdfśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤu\xf9\xfa\xfbũṹūṻŭ\xfcǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳ\xfdŷỹȳẏ\xffỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}])for(let t of e.letters.split(""))w[t]=e.base;function j(e,t){let r="";for(let n=0,a=e.length;n<a;n++)r+=function(e,t){switch(e.type){case"text":if(e.tokens)return j(e.tokens,t);return g(e.text);case"heading":case"paragraph":case"blockquote":return j(e.tokens,t)+"\n";case"link":case"list_item":return j(e.tokens,t);case"em":case"strong":case"codespan":case"del":case"escape":return g(e.text);case"code":if(t)return"";return g(e.text)+"\n";case"br":case"hr":case"html":case"image":case"table":case"def":return"\n";case"space":return e.raw;case"list":{let r="";for(let n=0,a=e.items.length;n<a;n++)r+=j(e.items[n].tokens,t)+"\n";return r}default:m(e,"marked token")}}(e[n],t);return r}let z=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]),S=new Map([["bash","shell"],["zsh","shell"],["sh","shell"],["js","javascript"],["ts","typescript"],["py","python"],["yml","yaml"]]);function A({suppressHydrationWarning:e=!1,customRenderMethods:t={},customReactComponentsForHtmlTags:h={},UNSAFE_allowHtml:m=!1}={}){return{...function(e,t,h){function m(n,a,i=null,s={}){let o=v(n,t),l=Object.entries(s).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{});return l.key=a,e&&(l.suppressHydrationWarning=!0),r(o,l,i)}return{heading:(e,t,r,n)=>m(`h${r}`,e,t,{id:n}),paragraph:(e,t)=>m("p",e,t),link:(e,t,r,n)=>((t.startsWith("javascript:")||t.startsWith("data:")||t.startsWith("vbscript:"))&&(t=""),m("a",e,r,{href:t,title:n})),image:(e,t,r,n)=>m("img",e,null,{src:t,alt:r,title:n}),codespan:(e,t,r=null)=>m("code",e,t,{className:r?`language-${r}`:void 0}),code(e,t,r=""){return m("pre",e,this.codespan(e+"-codespan-"+r,t,r),{"data-language":(S.has(r)?S.get(r):r).toUpperCase()})},blockquote:(e,t)=>m("blockquote",e,t),list:(e,t,r,n)=>m(r?"ol":"ul",e,t,r&&1!==n?{start:n}:{}),listItem:(e,t)=>m("li",e,t),checkbox:(e,t)=>m("input",e,null,{type:"checkbox",disabled:!0,checked:t}),table:(e,t)=>m("table",e,t),tableHeader:(e,t)=>m("thead",e,t),tableBody:(e,t)=>m("tbody",e,t),tableRow:(e,t)=>m("tr",e,t),tableCell:(e,t,r)=>m(r.header?"th":"td",e,t,{align:r.align||void 0}),strong:(e,t)=>m("strong",e,t),em:(e,t)=>m("em",e,t),del:(e,t)=>m("del",e,t),text:e=>e,html(e,m){if(h){let h;return new a(h=new s,{decodeEntities:!0}).parseComplete(m),h.dom.map((a,s)=>(function e(t,a,s,h){if(o(t))return null;if(l(t))return t.data;if(c(t)||p(t))return null;let m=null;"children"in t&&t.children.length>0&&(m=t.children.reduce((t,r,n)=>{let i=e(r,n,s+"-"+a,h);return null!=i&&t.push(i),t},[]));var g,y=m;let x="name"in t&&t.name.includes("-"),w={key:"foxmd-html-"+s+"-"+a+("name"in t?"-"+t.name:"")};if("attribs"in t&&t.attribs){for(let e in t.attribs)if(Object.hasOwn(t.attribs,e)){if(x){w[e]=t.attribs[e];continue}if("ref"===e||e.startsWith("on"))continue;let r=t.attribs[e];if(e.startsWith("data-")||e.startsWith("aria-")){w[e]=""===r||r;continue}let n=e.toLowerCase();if(n in f&&(e=f[n]),"style"===e){w.style=u(d(r),{stringifyImportant:!0});continue}if(("checked"===e||"value"===e)&&"reset"!==t.attribs.type&&"submit"!==t.attribs.type){e=f[`default${n}`]||e;continue}if(b.has(e)){w[e]=!0;continue}if(k.has(e)){w[e]=""===r||r;continue}w[e]=r}}if("data"in t&&null!=t.data&&console.warn("[foxmd] Unknown node.data found vs node:",{node:t,data:t.data}),i(t))return r(n,w,y);return(g=t.name,z.has(g))?y?.length?(console.warn("[foxmd] Void HTML tag should not have children, foxmd push children after the self-closing tags.",{node:t,tag:t.name,children:y}),r(n,null,r(v(t.name,h),w),y)):r(v(t.name,h),w):r(v(t.name,h),w,y)})(a,s,e,t))}return m},hr:e=>m("hr",e),br:e=>m("br",e)}}(e,h,m),...t}}function O(e,{UNSAFE_pickSingleImageChildOutOfParentParagraph:t=!1,slugize:r}){let n=[],a=()=>{n[n.length-1]+=1};function i(t=[]){n.push(0);let r=!1,s="",o=t.map(t=>{switch(t.type){case"text":if(r)return s+=t.text,null;return a(),e.text(g(t.text));case"strong":return a(),e.strong(n.join("-"),i(t.tokens).jsx);case"em":return a(),e.em(n.join("-"),i(t.tokens).jsx);case"del":return a(),e.del(n.join("-"),i(t.tokens).jsx);case"codespan":return a(),e.codespan(n.join("-"),g(t.text));case"link":return a(),e.link(n.join("-"),t.href,i(t.tokens).jsx,t.title??void 0);case"image":return a(),e.image(n.join("-"),t.href,t.text,t.title);case"html":{if("inRawBlock"in t&&(r=t.inRawBlock),r)return s+=t.text,null;a();let i=e.html(n.join("-"),s);return s="",i}case"br":return a(),e.br(n.join("-"));case"escape":return a(),e.text(t.text);default:return console.warn(`[foxmd] Token with "${t.type}" type was not found`),null}});return n.pop(),{jsx:o,toc:[]}}return{parse:function s(o){let l=[];n.push(0);let c=!1,p="",d=o.map(o=>{switch(o.type){case"space":return" ";case"heading":{let t=o.depth,s=j(o.tokens,!0),c=r(s);return l.push({text:s,id:c,level:t}),a(),e.heading(n.join("-"),i(o.tokens).jsx,t,c)}case"paragraph":if(t&&1===o.tokens.length&&"image"===o.tokens[0].type)return i(o.tokens).jsx;return a(),e.paragraph(n.join("-"),i(o.tokens).jsx);case"text":if(c)return p+=o.text,null;return o.tokens?i(o.tokens).jsx:g(o.text);case"blockquote":{let t=s(o.tokens).jsx;return a(),e.blockquote(n.join("-"),t)}case"list":{n.push(0);let t=o.items.map(t=>{let r=[];return t.task&&(a(),r.push(e.checkbox(n.join("-"),t.checked??!1))),r.push(s(t.tokens).jsx),a(),e.listItem(n.join("-"),r)});return n.pop(),a(),e.list(n.join("-"),t,o.ordered,o.ordered?o.start:null)}case"code":return a(),e.code(n.join("-"),o.text,o.lang);case"html":{if("inRawBlock"in o&&(c=o.inRawBlock),c)return p+=o.text,null;a();let t=e.html(n.join("-"),p);return p="",t}case"table":{n.push(0);let t=o.header.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!0,align:o.align[r]})));n.pop(),a();let r=e.tableRow(n.join("-"),t);a();let s=e.tableHeader(n.join("-"),r);n.push(0);let l=o.rows.map(t=>{n.push(0);let r=t.map((t,r)=>(a(),e.tableCell(n.join("-"),i(t.tokens).jsx,{header:!1,align:o.align[r]})));return n.pop(),a(),e.tableRow(n.join("-"),r)});n.pop(),a();let c=e.tableBody(n.join("-"),l);return a(),e.table(n.join("-"),[s,c])}case"hr":return a(),e.hr(n.join("-"));default:return console.warn(`[foxmd] Token with "${o.type}" type was not found`),null}});return n.pop(),{jsx:d,toc:l}},parseInline:i}}let R=e(()=>new t);function T(e,{foxmdRendererOptions:t,foxmdParserOptions:r,markedInstance:n=R(),lexerOptions:a=P(n),isInline:i=!1}={}){let s,o;s="string"==typeof e?n.lexer(e,a):e;let l=(o=new Map,e=>{var t;let r,n=(t=e,r=h("-"),t.replaceAll(/[^\u0000-\u007E]/g,e=>w[e]||e).replaceAll(y,"").replaceAll(x,"-").replaceAll(RegExp(`${r}{2,}`,"g"),"-").replaceAll(RegExp(`^${r}+|${r}+$`,"g"),"").toLowerCase()),a=1;return o.has(n)?(a=o.get(n)+1,o.set(n,a),n=n+"-"+a):o.set(n,a),n}),c=O(A(t),{slugize:l,...r});return i?c.parseInline(s):c.parse(s)}function P(e){return{gfm:!0,breaks:!0,tokenizer:e.defaults.tokenizer}}function C(e,{markedInstance:t=R(),lexerOptions:r=P(t),skipCodeBlock:n=!1}={}){return j("string"==typeof e?t.lexer(e,r):e,n)}function M(e){let t={},r=[0,0,0,0,0,0],n=Math.min(...e.map(e=>e.level));for(let a=0,i=e.length;a<i;a++){let i=e[a],{text:s,id:o}=i,l=i.level-n;for(let e=0;e<6;e++)e>l?r[e]=0:e<l?0===r[e]&&(r[e]=1):r[e]+=1;let c=t,p=r.slice(0,l+1);for(let e=0,t=p.length;e<t;e++){let t=p[e];t in c||(c[t]={}),c=c[t]}c.id=o,c.text=s,c.index=p.join(".")}return t}export{O as createFoxmdParser,A as createFoxmdRenderer,T as foxmd,C as markdownToText,M as tocArrayToTree};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "foxmd",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "An opinionated
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "An opinionated library that can turn Markdown string into `React.ReactNode[]`",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/SukkaW/foxmd"
|
|
7
7
|
},
|