markdown-to-jsx 7.4.6 → 7.5.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 +26 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.d.ts +6 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +80 -72
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -10,47 +10,48 @@ import * as React from 'react';
|
|
|
10
10
|
* Analogous to `node.type`. Please note that the values here may change at any time,
|
|
11
11
|
* so do not hard code against the value directly.
|
|
12
12
|
*/
|
|
13
|
-
export declare const
|
|
14
|
-
blockQuote
|
|
15
|
-
breakLine
|
|
16
|
-
breakThematic
|
|
17
|
-
codeBlock
|
|
18
|
-
codeFenced
|
|
19
|
-
codeInline
|
|
20
|
-
footnote
|
|
21
|
-
footnoteReference
|
|
22
|
-
gfmTask
|
|
23
|
-
heading
|
|
24
|
-
headingSetext
|
|
13
|
+
export declare const RuleType: {
|
|
14
|
+
readonly blockQuote: "0";
|
|
15
|
+
readonly breakLine: "1";
|
|
16
|
+
readonly breakThematic: "2";
|
|
17
|
+
readonly codeBlock: "3";
|
|
18
|
+
readonly codeFenced: "4";
|
|
19
|
+
readonly codeInline: "5";
|
|
20
|
+
readonly footnote: "6";
|
|
21
|
+
readonly footnoteReference: "7";
|
|
22
|
+
readonly gfmTask: "8";
|
|
23
|
+
readonly heading: "9";
|
|
24
|
+
readonly headingSetext: "10";
|
|
25
25
|
/** only available if not `disableHTMLParsing` */
|
|
26
|
-
htmlBlock
|
|
27
|
-
htmlComment
|
|
26
|
+
readonly htmlBlock: "11";
|
|
27
|
+
readonly htmlComment: "12";
|
|
28
28
|
/** only available if not `disableHTMLParsing` */
|
|
29
|
-
htmlSelfClosing
|
|
30
|
-
image
|
|
31
|
-
link
|
|
29
|
+
readonly htmlSelfClosing: "13";
|
|
30
|
+
readonly image: "14";
|
|
31
|
+
readonly link: "15";
|
|
32
32
|
/** emits a `link` 'node', does not render directly */
|
|
33
|
-
linkAngleBraceStyleDetector
|
|
33
|
+
readonly linkAngleBraceStyleDetector: "16";
|
|
34
34
|
/** emits a `link` 'node', does not render directly */
|
|
35
|
-
linkBareUrlDetector
|
|
35
|
+
readonly linkBareUrlDetector: "17";
|
|
36
36
|
/** emits a `link` 'node', does not render directly */
|
|
37
|
-
linkMailtoDetector
|
|
38
|
-
newlineCoalescer
|
|
39
|
-
orderedList
|
|
40
|
-
paragraph
|
|
41
|
-
ref
|
|
42
|
-
refImage
|
|
43
|
-
refLink
|
|
44
|
-
table
|
|
45
|
-
tableSeparator
|
|
46
|
-
text
|
|
47
|
-
textBolded
|
|
48
|
-
textEmphasized
|
|
49
|
-
textEscaped
|
|
50
|
-
textMarked
|
|
51
|
-
textStrikethroughed
|
|
52
|
-
unorderedList
|
|
53
|
-
}
|
|
37
|
+
readonly linkMailtoDetector: "18";
|
|
38
|
+
readonly newlineCoalescer: "19";
|
|
39
|
+
readonly orderedList: "20";
|
|
40
|
+
readonly paragraph: "21";
|
|
41
|
+
readonly ref: "22";
|
|
42
|
+
readonly refImage: "23";
|
|
43
|
+
readonly refLink: "24";
|
|
44
|
+
readonly table: "25";
|
|
45
|
+
readonly tableSeparator: "26";
|
|
46
|
+
readonly text: "27";
|
|
47
|
+
readonly textBolded: "28";
|
|
48
|
+
readonly textEmphasized: "29";
|
|
49
|
+
readonly textEscaped: "30";
|
|
50
|
+
readonly textMarked: "31";
|
|
51
|
+
readonly textStrikethroughed: "32";
|
|
52
|
+
readonly unorderedList: "33";
|
|
53
|
+
};
|
|
54
|
+
export type RuleType = (typeof RuleType)[keyof typeof RuleType];
|
|
54
55
|
declare const enum Priority {
|
|
55
56
|
/**
|
|
56
57
|
* anything that must scan the tree before everything else
|
|
@@ -74,6 +75,7 @@ declare const enum Priority {
|
|
|
74
75
|
MIN = 4
|
|
75
76
|
}
|
|
76
77
|
export declare function slugify(str: string): string;
|
|
78
|
+
export declare function sanitizer(url: string): string;
|
|
77
79
|
export declare function compiler(markdown?: string, options?: MarkdownToJSX.Options): JSX.Element;
|
|
78
80
|
/**
|
|
79
81
|
* A simple HOC for easy React use. Feed the markdown content as a direct child
|
|
@@ -109,106 +111,106 @@ export declare namespace MarkdownToJSX {
|
|
|
109
111
|
};
|
|
110
112
|
export interface BlockQuoteNode {
|
|
111
113
|
children: MarkdownToJSX.ParserResult[];
|
|
112
|
-
type: RuleType.blockQuote;
|
|
114
|
+
type: typeof RuleType.blockQuote;
|
|
113
115
|
}
|
|
114
116
|
export interface BreakLineNode {
|
|
115
|
-
type: RuleType.breakLine;
|
|
117
|
+
type: typeof RuleType.breakLine;
|
|
116
118
|
}
|
|
117
119
|
export interface BreakThematicNode {
|
|
118
|
-
type: RuleType.breakThematic;
|
|
120
|
+
type: typeof RuleType.breakThematic;
|
|
119
121
|
}
|
|
120
122
|
export interface CodeBlockNode {
|
|
121
|
-
type: RuleType.codeBlock;
|
|
123
|
+
type: typeof RuleType.codeBlock;
|
|
122
124
|
attrs?: JSX.IntrinsicAttributes;
|
|
123
125
|
lang?: string;
|
|
124
126
|
text: string;
|
|
125
127
|
}
|
|
126
128
|
export interface CodeFencedNode {
|
|
127
|
-
type: RuleType.codeFenced;
|
|
129
|
+
type: typeof RuleType.codeFenced;
|
|
128
130
|
}
|
|
129
131
|
export interface CodeInlineNode {
|
|
130
|
-
type: RuleType.codeInline;
|
|
132
|
+
type: typeof RuleType.codeInline;
|
|
131
133
|
text: string;
|
|
132
134
|
}
|
|
133
135
|
export interface FootnoteNode {
|
|
134
|
-
type: RuleType.footnote;
|
|
136
|
+
type: typeof RuleType.footnote;
|
|
135
137
|
}
|
|
136
138
|
export interface FootnoteReferenceNode {
|
|
137
|
-
type: RuleType.footnoteReference;
|
|
139
|
+
type: typeof RuleType.footnoteReference;
|
|
138
140
|
target: string;
|
|
139
141
|
text: string;
|
|
140
142
|
}
|
|
141
143
|
export interface GFMTaskNode {
|
|
142
|
-
type: RuleType.gfmTask;
|
|
144
|
+
type: typeof RuleType.gfmTask;
|
|
143
145
|
completed: boolean;
|
|
144
146
|
}
|
|
145
147
|
export interface HeadingNode {
|
|
146
|
-
type: RuleType.heading;
|
|
148
|
+
type: typeof RuleType.heading;
|
|
147
149
|
children: MarkdownToJSX.ParserResult[];
|
|
148
150
|
id: string;
|
|
149
151
|
level: 1 | 2 | 3 | 4 | 5 | 6;
|
|
150
152
|
}
|
|
151
153
|
export interface HeadingSetextNode {
|
|
152
|
-
type: RuleType.headingSetext;
|
|
154
|
+
type: typeof RuleType.headingSetext;
|
|
153
155
|
}
|
|
154
156
|
export interface HTMLCommentNode {
|
|
155
|
-
type: RuleType.htmlComment;
|
|
157
|
+
type: typeof RuleType.htmlComment;
|
|
156
158
|
}
|
|
157
159
|
export interface ImageNode {
|
|
158
|
-
type: RuleType.image;
|
|
160
|
+
type: typeof RuleType.image;
|
|
159
161
|
alt?: string;
|
|
160
162
|
target: string;
|
|
161
163
|
title?: string;
|
|
162
164
|
}
|
|
163
165
|
export interface LinkNode {
|
|
164
|
-
type: RuleType.link;
|
|
166
|
+
type: typeof RuleType.link;
|
|
165
167
|
children: MarkdownToJSX.ParserResult[];
|
|
166
168
|
target: string;
|
|
167
169
|
title?: string;
|
|
168
170
|
}
|
|
169
171
|
export interface LinkAngleBraceNode {
|
|
170
|
-
type: RuleType.linkAngleBraceStyleDetector;
|
|
172
|
+
type: typeof RuleType.linkAngleBraceStyleDetector;
|
|
171
173
|
}
|
|
172
174
|
export interface LinkBareURLNode {
|
|
173
|
-
type: RuleType.linkBareUrlDetector;
|
|
175
|
+
type: typeof RuleType.linkBareUrlDetector;
|
|
174
176
|
}
|
|
175
177
|
export interface LinkMailtoNode {
|
|
176
|
-
type: RuleType.linkMailtoDetector;
|
|
178
|
+
type: typeof RuleType.linkMailtoDetector;
|
|
177
179
|
}
|
|
178
180
|
export interface OrderedListNode {
|
|
179
|
-
type: RuleType.orderedList;
|
|
181
|
+
type: typeof RuleType.orderedList;
|
|
180
182
|
items: MarkdownToJSX.ParserResult[][];
|
|
181
183
|
ordered: true;
|
|
182
184
|
start?: number;
|
|
183
185
|
}
|
|
184
186
|
export interface UnorderedListNode {
|
|
185
|
-
type: RuleType.unorderedList;
|
|
187
|
+
type: typeof RuleType.unorderedList;
|
|
186
188
|
items: MarkdownToJSX.ParserResult[][];
|
|
187
189
|
ordered: false;
|
|
188
190
|
}
|
|
189
191
|
export interface NewlineNode {
|
|
190
|
-
type: RuleType.newlineCoalescer;
|
|
192
|
+
type: typeof RuleType.newlineCoalescer;
|
|
191
193
|
}
|
|
192
194
|
export interface ParagraphNode {
|
|
193
|
-
type: RuleType.paragraph;
|
|
195
|
+
type: typeof RuleType.paragraph;
|
|
194
196
|
children: MarkdownToJSX.ParserResult[];
|
|
195
197
|
}
|
|
196
198
|
export interface ReferenceNode {
|
|
197
|
-
type: RuleType.ref;
|
|
199
|
+
type: typeof RuleType.ref;
|
|
198
200
|
}
|
|
199
201
|
export interface ReferenceImageNode {
|
|
200
|
-
type: RuleType.refImage;
|
|
202
|
+
type: typeof RuleType.refImage;
|
|
201
203
|
alt?: string;
|
|
202
204
|
ref: string;
|
|
203
205
|
}
|
|
204
206
|
export interface ReferenceLinkNode {
|
|
205
|
-
type: RuleType.refLink;
|
|
207
|
+
type: typeof RuleType.refLink;
|
|
206
208
|
children: MarkdownToJSX.ParserResult[];
|
|
207
209
|
fallbackChildren: MarkdownToJSX.ParserResult[];
|
|
208
210
|
ref: string;
|
|
209
211
|
}
|
|
210
212
|
export interface TableNode {
|
|
211
|
-
type: RuleType.table;
|
|
213
|
+
type: typeof RuleType.table;
|
|
212
214
|
/**
|
|
213
215
|
* alignment for each table column
|
|
214
216
|
*/
|
|
@@ -217,33 +219,33 @@ export declare namespace MarkdownToJSX {
|
|
|
217
219
|
header: MarkdownToJSX.ParserResult[][];
|
|
218
220
|
}
|
|
219
221
|
export interface TableSeparatorNode {
|
|
220
|
-
type: RuleType.tableSeparator;
|
|
222
|
+
type: typeof RuleType.tableSeparator;
|
|
221
223
|
}
|
|
222
224
|
export interface TextNode {
|
|
223
|
-
type: RuleType.text;
|
|
225
|
+
type: typeof RuleType.text;
|
|
224
226
|
text: string;
|
|
225
227
|
}
|
|
226
228
|
export interface BoldTextNode {
|
|
227
|
-
type: RuleType.textBolded;
|
|
229
|
+
type: typeof RuleType.textBolded;
|
|
228
230
|
children: MarkdownToJSX.ParserResult[];
|
|
229
231
|
}
|
|
230
232
|
export interface ItalicTextNode {
|
|
231
|
-
type: RuleType.textEmphasized;
|
|
233
|
+
type: typeof RuleType.textEmphasized;
|
|
232
234
|
children: MarkdownToJSX.ParserResult[];
|
|
233
235
|
}
|
|
234
236
|
export interface EscapedTextNode {
|
|
235
|
-
type: RuleType.textEscaped;
|
|
237
|
+
type: typeof RuleType.textEscaped;
|
|
236
238
|
}
|
|
237
239
|
export interface MarkedTextNode {
|
|
238
|
-
type: RuleType.textMarked;
|
|
240
|
+
type: typeof RuleType.textMarked;
|
|
239
241
|
children: MarkdownToJSX.ParserResult[];
|
|
240
242
|
}
|
|
241
243
|
export interface StrikethroughTextNode {
|
|
242
|
-
type: RuleType.textStrikethroughed;
|
|
244
|
+
type: typeof RuleType.textStrikethroughed;
|
|
243
245
|
children: MarkdownToJSX.ParserResult[];
|
|
244
246
|
}
|
|
245
247
|
export interface HTMLNode {
|
|
246
|
-
type: RuleType.htmlBlock;
|
|
248
|
+
type: typeof RuleType.htmlBlock;
|
|
247
249
|
attrs: JSX.IntrinsicAttributes;
|
|
248
250
|
children?: ReturnType<MarkdownToJSX.NestedParser> | undefined;
|
|
249
251
|
noInnerParse: Boolean;
|
|
@@ -251,7 +253,7 @@ export declare namespace MarkdownToJSX {
|
|
|
251
253
|
text?: string | undefined;
|
|
252
254
|
}
|
|
253
255
|
export interface HTMLSelfClosingNode {
|
|
254
|
-
type: RuleType.htmlSelfClosing;
|
|
256
|
+
type: typeof RuleType.htmlSelfClosing;
|
|
255
257
|
attrs: JSX.IntrinsicAttributes;
|
|
256
258
|
tag: string;
|
|
257
259
|
}
|
|
@@ -270,7 +272,9 @@ export declare namespace MarkdownToJSX {
|
|
|
270
272
|
render: RuleOutput, state?: MarkdownToJSX.State) => React.ReactChild;
|
|
271
273
|
};
|
|
272
274
|
export type Rules = {
|
|
273
|
-
[K in ParserResult['type']]: Rule<Extract<ParserResult, {
|
|
275
|
+
[K in ParserResult['type']]: K extends typeof RuleType.table ? Rule<Extract<ParserResult, {
|
|
276
|
+
type: K | typeof RuleType.paragraph;
|
|
277
|
+
}>> : Rule<Extract<ParserResult, {
|
|
274
278
|
type: K;
|
|
275
279
|
}>>;
|
|
276
280
|
};
|
|
@@ -372,11 +376,15 @@ export declare namespace MarkdownToJSX {
|
|
|
372
376
|
renderChildren: RuleOutput,
|
|
373
377
|
/** contains `key` which should be supplied to the topmost JSX element */
|
|
374
378
|
state: State) => React.ReactChild;
|
|
379
|
+
/**
|
|
380
|
+
* Override the built-in sanitizer function for URLs, etc if desired. The built-in version is available as a library export called `sanitizer`.
|
|
381
|
+
*/
|
|
382
|
+
sanitizer: (value: string, tag: HTMLTags, attribute: string) => string | null;
|
|
375
383
|
/**
|
|
376
384
|
* Override normalization of non-URI-safe characters for use in generating
|
|
377
385
|
* HTML IDs for anchor linking purposes.
|
|
378
386
|
*/
|
|
379
|
-
slugify: (
|
|
387
|
+
slugify: (input: string, defaultFn: (input: string) => string) => string;
|
|
380
388
|
/**
|
|
381
389
|
* Declare the type of the wrapper to be used when there are multiple
|
|
382
390
|
* children to render. Set to `null` to get an array of children back
|
package/dist/index.modern.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as e from"react";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},n.apply(this,arguments)}const t=["children","options"];var r,i;!function(e){e.blockQuote="0",e.breakLine="1",e.breakThematic="2",e.codeBlock="3",e.codeFenced="4",e.codeInline="5",e.footnote="6",e.footnoteReference="7",e.gfmTask="8",e.heading="9",e.headingSetext="10",e.htmlBlock="11",e.htmlComment="12",e.htmlSelfClosing="13",e.image="14",e.link="15",e.linkAngleBraceStyleDetector="16",e.linkBareUrlDetector="17",e.linkMailtoDetector="18",e.newlineCoalescer="19",e.orderedList="20",e.paragraph="21",e.ref="22",e.refImage="23",e.refLink="24",e.table="25",e.tableSeparator="26",e.text="27",e.textBolded="28",e.textEmphasized="29",e.textEscaped="30",e.textMarked="31",e.textStrikethroughed="32",e.unorderedList="33"}(r||(r={})),function(e){e[e.MAX=0]="MAX",e[e.HIGH=1]="HIGH",e[e.MED=2]="MED",e[e.LOW=3]="LOW",e[e.MIN=4]="MIN"}(i||(i={}));const l=["allowFullScreen","allowTransparency","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","charSet","className","classId","colSpan","contentEditable","contextMenu","crossOrigin","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","hrefLang","inputMode","keyParams","keyType","marginHeight","marginWidth","maxLength","mediaGroup","minLength","noValidate","radioGroup","readOnly","rowSpan","spellCheck","srcDoc","srcLang","srcSet","tabIndex","useMap"].reduce((e,n)=>(e[n.toLowerCase()]=n,e),{for:"htmlFor"}),o={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},c=["style","script"],a=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,s=/mailto:/i,d=/\n{2,}$/,u=/^(\s*>[\s\S]*?)(?=\n{2,})/,p=/^ *> ?/gm,f=/^ {2,}\n/,h=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,m=/^\s*(`{3,}|~{3,}) *(\S+)?([^\n]*?)?\n([\s\S]+?)\s*\1 *(?:\n *)*\n?/,g=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,y=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,k=/^(?:\n *)*\n/,x=/\r\n?/g,b=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,v=/^\[\^([^\]]+)]/,$=/\f/g,w=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,E=/^\s*?\[(x|\s)\]/,S=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,C=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,A=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,O=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?([^>]*)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,T=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,L=/^<!--[\s\S]*?(?:-->)/,R=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,z=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,M=/^\{.*\}$/,I=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,U=/^<([^ >]+@[^ >]+)>/,j=/^<([^ >]+:\/[^ >]+)>/,B=/-([a-z])?/gi,N=/^(.*\|?.*)\n *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*)\n?/,H=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,D=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,P=/^\[([^\]]*)\] ?\[([^\]]*)\]/,_=/(\[|\])/g,F=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,W=/\t/g,G=/^ *\| */,Z=/(^ *\||\| *$)/g,q=/ *$/,V=/^ *:-+: *$/,X=/^ *:-+ *$/,Q=/^ *-+: *$/,J="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~~.*?~~|==.*?==|.|\\n)*?)",K=new RegExp(`^([*_])\\1${J}\\1\\1(?!\\1)`),Y=new RegExp(`^([*_])${J}\\1(?!\\1|\\w)`),ee=new RegExp(`^==${J}==`),ne=new RegExp(`^~~${J}~~`),te=/^\\([^0-9A-Za-z\s])/,re=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&#;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,ie=/^\n+/,le=/^([ \t]*)/,oe=/\\([^\\])/g,ce=/ *\n+$/,ae=/(?:^|\n)( *)$/,se="(?:\\d+\\.)",de="(?:[*+-])";function ue(e){return"( *)("+(1===e?se:de)+") +"}const pe=ue(1),fe=ue(2);function he(e){return new RegExp("^"+(1===e?pe:fe))}const me=he(1),ge=he(2);function ye(e){return new RegExp("^"+(1===e?pe:fe)+"[^\\n]*(?:\\n(?!\\1"+(1===e?se:de)+" )[^\\n]*)*(\\n|$)","gm")}const ke=ye(1),xe=ye(2);function be(e){const n=1===e?se:de;return new RegExp("^( *)("+n+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+n+" (?!"+n+" ))\\n*|\\s*\\n*$)")}const ve=be(1),$e=be(2);function we(e,n){const t=1===n,r=t?ve:$e,i=t?ke:xe,l=t?me:ge;return{match(e,n,t){const i=ae.exec(t);return i&&(n.list||!n.inline&&!n.simple)?r.exec(e=i[1]+e):null},order:1,parse(e,n,r){const o=t?+e[2]:void 0,c=e[0].replace(d,"\n").match(i);let a=!1;return{items:c.map(function(e,t){const i=l.exec(e)[0].length,o=new RegExp("^ {1,"+i+"}","gm"),s=e.replace(o,"").replace(l,""),d=t===c.length-1,u=-1!==s.indexOf("\n\n")||d&&a;a=u;const p=r.inline,f=r.list;let h;r.list=!0,u?(r.inline=!1,h=s.replace(ce,"\n\n")):(r.inline=!0,h=s.replace(ce,""));const m=n(h,r);return r.inline=p,r.list=f,m}),ordered:t,start:o}},render:(n,t,r)=>e(n.ordered?"ol":"ul",{key:r.key,start:"20"===n.type?n.start:void 0},n.items.map(function(n,i){return e("li",{key:i},t(n,r))}))}}const Ee=new RegExp("^\\[((?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*)\\]\\(\\s*<?((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),Se=/^!\[(.*?)\]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,Ce=[u,m,g,S,A,C,L,N,ke,ve,xe,$e],Ae=[...Ce,/^[^\n]+(?: \n|\n{2,})/,O,z];function Oe(e){return e.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function Te(e){return Q.test(e)?"right":V.test(e)?"center":X.test(e)?"left":null}function Le(e,n,t){const r=t.inTable;t.inTable=!0;const i=n(e.trim(),t);t.inTable=r;let l=[[]];return i.forEach(function(e,n){"26"===e.type?0!==n&&n!==i.length-1&&l.push([]):("27"!==e.type||null!=i[n+1]&&"26"!==i[n+1].type||(e.text=e.text.replace(q,"")),l[l.length-1].push(e))}),l}function Re(e,n,t){t.inline=!0;const r=Le(e[1],n,t),i=e[2].replace(Z,"").split("|").map(Te),l=function(e,n,t){return e.trim().split("\n").map(function(e){return Le(e,n,t)})}(e[3],n,t);return t.inline=!1,{align:i,cells:l,header:r,type:"25"}}function ze(e,n){return null==e.align[n]?{}:{textAlign:e.align[n]}}function Me(e){return function(n,t){return t.inline?e.exec(n):null}}function Ie(e){return function(n,t){return t.inline||t.simple?e.exec(n):null}}function Ue(e){return function(n,t){return t.inline||t.simple?null:e.exec(n)}}function je(e){return function(n){return e.exec(n)}}function Be(e,n,t){if(n.inline||n.simple)return null;if(t&&!t.endsWith("\n"))return null;let r="";e.split("\n").every(e=>!Ce.some(n=>n.test(e))&&(r+=e+"\n",e.trim()));const i=r.trimEnd();return""==i?null:[r,i]}function Ne(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data(?!:image)):/i))return}catch(e){return null}return e}function He(e){return e.replace(oe,"$1")}function De(e,n,t){const r=t.inline||!1,i=t.simple||!1;t.inline=!0,t.simple=!0;const l=e(n,t);return t.inline=r,t.simple=i,l}function Pe(e,n,t){const r=t.inline||!1,i=t.simple||!1;t.inline=!1,t.simple=!0;const l=e(n,t);return t.inline=r,t.simple=i,l}function _e(e,n,t){return t.inline=!1,e(n,t)}const Fe=(e,n,t)=>({children:De(n,e[1],t)});function We(){return{}}function Ge(){return null}function Ze(...e){return e.filter(Boolean).join(" ")}function qe(e,n,t){let r=e;const i=n.split(".");for(;i.length&&(r=r[i[0]],void 0!==r);)i.shift();return r||t}function Ve(t="",r={}){r.overrides=r.overrides||{},r.slugify=r.slugify||Oe,r.namedCodesToUnicode=r.namedCodesToUnicode?n({},o,r.namedCodesToUnicode):o;const i=r.createElement||e.createElement;function d(e,t,...l){const o=qe(r.overrides,`${e}.props`,{});return i(function(e,n){const t=qe(n,e);return t?"function"==typeof t||"object"==typeof t&&"render"in t?t:qe(n,`${e}.component`,e):e}(e,r.overrides),n({},t,o,{className:Ze(null==t?void 0:t.className,o.className)||void 0}),...l)}function Z(n){n=n.replace(w,"");let t=!1;r.forceInline?t=!0:r.forceBlock||(t=!1===F.test(n));const i=oe(J(t?n:`${n.trimEnd().replace(ie,"")}\n\n`,{inline:t}));for(;"string"==typeof i[i.length-1]&&!i[i.length-1].trim();)i.pop();if(null===r.wrapper)return i;const l=r.wrapper||(t?"span":"div");let o;if(i.length>1||r.forceWrapper)o=i;else{if(1===i.length)return o=i[0],"string"==typeof o?d("span",{key:"outer"},o):o;o=null}return e.createElement(l,{key:"outer"},o)}function q(n){const t=n.match(a);return t?t.reduce(function(n,t,r){const i=t.indexOf("=");if(-1!==i){const o=function(e){return-1!==e.indexOf("-")&&null===e.match(R)&&(e=e.replace(B,function(e,n){return n.toUpperCase()})),e}(t.slice(0,i)).trim(),c=function(e){const n=e[0];return('"'===n||"'"===n)&&e.length>=2&&e[e.length-1]===n?e.slice(1,-1):e}(t.slice(i+1).trim()),a=l[o]||o,s=n[a]=function(e,n){return"style"===e?n.split(/;\s?/).reduce(function(e,n){const t=n.slice(0,n.indexOf(":"));return e[t.trim().replace(/(-[a-z])/g,e=>e[1].toUpperCase())]=n.slice(t.length+1).trim(),e},{}):"href"===e||"src"===e?Ne(n):(n.match(M)&&(n=n.slice(1,n.length-1)),"true"===n||"false"!==n&&n)}(o,c);"string"==typeof s&&(O.test(s)||z.test(s))&&(n[a]=e.cloneElement(Z(s.trim()),{key:r}))}else"style"!==t&&(n[l[t]||t]=!0);return n},{}):null}const V=[],X={},Q={0:{match:Ue(u),order:1,parse:(e,n,t)=>({children:n(e[0].replace(p,""),t)}),render:(e,n,t)=>d("blockquote",{key:t.key},n(e.children,t))},1:{match:je(f),order:1,parse:We,render:(e,n,t)=>d("br",{key:t.key})},2:{match:Ue(h),order:1,parse:We,render:(e,n,t)=>d("hr",{key:t.key})},3:{match:Ue(g),order:0,parse:e=>({lang:void 0,text:e[0].replace(/^ {4}/gm,"").replace(/\n+$/,"")}),render:(e,t,r)=>d("pre",{key:r.key},d("code",n({},e.attrs,{className:e.lang?`lang-${e.lang}`:""}),e.text))},4:{match:Ue(m),order:0,parse:e=>({attrs:q(e[3]||""),lang:e[2]||void 0,text:e[4],type:"3"})},5:{match:Ie(y),order:3,parse:e=>({text:e[2]}),render:(e,n,t)=>d("code",{key:t.key},e.text)},6:{match:Ue(b),order:0,parse:e=>(V.push({footnote:e[2],identifier:e[1]}),{}),render:Ge},7:{match:Me(v),order:1,parse:e=>({target:`#${r.slugify(e[1])}`,text:e[1]}),render:(e,n,t)=>d("a",{key:t.key,href:Ne(e.target)},d("sup",{key:t.key},e.text))},8:{match:Me(E),order:1,parse:e=>({completed:"x"===e[1].toLowerCase()}),render:(e,n,t)=>d("input",{checked:e.completed,key:t.key,readOnly:!0,type:"checkbox"})},9:{match:Ue(r.enforceAtxHeadings?C:S),order:1,parse:(e,n,t)=>({children:De(n,e[2],t),id:r.slugify(e[2]),level:e[1].length}),render:(e,n,t)=>d(`h${e.level}`,{id:e.id,key:t.key},n(e.children,t))},10:{match:Ue(A),order:0,parse:(e,n,t)=>({children:De(n,e[1],t),level:"="===e[2]?1:2,type:"9"})},11:{match:je(O),order:1,parse(e,n,t){const[,r]=e[3].match(le),i=new RegExp(`^${r}`,"gm"),l=e[3].replace(i,""),o=(a=l,Ae.some(e=>e.test(a))?_e:De);var a;const s=e[1].toLowerCase(),d=-1!==c.indexOf(s),u={attrs:q(e[2]),noInnerParse:d,tag:(d?s:e[1]).trim()};return t.inAnchor=t.inAnchor||"a"===s,d?u.text=e[3]:u.children=o(n,l,t),t.inAnchor=!1,u},render:(e,t,r)=>d(e.tag,n({key:r.key},e.attrs),e.text||t(e.children,r))},13:{match:je(z),order:1,parse:e=>({attrs:q(e[2]||""),tag:e[1].trim()}),render:(e,t,r)=>d(e.tag,n({},e.attrs,{key:r.key}))},12:{match:je(L),order:1,parse:()=>({}),render:Ge},14:{match:Ie(Se),order:1,parse:e=>({alt:e[1],target:He(e[2]),title:e[3]}),render:(e,n,t)=>d("img",{key:t.key,alt:e.alt||void 0,title:e.title||void 0,src:Ne(e.target)})},15:{match:Me(Ee),order:3,parse:(e,n,t)=>({children:Pe(n,e[1],t),target:He(e[2]),title:e[3]}),render:(e,n,t)=>d("a",{key:t.key,href:Ne(e.target),title:e.title},n(e.children,t))},16:{match:Me(j),order:0,parse:e=>({children:[{text:e[1],type:"27"}],target:e[1],type:"15"})},17:{match:(e,n)=>n.inAnchor?null:Me(I)(e,n),order:0,parse:e=>({children:[{text:e[1],type:"27"}],target:e[1],title:void 0,type:"15"})},18:{match:Me(U),order:0,parse(e){let n=e[1],t=e[1];return s.test(t)||(t="mailto:"+t),{children:[{text:n.replace("mailto:",""),type:"27"}],target:t,type:"15"}}},20:we(d,1),33:we(d,2),19:{match:Ue(k),order:3,parse:We,render:()=>"\n"},21:{match:Be,order:3,parse:Fe,render:(e,n,t)=>d("p",{key:t.key},n(e.children,t))},22:{match:Me(H),order:0,parse:e=>(X[e[1]]={target:e[2],title:e[4]},{}),render:Ge},23:{match:Ie(D),order:0,parse:e=>({alt:e[1]||void 0,ref:e[2]}),render:(e,n,t)=>X[e.ref]?d("img",{key:t.key,alt:e.alt,src:Ne(X[e.ref].target),title:X[e.ref].title}):null},24:{match:Me(P),order:0,parse:(e,n,t)=>({children:n(e[1],t),fallbackChildren:n(e[0].replace(_,"\\$1"),t),ref:e[2]}),render:(e,n,t)=>X[e.ref]?d("a",{key:t.key,href:Ne(X[e.ref].target),title:X[e.ref].title},n(e.children,t)):d("span",{key:t.key},n(e.fallbackChildren,t))},25:{match:Ue(N),order:1,parse:Re,render:(e,n,t)=>d("table",{key:t.key},d("thead",null,d("tr",null,e.header.map(function(r,i){return d("th",{key:i,style:ze(e,i)},n(r,t))}))),d("tbody",null,e.cells.map(function(r,i){return d("tr",{key:i},r.map(function(r,i){return d("td",{key:i,style:ze(e,i)},n(r,t))}))})))},26:{match:function(e,n){return n.inTable?(n.inline=!0,G.exec(e)):null},order:1,parse:function(){return{type:"26"}},render:()=>" | "},27:{match:je(re),order:4,parse:e=>({text:e[0].replace(T,(e,n)=>r.namedCodesToUnicode[n]?r.namedCodesToUnicode[n]:e)}),render:e=>e.text},28:{match:Ie(K),order:2,parse:(e,n,t)=>({children:n(e[2],t)}),render:(e,n,t)=>d("strong",{key:t.key},n(e.children,t))},29:{match:Ie(Y),order:3,parse:(e,n,t)=>({children:n(e[2],t)}),render:(e,n,t)=>d("em",{key:t.key},n(e.children,t))},30:{match:Ie(te),order:1,parse:e=>({text:e[1],type:"27"})},31:{match:Ie(ee),order:3,parse:Fe,render:(e,n,t)=>d("mark",{key:t.key},n(e.children,t))},32:{match:Ie(ne),order:3,parse:Fe,render:(e,n,t)=>d("del",{key:t.key},n(e.children,t))}};!0===r.disableParsingRawHTML&&(delete Q[11],delete Q[13]);const J=function(e){let n=Object.keys(e);function t(r,i){let l=[],o="";for(;r;){let c=0;for(;c<n.length;){const a=n[c],s=e[a],d=s.match(r,i,o);if(d){const e=d[0];r=r.substring(e.length);const n=s.parse(d,t,i);null==n.type&&(n.type=a),l.push(n),o=e;break}c++}}return l}return n.sort(function(n,t){let r=e[n].order,i=e[t].order;return r!==i?r-i:n<t?-1:1}),function(e,n){return t(function(e){return e.replace(x,"\n").replace($,"").replace(W," ")}(e),n)}}(Q),oe=(ce=function(e,n){return function(t,r,i){const l=e[t.type].render;return n?n(()=>l(t,r,i),t,r,i):l(t,r,i)}}(Q,r.renderRule),function e(n,t={}){if(Array.isArray(n)){const r=t.key,i=[];let l=!1;for(let r=0;r<n.length;r++){t.key=r;const o=e(n[r],t),c="string"==typeof o;c&&l?i[i.length-1]+=o:null!==o&&i.push(o),l=c}return t.key=r,i}return ce(n,e,t)});var ce;const ae=Z(t);return V.length?d("div",null,ae,d("footer",{key:"footer"},V.map(function(e){return d("div",{id:r.slugify(e.identifier),key:e.identifier},e.identifier,oe(J(e.footnote,{inline:!0})))}))):ae}export default n=>{let{children:r="",options:i}=n,l=function(e,n){if(null==e)return{};var t,r,i={},l=Object.keys(e);for(r=0;r<l.length;r++)n.indexOf(t=l[r])>=0||(i[t]=e[t]);return i}(n,t);return e.cloneElement(Ve(r,i),l)};export{r as RuleType,Ve as compiler,Oe as slugify};
|
|
1
|
+
import*as e from"react";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}const n=["children","options"],r={blockQuote:"0",breakLine:"1",breakThematic:"2",codeBlock:"3",codeFenced:"4",codeInline:"5",footnote:"6",footnoteReference:"7",gfmTask:"8",heading:"9",headingSetext:"10",htmlBlock:"11",htmlComment:"12",htmlSelfClosing:"13",image:"14",link:"15",linkAngleBraceStyleDetector:"16",linkBareUrlDetector:"17",linkMailtoDetector:"18",newlineCoalescer:"19",orderedList:"20",paragraph:"21",ref:"22",refImage:"23",refLink:"24",table:"25",tableSeparator:"26",text:"27",textBolded:"28",textEmphasized:"29",textEscaped:"30",textMarked:"31",textStrikethroughed:"32",unorderedList:"33"};var i;!function(e){e[e.MAX=0]="MAX",e[e.HIGH=1]="HIGH",e[e.MED=2]="MED",e[e.LOW=3]="LOW",e[e.MIN=4]="MIN"}(i||(i={}));const l=["allowFullScreen","allowTransparency","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","charSet","className","classId","colSpan","contentEditable","contextMenu","crossOrigin","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","hrefLang","inputMode","keyParams","keyType","marginHeight","marginWidth","maxLength","mediaGroup","minLength","noValidate","radioGroup","readOnly","rowSpan","spellCheck","srcDoc","srcLang","srcSet","tabIndex","useMap"].reduce((e,t)=>(e[t.toLowerCase()]=t,e),{for:"htmlFor"}),a={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},o=["style","script"],c=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,s=/mailto:/i,d=/\n{2,}$/,u=/^(\s*>[\s\S]*?)(?=\n{2,})/,p=/^ *> ?/gm,f=/^ {2,}\n/,h=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,m=/^\s*(`{3,}|~{3,}) *(\S+)?([^\n]*?)?\n([\s\S]+?)\s*\1 *(?:\n *)*\n?/,g=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,y=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,k=/^(?:\n *)*\n/,x=/\r\n?/g,b=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,v=/^\[\^([^\]]+)]/,S=/\f/g,E=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,$=/^\s*?\[(x|\s)\]/,w=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,C=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,z=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,L=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,A=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,T=/^<!--[\s\S]*?(?:-->)/,O=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,B=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,M=/^\{.*\}$/,R=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,I=/^<([^ >]+@[^ >]+)>/,U=/^<([^ >]+:\/[^ >]+)>/,D=/-([a-z])?/gi,j=/^(.*\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/,N=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,H=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,F=/^\[([^\]]*)\] ?\[([^\]]*)\]/,P=/(\[|\])/g,_=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,W=/\t/g,G=/(^ *\||\| *$)/g,Z=/^ *:-+: *$/,q=/^ *:-+ *$/,Q=/^ *-+: *$/,V="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~~.*?~~|==.*?==|.|\\n)*?)",X=new RegExp(`^([*_])\\1${V}\\1\\1(?!\\1)`),J=new RegExp(`^([*_])${V}\\1(?!\\1|\\w)`),K=new RegExp(`^==${V}==`),Y=new RegExp(`^~~${V}~~`),ee=/^\\([^0-9A-Za-z\s])/,te=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&#;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,ne=/^\n+/,re=/^([ \t]*)/,ie=/\\([^\\])/g,le=/ *\n+$/,ae=/(?:^|\n)( *)$/,oe="(?:\\d+\\.)",ce="(?:[*+-])";function se(e){return"( *)("+(1===e?oe:ce)+") +"}const de=se(1),ue=se(2);function pe(e){return new RegExp("^"+(1===e?de:ue))}const fe=pe(1),he=pe(2);function me(e){return new RegExp("^"+(1===e?de:ue)+"[^\\n]*(?:\\n(?!\\1"+(1===e?oe:ce)+" )[^\\n]*)*(\\n|$)","gm")}const ge=me(1),ye=me(2);function ke(e){const t=1===e?oe:ce;return new RegExp("^( *)("+t+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+t+" (?!"+t+" ))\\n*|\\s*\\n*$)")}const xe=ke(1),be=ke(2);function ve(e,t){const n=1===t,i=n?xe:be,l=n?ge:ye,a=n?fe:he;return{match(e,t,n){const r=ae.exec(n);return r&&(t.list||!t.inline&&!t.simple)?i.exec(e=r[1]+e):null},order:1,parse(e,t,r){const i=n?+e[2]:void 0,o=e[0].replace(d,"\n").match(l);let c=!1;return{items:o.map(function(e,n){const i=a.exec(e)[0].length,l=new RegExp("^ {1,"+i+"}","gm"),s=e.replace(l,"").replace(a,""),d=n===o.length-1,u=-1!==s.indexOf("\n\n")||d&&c;c=u;const p=r.inline,f=r.list;let h;r.list=!0,u?(r.inline=!1,h=s.replace(le,"\n\n")):(r.inline=!0,h=s.replace(le,""));const m=t(h,r);return r.inline=p,r.list=f,m}),ordered:n,start:i}},render:(t,n,i)=>e(t.ordered?"ol":"ul",{key:i.key,start:t.type===r.orderedList?t.start:void 0},t.items.map(function(t,r){return e("li",{key:r},n(t,i))}))}}const Se=new RegExp("^\\[((?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*)\\]\\(\\s*<?((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),Ee=/^!\[(.*?)\]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,$e=[u,m,g,w,z,C,T,j,ge,xe,ye,be],we=[...$e,/^[^\n]+(?: \n|\n{2,})/,L,B];function Ce(e){return e.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function ze(e){return Q.test(e)?"right":Z.test(e)?"center":q.test(e)?"left":null}function Le(e,t,n,i){const l=n.inTable;n.inTable=!0;let a=e.trim().split(/( *(?:`[^`]*`|<.*?>.*?<\/.*?>(?!<\/.*?>)|\\\||\|) *)/).reduce((e,l)=>("|"===l.trim()?e.push(i?{type:r.tableSeparator}:{type:r.text,text:l}):""!==l&&e.push.apply(e,t(l,n)),e),[]);n.inTable=l;let o=[[]];return a.forEach(function(e,t){e.type===r.tableSeparator?0!==t&&t!==a.length-1&&o.push([]):(e.type!==r.text||null!=a[t+1]&&a[t+1].type!==r.tableSeparator||(e.text=e.text.trimEnd()),o[o.length-1].push(e))}),o}function Ae(e,t,n){n.inline=!0;const i=e[2]?e[2].replace(G,"").split("|").map(ze):[],l=e[3]?function(e,t,n){return e.trim().split("\n").map(function(e){return Le(e,t,n,!0)})}(e[3],t,n):[],a=Le(e[1],t,n,!!l.length);return n.inline=!1,l.length?{align:i,cells:l,header:a,type:r.table}:{children:a,type:r.paragraph}}function Te(e,t){return null==e.align[t]?{}:{textAlign:e.align[t]}}function Oe(e){return function(t,n){return n.inline?e.exec(t):null}}function Be(e){return function(t,n){return n.inline||n.simple?e.exec(t):null}}function Me(e){return function(t,n){return n.inline||n.simple?null:e.exec(t)}}function Re(e){return function(t){return e.exec(t)}}function Ie(e,t,n){if(t.inline||t.simple)return null;if(n&&!n.endsWith("\n"))return null;let r="";e.split("\n").every(e=>!$e.some(t=>t.test(e))&&(r+=e+"\n",e.trim()));const i=r.trimEnd();return""==i?null:[r,i]}function Ue(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data(?!:image)):/i))return null}catch(e){return null}return e}function De(e){return e.replace(ie,"$1")}function je(e,t,n){const r=n.inline||!1,i=n.simple||!1;n.inline=!0,n.simple=!0;const l=e(t,n);return n.inline=r,n.simple=i,l}function Ne(e,t,n){const r=n.inline||!1,i=n.simple||!1;n.inline=!1,n.simple=!0;const l=e(t,n);return n.inline=r,n.simple=i,l}function He(e,t,n){const r=n.inline||!1;n.inline=!1;const i=e(t,n);return n.inline=r,i}const Fe=(e,t,n)=>({children:je(t,e[1],n)});function Pe(){return{}}function _e(){return null}function We(...e){return e.filter(Boolean).join(" ")}function Ge(e,t,n){let r=e;const i=t.split(".");for(;i.length&&(r=r[i[0]],void 0!==r);)i.shift();return r||n}function Ze(n="",i={}){function d(e,n,...r){const l=Ge(i.overrides,`${e}.props`,{});return i.createElement(function(e,t){const n=Ge(t,e);return n?"function"==typeof n||"object"==typeof n&&"render"in n?n:Ge(t,`${e}.component`,e):e}(e,i.overrides),t({},n,l,{className:We(null==n?void 0:n.className,l.className)||void 0}),...r)}function G(t){t=t.replace(E,"");let n=!1;i.forceInline?n=!0:i.forceBlock||(n=!1===_.test(t));const r=le(ie(n?t:`${t.trimEnd().replace(ne,"")}\n\n`,{inline:n}));for(;"string"==typeof r[r.length-1]&&!r[r.length-1].trim();)r.pop();if(null===i.wrapper)return r;const l=i.wrapper||(n?"span":"div");let a;if(r.length>1||i.forceWrapper)a=r;else{if(1===r.length)return a=r[0],"string"==typeof a?d("span",{key:"outer"},a):a;a=null}return e.createElement(l,{key:"outer"},a)}function Z(t,n){const r=n.match(c);return r?r.reduce(function(n,r,a){const o=r.indexOf("=");if(-1!==o){const c=function(e){return-1!==e.indexOf("-")&&null===e.match(O)&&(e=e.replace(D,function(e,t){return t.toUpperCase()})),e}(r.slice(0,o)).trim(),s=function(e){const t=e[0];return('"'===t||"'"===t)&&e.length>=2&&e[e.length-1]===t?e.slice(1,-1):e}(r.slice(o+1).trim()),d=l[c]||c,u=n[d]=function(e,t,n,r){return"style"===t?n.split(/;\s?/).reduce(function(e,t){const n=t.slice(0,t.indexOf(":"));return e[n.trim().replace(/(-[a-z])/g,e=>e[1].toUpperCase())]=t.slice(n.length+1).trim(),e},{}):"href"===t||"src"===t?r(n,e,t):(n.match(M)&&(n=n.slice(1,n.length-1)),"true"===n||"false"!==n&&n)}(t,c,s,i.sanitizer);"string"==typeof u&&(L.test(u)||B.test(u))&&(n[d]=e.cloneElement(G(u.trim()),{key:a}))}else"style"!==r&&(n[l[r]||r]=!0);return n},{}):null}i.overrides=i.overrides||{},i.sanitizer=i.sanitizer||Ue,i.slugify=i.slugify||Ce,i.namedCodesToUnicode=i.namedCodesToUnicode?t({},a,i.namedCodesToUnicode):a,i.createElement=i.createElement||e.createElement;const q=[],Q={},V={[r.blockQuote]:{match:Me(u),order:1,parse:(e,t,n)=>({children:t(e[0].replace(p,""),n)}),render:(e,t,n)=>d("blockquote",{key:n.key},t(e.children,n))},[r.breakLine]:{match:Re(f),order:1,parse:Pe,render:(e,t,n)=>d("br",{key:n.key})},[r.breakThematic]:{match:Me(h),order:1,parse:Pe,render:(e,t,n)=>d("hr",{key:n.key})},[r.codeBlock]:{match:Me(g),order:0,parse:e=>({lang:void 0,text:e[0].replace(/^ {4}/gm,"").replace(/\n+$/,"")}),render:(e,n,r)=>d("pre",{key:r.key},d("code",t({},e.attrs,{className:e.lang?`lang-${e.lang}`:""}),e.text))},[r.codeFenced]:{match:Me(m),order:0,parse:e=>({attrs:Z("code",e[3]||""),lang:e[2]||void 0,text:e[4],type:r.codeBlock})},[r.codeInline]:{match:Be(y),order:3,parse:e=>({text:e[2]}),render:(e,t,n)=>d("code",{key:n.key},e.text)},[r.footnote]:{match:Me(b),order:0,parse:e=>(q.push({footnote:e[2],identifier:e[1]}),{}),render:_e},[r.footnoteReference]:{match:Oe(v),order:1,parse:e=>({target:`#${i.slugify(e[1],Ce)}`,text:e[1]}),render:(e,t,n)=>d("a",{key:n.key,href:i.sanitizer(e.target,"a","href")},d("sup",{key:n.key},e.text))},[r.gfmTask]:{match:Oe($),order:1,parse:e=>({completed:"x"===e[1].toLowerCase()}),render:(e,t,n)=>d("input",{checked:e.completed,key:n.key,readOnly:!0,type:"checkbox"})},[r.heading]:{match:Me(i.enforceAtxHeadings?C:w),order:1,parse:(e,t,n)=>({children:je(t,e[2],n),id:i.slugify(e[2],Ce),level:e[1].length}),render:(e,t,n)=>d(`h${e.level}`,{id:e.id,key:n.key},t(e.children,n))},[r.headingSetext]:{match:Me(z),order:0,parse:(e,t,n)=>({children:je(t,e[1],n),level:"="===e[2]?1:2,type:r.heading})},[r.htmlBlock]:{match:Re(L),order:1,parse(e,t,n){const[,r]=e[3].match(re),i=new RegExp(`^${r}`,"gm"),l=e[3].replace(i,""),a=(c=l,we.some(e=>e.test(c))?He:je);var c;const s=e[1].toLowerCase(),d=-1!==o.indexOf(s),u=(d?s:e[1]).trim(),p={attrs:Z(u,e[2]),noInnerParse:d,tag:u};return n.inAnchor=n.inAnchor||"a"===s,d?p.text=e[3]:p.children=a(t,l,n),n.inAnchor=!1,p},render:(e,n,r)=>d(e.tag,t({key:r.key},e.attrs),e.text||n(e.children,r))},[r.htmlSelfClosing]:{match:Re(B),order:1,parse(e){const t=e[1].trim();return{attrs:Z(t,e[2]||""),tag:t}},render:(e,n,r)=>d(e.tag,t({},e.attrs,{key:r.key}))},[r.htmlComment]:{match:Re(T),order:1,parse:()=>({}),render:_e},[r.image]:{match:Be(Ee),order:1,parse:e=>({alt:e[1],target:De(e[2]),title:e[3]}),render:(e,t,n)=>d("img",{key:n.key,alt:e.alt||void 0,title:e.title||void 0,src:i.sanitizer(e.target,"img","src")})},[r.link]:{match:Oe(Se),order:3,parse:(e,t,n)=>({children:Ne(t,e[1],n),target:De(e[2]),title:e[3]}),render:(e,t,n)=>d("a",{key:n.key,href:i.sanitizer(e.target,"a","href"),title:e.title},t(e.children,n))},[r.linkAngleBraceStyleDetector]:{match:Oe(U),order:0,parse:e=>({children:[{text:e[1],type:r.text}],target:e[1],type:r.link})},[r.linkBareUrlDetector]:{match:(e,t)=>t.inAnchor?null:Oe(R)(e,t),order:0,parse:e=>({children:[{text:e[1],type:r.text}],target:e[1],title:void 0,type:r.link})},[r.linkMailtoDetector]:{match:Oe(I),order:0,parse(e){let t=e[1],n=e[1];return s.test(n)||(n="mailto:"+n),{children:[{text:t.replace("mailto:",""),type:r.text}],target:n,type:r.link}}},[r.orderedList]:ve(d,1),[r.unorderedList]:ve(d,2),[r.newlineCoalescer]:{match:Me(k),order:3,parse:Pe,render:()=>"\n"},[r.paragraph]:{match:Ie,order:3,parse:Fe,render:(e,t,n)=>d("p",{key:n.key},t(e.children,n))},[r.ref]:{match:Oe(N),order:0,parse:e=>(Q[e[1]]={target:e[2],title:e[4]},{}),render:_e},[r.refImage]:{match:Be(H),order:0,parse:e=>({alt:e[1]||void 0,ref:e[2]}),render:(e,t,n)=>Q[e.ref]?d("img",{key:n.key,alt:e.alt,src:i.sanitizer(Q[e.ref].target,"img","src"),title:Q[e.ref].title}):null},[r.refLink]:{match:Oe(F),order:0,parse:(e,t,n)=>({children:t(e[1],n),fallbackChildren:t(e[0].replace(P,"\\$1"),n),ref:e[2]}),render:(e,t,n)=>Q[e.ref]?d("a",{key:n.key,href:i.sanitizer(Q[e.ref].target,"a","href"),title:Q[e.ref].title},t(e.children,n)):d("span",{key:n.key},t(e.fallbackChildren,n))},[r.table]:{match:Me(j),order:1,parse:Ae,render(e,t,n){const r=e;return d("table",{key:n.key},d("thead",null,d("tr",null,r.header.map(function(e,i){return d("th",{key:i,style:Te(r,i)},t(e,n))}))),d("tbody",null,r.cells.map(function(e,i){return d("tr",{key:i},e.map(function(e,i){return d("td",{key:i,style:Te(r,i)},t(e,n))}))})))}},[r.text]:{match:Re(te),order:4,parse:e=>({text:e[0].replace(A,(e,t)=>i.namedCodesToUnicode[t]?i.namedCodesToUnicode[t]:e)}),render:e=>e.text},[r.textBolded]:{match:Be(X),order:2,parse:(e,t,n)=>({children:t(e[2],n)}),render:(e,t,n)=>d("strong",{key:n.key},t(e.children,n))},[r.textEmphasized]:{match:Be(J),order:3,parse:(e,t,n)=>({children:t(e[2],n)}),render:(e,t,n)=>d("em",{key:n.key},t(e.children,n))},[r.textEscaped]:{match:Be(ee),order:1,parse:e=>({text:e[1],type:r.text})},[r.textMarked]:{match:Be(K),order:3,parse:Fe,render:(e,t,n)=>d("mark",{key:n.key},t(e.children,n))},[r.textStrikethroughed]:{match:Be(Y),order:3,parse:Fe,render:(e,t,n)=>d("del",{key:n.key},t(e.children,n))}};!0===i.disableParsingRawHTML&&(delete V[r.htmlBlock],delete V[r.htmlSelfClosing]);const ie=function(e){let t=Object.keys(e);function n(r,i){let l=[],a="";for(;r;){let o=0;for(;o<t.length;){const c=t[o],s=e[c],d=s.match(r,i,a);if(d){const e=d[0];r=r.substring(e.length);const t=s.parse(d,n,i);null==t.type&&(t.type=c),l.push(t),a=e;break}o++}}return l}return t.sort(function(t,n){let r=e[t].order,i=e[n].order;return r!==i?r-i:t<n?-1:1}),function(e,t){return n(function(e){return e.replace(x,"\n").replace(S,"").replace(W," ")}(e),t)}}(V),le=(ae=function(e,t){return function(n,r,i){const l=e[n.type].render;return t?t(()=>l(n,r,i),n,r,i):l(n,r,i)}}(V,i.renderRule),function e(t,n={}){if(Array.isArray(t)){const r=n.key,i=[];let l=!1;for(let r=0;r<t.length;r++){n.key=r;const a=e(t[r],n),o="string"==typeof a;o&&l?i[i.length-1]+=a:null!==a&&i.push(a),l=o}return n.key=r,i}return ae(t,e,n)});var ae;const oe=G(n);return q.length?d("div",null,oe,d("footer",{key:"footer"},q.map(function(e){return d("div",{id:i.slugify(e.identifier,Ce),key:e.identifier},e.identifier,le(ie(e.footnote,{inline:!0})))}))):oe}export default t=>{let{children:r="",options:i}=t,l=function(e,t){if(null==e)return{};var n,r,i={},l=Object.keys(e);for(r=0;r<l.length;r++)t.indexOf(n=l[r])>=0||(i[n]=e[n]);return i}(t,n);return e.cloneElement(Ze(r,i),l)};export{r as RuleType,Ze as compiler,Ue as sanitizer,Ce as slugify};
|
|
2
2
|
//# sourceMappingURL=index.modern.js.map
|