@readme/markdown 13.4.0 → 13.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/dist/lib/mdast-util/empty-task-list-item/index.d.ts +2 -0
- package/dist/lib/micromark/loose-html-entities/index.d.ts +9 -0
- package/dist/lib/micromark/loose-html-entities/syntax.d.ts +9 -0
- package/dist/main.js +609 -133
- package/dist/main.node.js +609 -133
- package/dist/main.node.js.map +1 -1
- package/dist/processor/compile/list-item.d.ts +12 -0
- package/dist/processor/plugin/flatten-table-cell-paragraphs.d.ts +13 -0
- package/package.json +5 -2
package/dist/main.js
CHANGED
|
@@ -34347,21 +34347,8 @@ function syntax_tokenizeIndent(effects, ok, nok) {
|
|
|
34347
34347
|
|
|
34348
34348
|
;// ./node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
|
|
34349
34349
|
/**
|
|
34350
|
-
* @
|
|
34351
|
-
* @
|
|
34352
|
-
* @typedef {import('micromark-util-types').Resolver} Resolver
|
|
34353
|
-
* @typedef {import('micromark-util-types').State} State
|
|
34354
|
-
* @typedef {import('micromark-util-types').Token} Token
|
|
34355
|
-
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
|
34356
|
-
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
|
34357
|
-
*
|
|
34358
|
-
* @typedef Options
|
|
34359
|
-
* Configuration (optional).
|
|
34360
|
-
* @property {boolean | null | undefined} [singleTilde=true]
|
|
34361
|
-
* Whether to support strikethrough with a single tilde (default: `true`).
|
|
34362
|
-
*
|
|
34363
|
-
* Single tildes work on github.com, but are technically prohibited by the
|
|
34364
|
-
* GFM spec.
|
|
34350
|
+
* @import {Options} from 'micromark-extension-gfm-strikethrough'
|
|
34351
|
+
* @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
34365
34352
|
*/
|
|
34366
34353
|
|
|
34367
34354
|
|
|
@@ -34377,14 +34364,15 @@ function syntax_tokenizeIndent(effects, ok, nok) {
|
|
|
34377
34364
|
* enable GFM strikethrough syntax.
|
|
34378
34365
|
*/
|
|
34379
34366
|
function gfmStrikethrough(options) {
|
|
34380
|
-
const options_ = options || {}
|
|
34381
|
-
let single = options_.singleTilde
|
|
34367
|
+
const options_ = options || {};
|
|
34368
|
+
let single = options_.singleTilde;
|
|
34382
34369
|
const tokenizer = {
|
|
34370
|
+
name: 'strikethrough',
|
|
34383
34371
|
tokenize: tokenizeStrikethrough,
|
|
34384
34372
|
resolveAll: resolveAllStrikethrough
|
|
34385
|
-
}
|
|
34373
|
+
};
|
|
34386
34374
|
if (single === null || single === undefined) {
|
|
34387
|
-
single = true
|
|
34375
|
+
single = true;
|
|
34388
34376
|
}
|
|
34389
34377
|
return {
|
|
34390
34378
|
text: {
|
|
@@ -34396,7 +34384,7 @@ function gfmStrikethrough(options) {
|
|
|
34396
34384
|
attentionMarkers: {
|
|
34397
34385
|
null: [126]
|
|
34398
34386
|
}
|
|
34399
|
-
}
|
|
34387
|
+
};
|
|
34400
34388
|
|
|
34401
34389
|
/**
|
|
34402
34390
|
* Take events and resolve strikethrough.
|
|
@@ -34404,86 +34392,62 @@ function gfmStrikethrough(options) {
|
|
|
34404
34392
|
* @type {Resolver}
|
|
34405
34393
|
*/
|
|
34406
34394
|
function resolveAllStrikethrough(events, context) {
|
|
34407
|
-
let index = -1
|
|
34395
|
+
let index = -1;
|
|
34408
34396
|
|
|
34409
34397
|
// Walk through all events.
|
|
34410
34398
|
while (++index < events.length) {
|
|
34411
34399
|
// Find a token that can close.
|
|
34412
|
-
if (
|
|
34413
|
-
|
|
34414
|
-
events[index][1].type === 'strikethroughSequenceTemporary' &&
|
|
34415
|
-
events[index][1]._close
|
|
34416
|
-
) {
|
|
34417
|
-
let open = index
|
|
34400
|
+
if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {
|
|
34401
|
+
let open = index;
|
|
34418
34402
|
|
|
34419
34403
|
// Now walk back to find an opener.
|
|
34420
34404
|
while (open--) {
|
|
34421
34405
|
// Find a token that can open the closer.
|
|
34422
|
-
if (
|
|
34423
|
-
|
|
34424
|
-
|
|
34425
|
-
events[
|
|
34426
|
-
|
|
34427
|
-
events[index][1].end.offset - events[index][1].start.offset ===
|
|
34428
|
-
events[open][1].end.offset - events[open][1].start.offset
|
|
34429
|
-
) {
|
|
34430
|
-
events[index][1].type = 'strikethroughSequence'
|
|
34431
|
-
events[open][1].type = 'strikethroughSequence'
|
|
34406
|
+
if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&
|
|
34407
|
+
// If the sizes are the same:
|
|
34408
|
+
events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {
|
|
34409
|
+
events[index][1].type = 'strikethroughSequence';
|
|
34410
|
+
events[open][1].type = 'strikethroughSequence';
|
|
34432
34411
|
|
|
34433
34412
|
/** @type {Token} */
|
|
34434
34413
|
const strikethrough = {
|
|
34435
34414
|
type: 'strikethrough',
|
|
34436
34415
|
start: Object.assign({}, events[open][1].start),
|
|
34437
34416
|
end: Object.assign({}, events[index][1].end)
|
|
34438
|
-
}
|
|
34417
|
+
};
|
|
34439
34418
|
|
|
34440
34419
|
/** @type {Token} */
|
|
34441
34420
|
const text = {
|
|
34442
34421
|
type: 'strikethroughText',
|
|
34443
34422
|
start: Object.assign({}, events[open][1].end),
|
|
34444
34423
|
end: Object.assign({}, events[index][1].start)
|
|
34445
|
-
}
|
|
34424
|
+
};
|
|
34446
34425
|
|
|
34447
34426
|
// Opening.
|
|
34448
34427
|
/** @type {Array<Event>} */
|
|
34449
|
-
const nextEvents = [
|
|
34450
|
-
|
|
34451
|
-
['enter', events[open][1], context],
|
|
34452
|
-
['exit', events[open][1], context],
|
|
34453
|
-
['enter', text, context]
|
|
34454
|
-
]
|
|
34455
|
-
const insideSpan = context.parser.constructs.insideSpan.null
|
|
34428
|
+
const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];
|
|
34429
|
+
const insideSpan = context.parser.constructs.insideSpan.null;
|
|
34456
34430
|
if (insideSpan) {
|
|
34457
34431
|
// Between.
|
|
34458
|
-
splice(
|
|
34459
|
-
nextEvents,
|
|
34460
|
-
nextEvents.length,
|
|
34461
|
-
0,
|
|
34462
|
-
resolveAll(insideSpan, events.slice(open + 1, index), context)
|
|
34463
|
-
)
|
|
34432
|
+
splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));
|
|
34464
34433
|
}
|
|
34465
34434
|
|
|
34466
34435
|
// Closing.
|
|
34467
|
-
splice(nextEvents, nextEvents.length, 0, [
|
|
34468
|
-
|
|
34469
|
-
|
|
34470
|
-
|
|
34471
|
-
['exit', strikethrough, context]
|
|
34472
|
-
])
|
|
34473
|
-
splice(events, open - 1, index - open + 3, nextEvents)
|
|
34474
|
-
index = open + nextEvents.length - 2
|
|
34475
|
-
break
|
|
34436
|
+
splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);
|
|
34437
|
+
splice(events, open - 1, index - open + 3, nextEvents);
|
|
34438
|
+
index = open + nextEvents.length - 2;
|
|
34439
|
+
break;
|
|
34476
34440
|
}
|
|
34477
34441
|
}
|
|
34478
34442
|
}
|
|
34479
34443
|
}
|
|
34480
|
-
index = -1
|
|
34444
|
+
index = -1;
|
|
34481
34445
|
while (++index < events.length) {
|
|
34482
34446
|
if (events[index][1].type === 'strikethroughSequenceTemporary') {
|
|
34483
|
-
events[index][1].type =
|
|
34447
|
+
events[index][1].type = "data";
|
|
34484
34448
|
}
|
|
34485
34449
|
}
|
|
34486
|
-
return events
|
|
34450
|
+
return events;
|
|
34487
34451
|
}
|
|
34488
34452
|
|
|
34489
34453
|
/**
|
|
@@ -34491,43 +34455,39 @@ function gfmStrikethrough(options) {
|
|
|
34491
34455
|
* @type {Tokenizer}
|
|
34492
34456
|
*/
|
|
34493
34457
|
function tokenizeStrikethrough(effects, ok, nok) {
|
|
34494
|
-
const previous = this.previous
|
|
34495
|
-
const events = this.events
|
|
34496
|
-
let size = 0
|
|
34497
|
-
return start
|
|
34458
|
+
const previous = this.previous;
|
|
34459
|
+
const events = this.events;
|
|
34460
|
+
let size = 0;
|
|
34461
|
+
return start;
|
|
34498
34462
|
|
|
34499
34463
|
/** @type {State} */
|
|
34500
34464
|
function start(code) {
|
|
34501
|
-
if (
|
|
34502
|
-
|
|
34503
|
-
events[events.length - 1][1].type !== 'characterEscape'
|
|
34504
|
-
) {
|
|
34505
|
-
return nok(code)
|
|
34465
|
+
if (previous === 126 && events[events.length - 1][1].type !== "characterEscape") {
|
|
34466
|
+
return nok(code);
|
|
34506
34467
|
}
|
|
34507
|
-
effects.enter('strikethroughSequenceTemporary')
|
|
34508
|
-
return more(code)
|
|
34468
|
+
effects.enter('strikethroughSequenceTemporary');
|
|
34469
|
+
return more(code);
|
|
34509
34470
|
}
|
|
34510
34471
|
|
|
34511
34472
|
/** @type {State} */
|
|
34512
34473
|
function more(code) {
|
|
34513
|
-
const before = classifyCharacter(previous)
|
|
34474
|
+
const before = classifyCharacter(previous);
|
|
34514
34475
|
if (code === 126) {
|
|
34515
34476
|
// If this is the third marker, exit.
|
|
34516
|
-
if (size > 1) return nok(code)
|
|
34517
|
-
effects.consume(code)
|
|
34518
|
-
size
|
|
34519
|
-
return more
|
|
34520
|
-
}
|
|
34521
|
-
if (size < 2 && !single) return nok(code)
|
|
34522
|
-
const token = effects.exit('strikethroughSequenceTemporary')
|
|
34523
|
-
const after = classifyCharacter(code)
|
|
34524
|
-
token._open = !after ||
|
|
34525
|
-
token._close = !before ||
|
|
34526
|
-
return ok(code)
|
|
34477
|
+
if (size > 1) return nok(code);
|
|
34478
|
+
effects.consume(code);
|
|
34479
|
+
size++;
|
|
34480
|
+
return more;
|
|
34481
|
+
}
|
|
34482
|
+
if (size < 2 && !single) return nok(code);
|
|
34483
|
+
const token = effects.exit('strikethroughSequenceTemporary');
|
|
34484
|
+
const after = classifyCharacter(code);
|
|
34485
|
+
token._open = !after || after === 2 && Boolean(before);
|
|
34486
|
+
token._close = !before || before === 2 && Boolean(after);
|
|
34487
|
+
return ok(code);
|
|
34527
34488
|
}
|
|
34528
34489
|
}
|
|
34529
34490
|
}
|
|
34530
|
-
|
|
34531
34491
|
;// ./node_modules/micromark-extension-gfm-table/lib/edit-map.js
|
|
34532
34492
|
/**
|
|
34533
34493
|
* @typedef {import('micromark-util-types').Event} Event
|
|
@@ -44027,7 +43987,7 @@ var EntityDecoderState;
|
|
|
44027
43987
|
EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex";
|
|
44028
43988
|
EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity";
|
|
44029
43989
|
})(EntityDecoderState || (EntityDecoderState = {}));
|
|
44030
|
-
var
|
|
43990
|
+
var decode_DecodingMode;
|
|
44031
43991
|
(function (DecodingMode) {
|
|
44032
43992
|
/** Entities in text nodes that can end with any character. */
|
|
44033
43993
|
DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy";
|
|
@@ -44035,7 +43995,7 @@ var DecodingMode;
|
|
|
44035
43995
|
DecodingMode[DecodingMode["Strict"] = 1] = "Strict";
|
|
44036
43996
|
/** Entities in attributes have limitations on ending characters. */
|
|
44037
43997
|
DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute";
|
|
44038
|
-
})(
|
|
43998
|
+
})(decode_DecodingMode || (decode_DecodingMode = {}));
|
|
44039
43999
|
/**
|
|
44040
44000
|
* Token decoder with support of writing partial entities.
|
|
44041
44001
|
*/
|
|
@@ -44074,7 +44034,7 @@ class EntityDecoder {
|
|
|
44074
44034
|
/** The number of characters that were consumed in excess. */
|
|
44075
44035
|
this.excess = 1;
|
|
44076
44036
|
/** The mode in which the decoder is operating. */
|
|
44077
|
-
this.decodeMode =
|
|
44037
|
+
this.decodeMode = decode_DecodingMode.Strict;
|
|
44078
44038
|
}
|
|
44079
44039
|
/** Resets the instance to make it reusable. */
|
|
44080
44040
|
startEntity(decodeMode) {
|
|
@@ -44223,7 +44183,7 @@ class EntityDecoder {
|
|
|
44223
44183
|
if (lastCp === CharCodes.SEMI) {
|
|
44224
44184
|
this.consumed += 1;
|
|
44225
44185
|
}
|
|
44226
|
-
else if (this.decodeMode ===
|
|
44186
|
+
else if (this.decodeMode === decode_DecodingMode.Strict) {
|
|
44227
44187
|
return 0;
|
|
44228
44188
|
}
|
|
44229
44189
|
this.emitCodePoint(replaceCodePoint(this.result), this.consumed);
|
|
@@ -44255,7 +44215,7 @@ class EntityDecoder {
|
|
|
44255
44215
|
if (this.treeIndex < 0) {
|
|
44256
44216
|
return this.result === 0 ||
|
|
44257
44217
|
// If we are parsing an attribute
|
|
44258
|
-
(this.decodeMode ===
|
|
44218
|
+
(this.decodeMode === decode_DecodingMode.Attribute &&
|
|
44259
44219
|
// We shouldn't have consumed any characters after the entity,
|
|
44260
44220
|
(valueLength === 0 ||
|
|
44261
44221
|
// And there should be no invalid characters.
|
|
@@ -44272,7 +44232,7 @@ class EntityDecoder {
|
|
|
44272
44232
|
return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
|
|
44273
44233
|
}
|
|
44274
44234
|
// If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.
|
|
44275
|
-
if (this.decodeMode !==
|
|
44235
|
+
if (this.decodeMode !== decode_DecodingMode.Strict) {
|
|
44276
44236
|
this.result = this.treeIndex;
|
|
44277
44237
|
this.consumed += this.excess;
|
|
44278
44238
|
this.excess = 0;
|
|
@@ -44327,7 +44287,7 @@ class EntityDecoder {
|
|
|
44327
44287
|
case EntityDecoderState.NamedEntity: {
|
|
44328
44288
|
// Emit a named entity if we have one.
|
|
44329
44289
|
return this.result !== 0 &&
|
|
44330
|
-
(this.decodeMode !==
|
|
44290
|
+
(this.decodeMode !== decode_DecodingMode.Attribute ||
|
|
44331
44291
|
this.result === this.treeIndex)
|
|
44332
44292
|
? this.emitNotTerminatedNamedEntity()
|
|
44333
44293
|
: 0;
|
|
@@ -44434,7 +44394,7 @@ const xmlDecoder = getDecoder(decode_data_xml);
|
|
|
44434
44394
|
* @param mode The decoding mode.
|
|
44435
44395
|
* @returns The decoded string.
|
|
44436
44396
|
*/
|
|
44437
|
-
function
|
|
44397
|
+
function decode_decodeHTML(str, mode = decode_DecodingMode.Legacy) {
|
|
44438
44398
|
return htmlDecoder(str, mode);
|
|
44439
44399
|
}
|
|
44440
44400
|
/**
|
|
@@ -44444,7 +44404,7 @@ function decodeHTML(str, mode = DecodingMode.Legacy) {
|
|
|
44444
44404
|
* @returns The decoded string.
|
|
44445
44405
|
*/
|
|
44446
44406
|
function decodeHTMLAttribute(str) {
|
|
44447
|
-
return htmlDecoder(str,
|
|
44407
|
+
return htmlDecoder(str, decode_DecodingMode.Attribute);
|
|
44448
44408
|
}
|
|
44449
44409
|
/**
|
|
44450
44410
|
* Decodes an HTML string, requiring all entities to be terminated by a semicolon.
|
|
@@ -44453,7 +44413,7 @@ function decodeHTMLAttribute(str) {
|
|
|
44453
44413
|
* @returns The decoded string.
|
|
44454
44414
|
*/
|
|
44455
44415
|
function decodeHTMLStrict(str) {
|
|
44456
|
-
return htmlDecoder(str,
|
|
44416
|
+
return htmlDecoder(str, decode_DecodingMode.Strict);
|
|
44457
44417
|
}
|
|
44458
44418
|
/**
|
|
44459
44419
|
* Decodes an XML string, requiring all entities to be terminated by a semicolon.
|
|
@@ -44461,8 +44421,8 @@ function decodeHTMLStrict(str) {
|
|
|
44461
44421
|
* @param str The string to decode.
|
|
44462
44422
|
* @returns The decoded string.
|
|
44463
44423
|
*/
|
|
44464
|
-
function
|
|
44465
|
-
return xmlDecoder(str,
|
|
44424
|
+
function decode_decodeXML(str) {
|
|
44425
|
+
return xmlDecoder(str, decode_DecodingMode.Strict);
|
|
44466
44426
|
}
|
|
44467
44427
|
//# sourceMappingURL=decode.js.map
|
|
44468
44428
|
;// ./node_modules/parse5/dist/common/html.js
|
|
@@ -52011,7 +51971,7 @@ function endTagInForeignContent(p, token) {
|
|
|
52011
51971
|
}
|
|
52012
51972
|
//# sourceMappingURL=index.js.map
|
|
52013
51973
|
;// ./node_modules/entities/lib/esm/escape.js
|
|
52014
|
-
const
|
|
51974
|
+
const escape_xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
|
|
52015
51975
|
const xmlCodeMap = new Map([
|
|
52016
51976
|
[34, """],
|
|
52017
51977
|
[38, "&"],
|
|
@@ -52020,7 +51980,7 @@ const xmlCodeMap = new Map([
|
|
|
52020
51980
|
[62, ">"],
|
|
52021
51981
|
]);
|
|
52022
51982
|
// For compatibility with node < 4, we wrap `codePointAt`
|
|
52023
|
-
const
|
|
51983
|
+
const escape_getCodePoint =
|
|
52024
51984
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
52025
51985
|
String.prototype.codePointAt != null
|
|
52026
51986
|
? (str, index) => str.codePointAt(index)
|
|
@@ -52038,11 +51998,11 @@ String.prototype.codePointAt != null
|
|
|
52038
51998
|
* If a character has no equivalent entity, a
|
|
52039
51999
|
* numeric hexadecimal reference (eg. `ü`) will be used.
|
|
52040
52000
|
*/
|
|
52041
|
-
function
|
|
52001
|
+
function escape_encodeXML(str) {
|
|
52042
52002
|
let ret = "";
|
|
52043
52003
|
let lastIdx = 0;
|
|
52044
52004
|
let match;
|
|
52045
|
-
while ((match =
|
|
52005
|
+
while ((match = escape_xmlReplacer.exec(str)) !== null) {
|
|
52046
52006
|
const i = match.index;
|
|
52047
52007
|
const char = str.charCodeAt(i);
|
|
52048
52008
|
const next = xmlCodeMap.get(char);
|
|
@@ -52051,9 +52011,9 @@ function encodeXML(str) {
|
|
|
52051
52011
|
lastIdx = i + 1;
|
|
52052
52012
|
}
|
|
52053
52013
|
else {
|
|
52054
|
-
ret += `${str.substring(lastIdx, i)}&#x${
|
|
52014
|
+
ret += `${str.substring(lastIdx, i)}&#x${escape_getCodePoint(str, i).toString(16)};`;
|
|
52055
52015
|
// Increase by 1 if we have a surrogate pair
|
|
52056
|
-
lastIdx =
|
|
52016
|
+
lastIdx = escape_xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);
|
|
52057
52017
|
}
|
|
52058
52018
|
}
|
|
52059
52019
|
return ret + str.substr(lastIdx);
|
|
@@ -52067,7 +52027,7 @@ function encodeXML(str) {
|
|
|
52067
52027
|
*
|
|
52068
52028
|
* @param data String to escape.
|
|
52069
52029
|
*/
|
|
52070
|
-
const escape_escape = (/* unused pure expression or super */ null && (
|
|
52030
|
+
const escape_escape = (/* unused pure expression or super */ null && (escape_encodeXML));
|
|
52071
52031
|
/**
|
|
52072
52032
|
* Creates a function that escapes all characters matched by the given regular
|
|
52073
52033
|
* expression using the given map of characters to escape to their entities.
|
|
@@ -52102,7 +52062,7 @@ function getEscaper(regex, map) {
|
|
|
52102
52062
|
*
|
|
52103
52063
|
* @param data String to escape.
|
|
52104
52064
|
*/
|
|
52105
|
-
const
|
|
52065
|
+
const escape_escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
|
|
52106
52066
|
/**
|
|
52107
52067
|
* Encodes all characters that have to be escaped in HTML attributes,
|
|
52108
52068
|
* following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
|
|
@@ -53359,7 +53319,7 @@ const divTransformer = () => tree => {
|
|
|
53359
53319
|
;// ./processor/transform/embeds.ts
|
|
53360
53320
|
|
|
53361
53321
|
|
|
53362
|
-
const isEmbed = (node) => 'title' in node && node.title === '@embed';
|
|
53322
|
+
const isEmbed = (node) => Boolean(node && 'title' in node && node.title === '@embed');
|
|
53363
53323
|
const embedTransformer = () => {
|
|
53364
53324
|
return (tree) => {
|
|
53365
53325
|
visit(tree, 'paragraph', (node, i, parent) => {
|
|
@@ -53367,7 +53327,7 @@ const embedTransformer = () => {
|
|
|
53367
53327
|
if (!isEmbed(child))
|
|
53368
53328
|
return;
|
|
53369
53329
|
const { url, title } = child;
|
|
53370
|
-
const label = child.children[0]
|
|
53330
|
+
const label = child.children[0]?.value;
|
|
53371
53331
|
const newNode = {
|
|
53372
53332
|
type: NodeTypes.embedBlock,
|
|
53373
53333
|
label,
|
|
@@ -70844,6 +70804,55 @@ const mdxToHast = () => tree => {
|
|
|
70844
70804
|
};
|
|
70845
70805
|
/* harmony default export */ const mdx_to_hast = (mdxToHast);
|
|
70846
70806
|
|
|
70807
|
+
;// ./lib/mdast-util/empty-task-list-item/index.ts
|
|
70808
|
+
/**
|
|
70809
|
+
* Normalizes list items that are written as only `[ ]` or `[x]` into GFM task
|
|
70810
|
+
* list items during parse, but only when at least one whitespace character
|
|
70811
|
+
* follows the closing bracket (`]`). This matches legacy behaviour for checkboxes
|
|
70812
|
+
*
|
|
70813
|
+
* The issue is `remark-gfm` does not actually classify these as task items when they have no content
|
|
70814
|
+
* after the checkbox, which leaves them as plain text (`"[ ]"`). So a custom extension is needed to
|
|
70815
|
+
* treat these as task items
|
|
70816
|
+
*/
|
|
70817
|
+
function exitListItemWithEmptyTaskListItem(token) {
|
|
70818
|
+
const node = this.stack[this.stack.length - 1];
|
|
70819
|
+
if (node &&
|
|
70820
|
+
node.type === 'listItem' &&
|
|
70821
|
+
typeof node.checked !== 'boolean') {
|
|
70822
|
+
const listItem = node;
|
|
70823
|
+
const head = listItem.children[0];
|
|
70824
|
+
if (head && head.type === 'paragraph' && head.children.length === 1) {
|
|
70825
|
+
const text = head.children[0];
|
|
70826
|
+
if (text.type === 'text') {
|
|
70827
|
+
const hasTrailingWhitespace = typeof head.position?.end.offset === 'number' &&
|
|
70828
|
+
typeof text.position?.end.offset === 'number' &&
|
|
70829
|
+
head.position.end.offset > text.position.end.offset;
|
|
70830
|
+
if (!hasTrailingWhitespace) {
|
|
70831
|
+
this.exit(token);
|
|
70832
|
+
return;
|
|
70833
|
+
}
|
|
70834
|
+
const value = text.value;
|
|
70835
|
+
if (value === '[ ]') {
|
|
70836
|
+
listItem.checked = false;
|
|
70837
|
+
head.children = [];
|
|
70838
|
+
}
|
|
70839
|
+
else if (value === '[x]' || value === '[X]') {
|
|
70840
|
+
listItem.checked = true;
|
|
70841
|
+
head.children = [];
|
|
70842
|
+
}
|
|
70843
|
+
}
|
|
70844
|
+
}
|
|
70845
|
+
}
|
|
70846
|
+
this.exit(token);
|
|
70847
|
+
}
|
|
70848
|
+
function emptyTaskListItemFromMarkdown() {
|
|
70849
|
+
return {
|
|
70850
|
+
exit: {
|
|
70851
|
+
listItem: exitListItemWithEmptyTaskListItem,
|
|
70852
|
+
},
|
|
70853
|
+
};
|
|
70854
|
+
}
|
|
70855
|
+
|
|
70847
70856
|
;// ./lib/mdast-util/legacy-variable/index.ts
|
|
70848
70857
|
|
|
70849
70858
|
const contextMap = new WeakMap();
|
|
@@ -71158,6 +71167,8 @@ function legacyVariable() {
|
|
|
71158
71167
|
|
|
71159
71168
|
|
|
71160
71169
|
|
|
71170
|
+
|
|
71171
|
+
|
|
71161
71172
|
const pascalCaseTagPattern = /^<([A-Z][A-Za-z0-9_]*)([^>]*?)(\/?)>([\s\S]*)?$/;
|
|
71162
71173
|
const tagAttributePattern = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*("[^"]*"|'[^']*'|[^\s"'>]+))?/g;
|
|
71163
71174
|
/**
|
|
@@ -71176,8 +71187,9 @@ const MAX_LOOKAHEAD = 30;
|
|
|
71176
71187
|
const EXCLUDED_TAGS = new Set(['HTMLBlock', 'Table', 'Glossary', 'Anchor']);
|
|
71177
71188
|
const inlineMdProcessor = unified()
|
|
71178
71189
|
.data('micromarkExtensions', [legacyVariable()])
|
|
71179
|
-
.data('fromMarkdownExtensions', [legacyVariableFromMarkdown()])
|
|
71180
|
-
.use(remarkParse)
|
|
71190
|
+
.data('fromMarkdownExtensions', [legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown()])
|
|
71191
|
+
.use(remarkParse)
|
|
71192
|
+
.use(remarkGfm);
|
|
71181
71193
|
const isClosingTag = (value, tag) => value.trim() === `</${tag}>`;
|
|
71182
71194
|
/**
|
|
71183
71195
|
* Parse markdown content into mdast children nodes.
|
|
@@ -92101,6 +92113,46 @@ ${reformatHTML(html)}
|
|
|
92101
92113
|
};
|
|
92102
92114
|
/* harmony default export */ const html_block = (htmlBlock);
|
|
92103
92115
|
|
|
92116
|
+
;// ./processor/compile/list-item.ts
|
|
92117
|
+
|
|
92118
|
+
// Matches '*', '-', '+', '1.', '2.', '3.', etc. followed by a newline or 1-3 spaces
|
|
92119
|
+
// to be replaced with the marker and a space like `- [ ]`
|
|
92120
|
+
const listMarkerRegex = /^(?:[*+-]|\d+\.)(?:([\r\n]| {1,3})|$)/;
|
|
92121
|
+
/**
|
|
92122
|
+
* List-item serializer intended for checklist items
|
|
92123
|
+
* Uses the default listItem handler for formatting, then patches the output to inject the checkbox and preserve empty items
|
|
92124
|
+
*
|
|
92125
|
+
* The current aim is to ensure checklist items that have no text after the checkbox are serialized
|
|
92126
|
+
* with their checkbox intact (for example, `- [ ]`) instead of dropping it
|
|
92127
|
+
* We can add more adjustments if needed
|
|
92128
|
+
*/
|
|
92129
|
+
const compile_list_item_listItem = (node, parent, state, info) => {
|
|
92130
|
+
const head = node.children[0];
|
|
92131
|
+
const isCheckbox = typeof node.checked === 'boolean' && head && head.type === 'paragraph';
|
|
92132
|
+
if (!isCheckbox) {
|
|
92133
|
+
return handle.listItem(node, parent, state, info);
|
|
92134
|
+
}
|
|
92135
|
+
const checkbox = `[${node.checked ? 'x' : ' '}] `;
|
|
92136
|
+
// `tracker` keeps current column/offset for downstream line wrapping/indent
|
|
92137
|
+
// We move it by checkbox length so wrapped lines align after `[ ] ` / `[x] `
|
|
92138
|
+
const tracker = state.createTracker(info);
|
|
92139
|
+
tracker.move(checkbox);
|
|
92140
|
+
// Initialize the checkbox item with the default listItem serializer as the source of truth for spacing,
|
|
92141
|
+
// indentation, ordered marker formatting, and wrapping behavior
|
|
92142
|
+
let value = handle.listItem(node, parent, state, {
|
|
92143
|
+
...info,
|
|
92144
|
+
...tracker.current(),
|
|
92145
|
+
});
|
|
92146
|
+
// Patch and inject checkbox after the list marker token
|
|
92147
|
+
value = value.replace(listMarkerRegex, (match, separator) => {
|
|
92148
|
+
const marker = match.trim();
|
|
92149
|
+
const actualSeparator = separator || ' ';
|
|
92150
|
+
return `${marker}${actualSeparator}${checkbox}`;
|
|
92151
|
+
});
|
|
92152
|
+
return value;
|
|
92153
|
+
};
|
|
92154
|
+
/* harmony default export */ const list_item = (compile_list_item_listItem);
|
|
92155
|
+
|
|
92104
92156
|
;// ./processor/compile/plain.ts
|
|
92105
92157
|
const plain_plain = (node) => node.value;
|
|
92106
92158
|
/* harmony default export */ const compile_plain = (plain_plain);
|
|
@@ -92119,6 +92171,7 @@ const variable = (node) => `{user.${node.data?.hProperties?.name || ''}}`;
|
|
|
92119
92171
|
|
|
92120
92172
|
|
|
92121
92173
|
|
|
92174
|
+
|
|
92122
92175
|
function compilers(mdxish = false) {
|
|
92123
92176
|
const data = this.data();
|
|
92124
92177
|
const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);
|
|
@@ -92136,6 +92189,7 @@ function compilers(mdxish = false) {
|
|
|
92136
92189
|
figure: compile_compatibility,
|
|
92137
92190
|
html: compile_compatibility,
|
|
92138
92191
|
i: compile_compatibility,
|
|
92192
|
+
...(mdxish && { listItem: list_item }),
|
|
92139
92193
|
plain: compile_plain,
|
|
92140
92194
|
yaml: compile_compatibility,
|
|
92141
92195
|
};
|
|
@@ -93667,6 +93721,76 @@ function remarkBreaks() {
|
|
|
93667
93721
|
}
|
|
93668
93722
|
}
|
|
93669
93723
|
|
|
93724
|
+
;// ./processor/plugin/flatten-table-cell-paragraphs.ts
|
|
93725
|
+
|
|
93726
|
+
/** List elements that cause margin issues when adjacent to paragraphs */
|
|
93727
|
+
const LIST_ELEMENTS = new Set(['ul', 'ol']);
|
|
93728
|
+
/**
|
|
93729
|
+
* Check if a child is a whitespace-only text node
|
|
93730
|
+
*/
|
|
93731
|
+
function isWhitespaceText(child) {
|
|
93732
|
+
return child.type === 'text' && !child.value.trim();
|
|
93733
|
+
}
|
|
93734
|
+
/**
|
|
93735
|
+
* Check if a child is an element with the given tag name
|
|
93736
|
+
*/
|
|
93737
|
+
function isElementWithTag(child, tags) {
|
|
93738
|
+
return child.type === 'element' && tags.has(child.tagName);
|
|
93739
|
+
}
|
|
93740
|
+
/**
|
|
93741
|
+
* Rehype plugin that flattens paragraph elements that are adjacent to lists in table cells.
|
|
93742
|
+
*
|
|
93743
|
+
* When markdown content is parsed inside JSX table cells, text before/after lists
|
|
93744
|
+
* gets wrapped in `<p>` tags. This causes unwanted spacing because both `<p>` and
|
|
93745
|
+
* list elements have margins.
|
|
93746
|
+
*
|
|
93747
|
+
* This plugin selectively unwraps only `<p>` elements that are immediately before
|
|
93748
|
+
* or after a list (`<ul>` or `<ol>`), preserving paragraphs in other contexts.
|
|
93749
|
+
*/
|
|
93750
|
+
const rehypeFlattenTableCellParagraphs = () => {
|
|
93751
|
+
return (tree) => {
|
|
93752
|
+
visit(tree, 'element', (node) => {
|
|
93753
|
+
// Only process table cells
|
|
93754
|
+
if (node.tagName !== 'td' && node.tagName !== 'th')
|
|
93755
|
+
return;
|
|
93756
|
+
const children = node.children;
|
|
93757
|
+
const newChildren = [];
|
|
93758
|
+
for (let i = 0; i < children.length; i += 1) {
|
|
93759
|
+
const child = children[i];
|
|
93760
|
+
// If not a paragraph, keep as-is
|
|
93761
|
+
if (child.type !== 'element' || child.tagName !== 'p') {
|
|
93762
|
+
newChildren.push(child);
|
|
93763
|
+
}
|
|
93764
|
+
else {
|
|
93765
|
+
// Check if this paragraph is adjacent to a list
|
|
93766
|
+
// Look at previous non-whitespace sibling
|
|
93767
|
+
let prevIndex = i - 1;
|
|
93768
|
+
while (prevIndex >= 0 && isWhitespaceText(children[prevIndex])) {
|
|
93769
|
+
prevIndex -= 1;
|
|
93770
|
+
}
|
|
93771
|
+
const prevIsNewChild = newChildren.length > 0 && newChildren[newChildren.length - 1];
|
|
93772
|
+
const prevIsList = (prevIndex >= 0 && isElementWithTag(children[prevIndex], LIST_ELEMENTS)) ||
|
|
93773
|
+
(prevIsNewChild && prevIsNewChild.type === 'element' && LIST_ELEMENTS.has(prevIsNewChild.tagName));
|
|
93774
|
+
// Look at next non-whitespace sibling
|
|
93775
|
+
let nextIndex = i + 1;
|
|
93776
|
+
while (nextIndex < children.length && isWhitespaceText(children[nextIndex])) {
|
|
93777
|
+
nextIndex += 1;
|
|
93778
|
+
}
|
|
93779
|
+
const nextIsList = nextIndex < children.length && isElementWithTag(children[nextIndex], LIST_ELEMENTS);
|
|
93780
|
+
// If adjacent to a list, flatten the paragraph
|
|
93781
|
+
if (prevIsList || nextIsList) {
|
|
93782
|
+
newChildren.push(...child.children);
|
|
93783
|
+
}
|
|
93784
|
+
else {
|
|
93785
|
+
newChildren.push(child);
|
|
93786
|
+
}
|
|
93787
|
+
}
|
|
93788
|
+
}
|
|
93789
|
+
node.children = newChildren;
|
|
93790
|
+
});
|
|
93791
|
+
};
|
|
93792
|
+
};
|
|
93793
|
+
|
|
93670
93794
|
;// ./lib/utils/mdxish/mdxish-get-component-name.ts
|
|
93671
93795
|
/** Convert a string to PascalCase */
|
|
93672
93796
|
function toPascalCase(str) {
|
|
@@ -94164,12 +94288,20 @@ function extractBalancedBraces(content, start) {
|
|
|
94164
94288
|
* Handles: already-escaped braces, string literals inside expressions, nested balanced braces.
|
|
94165
94289
|
*/
|
|
94166
94290
|
function escapeUnbalancedBraces(content) {
|
|
94291
|
+
// Skip HTML elements — their content should never be escaped because
|
|
94292
|
+
// rehypeRaw parses them into hast elements, making `\` literal text in output
|
|
94293
|
+
const htmlElements = [];
|
|
94294
|
+
const safe = content.replace(/<([a-z][a-zA-Z0-9]*)(?:\s[^>]*)?>[\s\S]*?<\/\1>/g, match => {
|
|
94295
|
+
const idx = htmlElements.length;
|
|
94296
|
+
htmlElements.push(match);
|
|
94297
|
+
return `___HTML_ELEM_${idx}___`;
|
|
94298
|
+
});
|
|
94167
94299
|
const opens = [];
|
|
94168
94300
|
const unbalanced = new Set();
|
|
94169
94301
|
let strDelim = null;
|
|
94170
94302
|
let strEscaped = false;
|
|
94171
94303
|
// Convert to array of Unicode code points to handle emojis and multi-byte characters correctly
|
|
94172
|
-
const chars = Array.from(
|
|
94304
|
+
const chars = Array.from(safe);
|
|
94173
94305
|
for (let i = 0; i < chars.length; i += 1) {
|
|
94174
94306
|
const ch = chars[i];
|
|
94175
94307
|
// Track strings inside expressions to ignore braces within them
|
|
@@ -94210,11 +94342,15 @@ function escapeUnbalancedBraces(content) {
|
|
|
94210
94342
|
}
|
|
94211
94343
|
}
|
|
94212
94344
|
opens.forEach(pos => unbalanced.add(pos));
|
|
94213
|
-
|
|
94214
|
-
|
|
94215
|
-
|
|
94216
|
-
|
|
94217
|
-
.join('');
|
|
94345
|
+
// If there are no unbalanced braces, return content as-is;
|
|
94346
|
+
// otherwise, escape each unbalanced `{` or `}` so MDX doesn't treat them as expressions.
|
|
94347
|
+
let result = unbalanced.size === 0
|
|
94348
|
+
? safe
|
|
94349
|
+
: chars.map((ch, i) => (unbalanced.has(i) ? `\\${ch}` : ch)).join('');
|
|
94350
|
+
if (htmlElements.length > 0) {
|
|
94351
|
+
result = result.replace(/___HTML_ELEM_(\d+)___/g, (_m, idx) => htmlElements[parseInt(idx, 10)]);
|
|
94352
|
+
}
|
|
94353
|
+
return result;
|
|
94218
94354
|
}
|
|
94219
94355
|
/**
|
|
94220
94356
|
* Converts JSX attribute expressions (attribute={expression}) to HTML attributes (attribute="value").
|
|
@@ -94406,6 +94542,9 @@ const generateSlugForHeadings = () => (tree) => {
|
|
|
94406
94542
|
};
|
|
94407
94543
|
/* harmony default export */ const heading_slugs = (generateSlugForHeadings);
|
|
94408
94544
|
|
|
94545
|
+
// EXTERNAL MODULE: external "@readme/variable"
|
|
94546
|
+
var variable_ = __webpack_require__(8167);
|
|
94547
|
+
var variable_default = /*#__PURE__*/__webpack_require__.n(variable_);
|
|
94409
94548
|
;// ./node_modules/rehype-parse/lib/index.js
|
|
94410
94549
|
/**
|
|
94411
94550
|
* @import {Root} from 'hast'
|
|
@@ -94471,6 +94610,311 @@ function rehypeParse(options) {
|
|
|
94471
94610
|
}
|
|
94472
94611
|
}
|
|
94473
94612
|
|
|
94613
|
+
;// ./node_modules/entities/lib/esm/generated/encode-html.js
|
|
94614
|
+
// Generated using scripts/write-encode-map.ts
|
|
94615
|
+
function restoreDiff(arr) {
|
|
94616
|
+
for (let i = 1; i < arr.length; i++) {
|
|
94617
|
+
arr[i][0] += arr[i - 1][0] + 1;
|
|
94618
|
+
}
|
|
94619
|
+
return arr;
|
|
94620
|
+
}
|
|
94621
|
+
// prettier-ignore
|
|
94622
|
+
/* harmony default export */ const encode_html = (new Map(/* #__PURE__ */ restoreDiff([[9, "	"], [0, "
"], [22, "!"], [0, """], [0, "#"], [0, "$"], [0, "%"], [0, "&"], [0, "'"], [0, "("], [0, ")"], [0, "*"], [0, "+"], [0, ","], [1, "."], [0, "/"], [10, ":"], [0, ";"], [0, { v: "<", n: 8402, o: "<⃒" }], [0, { v: "=", n: 8421, o: "=⃥" }], [0, { v: ">", n: 8402, o: ">⃒" }], [0, "?"], [0, "@"], [26, "["], [0, "\"], [0, "]"], [0, "^"], [0, "_"], [0, "`"], [5, { n: 106, o: "fj" }], [20, "{"], [0, "|"], [0, "}"], [34, " "], [0, "¡"], [0, "¢"], [0, "£"], [0, "¤"], [0, "¥"], [0, "¦"], [0, "§"], [0, "¨"], [0, "©"], [0, "ª"], [0, "«"], [0, "¬"], [0, "­"], [0, "®"], [0, "¯"], [0, "°"], [0, "±"], [0, "²"], [0, "³"], [0, "´"], [0, "µ"], [0, "¶"], [0, "·"], [0, "¸"], [0, "¹"], [0, "º"], [0, "»"], [0, "¼"], [0, "½"], [0, "¾"], [0, "¿"], [0, "À"], [0, "Á"], [0, "Â"], [0, "Ã"], [0, "Ä"], [0, "Å"], [0, "Æ"], [0, "Ç"], [0, "È"], [0, "É"], [0, "Ê"], [0, "Ë"], [0, "Ì"], [0, "Í"], [0, "Î"], [0, "Ï"], [0, "Ð"], [0, "Ñ"], [0, "Ò"], [0, "Ó"], [0, "Ô"], [0, "Õ"], [0, "Ö"], [0, "×"], [0, "Ø"], [0, "Ù"], [0, "Ú"], [0, "Û"], [0, "Ü"], [0, "Ý"], [0, "Þ"], [0, "ß"], [0, "à"], [0, "á"], [0, "â"], [0, "ã"], [0, "ä"], [0, "å"], [0, "æ"], [0, "ç"], [0, "è"], [0, "é"], [0, "ê"], [0, "ë"], [0, "ì"], [0, "í"], [0, "î"], [0, "ï"], [0, "ð"], [0, "ñ"], [0, "ò"], [0, "ó"], [0, "ô"], [0, "õ"], [0, "ö"], [0, "÷"], [0, "ø"], [0, "ù"], [0, "ú"], [0, "û"], [0, "ü"], [0, "ý"], [0, "þ"], [0, "ÿ"], [0, "Ā"], [0, "ā"], [0, "Ă"], [0, "ă"], [0, "Ą"], [0, "ą"], [0, "Ć"], [0, "ć"], [0, "Ĉ"], [0, "ĉ"], [0, "Ċ"], [0, "ċ"], [0, "Č"], [0, "č"], [0, "Ď"], [0, "ď"], [0, "Đ"], [0, "đ"], [0, "Ē"], [0, "ē"], [2, "Ė"], [0, "ė"], [0, "Ę"], [0, "ę"], [0, "Ě"], [0, "ě"], [0, "Ĝ"], [0, "ĝ"], [0, "Ğ"], [0, "ğ"], [0, "Ġ"], [0, "ġ"], [0, "Ģ"], [1, "Ĥ"], [0, "ĥ"], [0, "Ħ"], [0, "ħ"], [0, "Ĩ"], [0, "ĩ"], [0, "Ī"], [0, "ī"], [2, "Į"], [0, "į"], [0, "İ"], [0, "ı"], [0, "IJ"], [0, "ij"], [0, "Ĵ"], [0, "ĵ"], [0, "Ķ"], [0, "ķ"], [0, "ĸ"], [0, "Ĺ"], [0, "ĺ"], [0, "Ļ"], [0, "ļ"], [0, "Ľ"], [0, "ľ"], [0, "Ŀ"], [0, "ŀ"], [0, "Ł"], [0, "ł"], [0, "Ń"], [0, "ń"], [0, "Ņ"], [0, "ņ"], [0, "Ň"], [0, "ň"], [0, "ʼn"], [0, "Ŋ"], [0, "ŋ"], [0, "Ō"], [0, "ō"], [2, "Ő"], [0, "ő"], [0, "Œ"], [0, "œ"], [0, "Ŕ"], [0, "ŕ"], [0, "Ŗ"], [0, "ŗ"], [0, "Ř"], [0, "ř"], [0, "Ś"], [0, "ś"], [0, "Ŝ"], [0, "ŝ"], [0, "Ş"], [0, "ş"], [0, "Š"], [0, "š"], [0, "Ţ"], [0, "ţ"], [0, "Ť"], [0, "ť"], [0, "Ŧ"], [0, "ŧ"], [0, "Ũ"], [0, "ũ"], [0, "Ū"], [0, "ū"], [0, "Ŭ"], [0, "ŭ"], [0, "Ů"], [0, "ů"], [0, "Ű"], [0, "ű"], [0, "Ų"], [0, "ų"], [0, "Ŵ"], [0, "ŵ"], [0, "Ŷ"], [0, "ŷ"], [0, "Ÿ"], [0, "Ź"], [0, "ź"], [0, "Ż"], [0, "ż"], [0, "Ž"], [0, "ž"], [19, "ƒ"], [34, "Ƶ"], [63, "ǵ"], [65, "ȷ"], [142, "ˆ"], [0, "ˇ"], [16, "˘"], [0, "˙"], [0, "˚"], [0, "˛"], [0, "˜"], [0, "˝"], [51, "̑"], [127, "Α"], [0, "Β"], [0, "Γ"], [0, "Δ"], [0, "Ε"], [0, "Ζ"], [0, "Η"], [0, "Θ"], [0, "Ι"], [0, "Κ"], [0, "Λ"], [0, "Μ"], [0, "Ν"], [0, "Ξ"], [0, "Ο"], [0, "Π"], [0, "Ρ"], [1, "Σ"], [0, "Τ"], [0, "Υ"], [0, "Φ"], [0, "Χ"], [0, "Ψ"], [0, "Ω"], [7, "α"], [0, "β"], [0, "γ"], [0, "δ"], [0, "ε"], [0, "ζ"], [0, "η"], [0, "θ"], [0, "ι"], [0, "κ"], [0, "λ"], [0, "μ"], [0, "ν"], [0, "ξ"], [0, "ο"], [0, "π"], [0, "ρ"], [0, "ς"], [0, "σ"], [0, "τ"], [0, "υ"], [0, "φ"], [0, "χ"], [0, "ψ"], [0, "ω"], [7, "ϑ"], [0, "ϒ"], [2, "ϕ"], [0, "ϖ"], [5, "Ϝ"], [0, "ϝ"], [18, "ϰ"], [0, "ϱ"], [3, "ϵ"], [0, "϶"], [10, "Ё"], [0, "Ђ"], [0, "Ѓ"], [0, "Є"], [0, "Ѕ"], [0, "І"], [0, "Ї"], [0, "Ј"], [0, "Љ"], [0, "Њ"], [0, "Ћ"], [0, "Ќ"], [1, "Ў"], [0, "Џ"], [0, "А"], [0, "Б"], [0, "В"], [0, "Г"], [0, "Д"], [0, "Е"], [0, "Ж"], [0, "З"], [0, "И"], [0, "Й"], [0, "К"], [0, "Л"], [0, "М"], [0, "Н"], [0, "О"], [0, "П"], [0, "Р"], [0, "С"], [0, "Т"], [0, "У"], [0, "Ф"], [0, "Х"], [0, "Ц"], [0, "Ч"], [0, "Ш"], [0, "Щ"], [0, "Ъ"], [0, "Ы"], [0, "Ь"], [0, "Э"], [0, "Ю"], [0, "Я"], [0, "а"], [0, "б"], [0, "в"], [0, "г"], [0, "д"], [0, "е"], [0, "ж"], [0, "з"], [0, "и"], [0, "й"], [0, "к"], [0, "л"], [0, "м"], [0, "н"], [0, "о"], [0, "п"], [0, "р"], [0, "с"], [0, "т"], [0, "у"], [0, "ф"], [0, "х"], [0, "ц"], [0, "ч"], [0, "ш"], [0, "щ"], [0, "ъ"], [0, "ы"], [0, "ь"], [0, "э"], [0, "ю"], [0, "я"], [1, "ё"], [0, "ђ"], [0, "ѓ"], [0, "є"], [0, "ѕ"], [0, "і"], [0, "ї"], [0, "ј"], [0, "љ"], [0, "њ"], [0, "ћ"], [0, "ќ"], [1, "ў"], [0, "џ"], [7074, " "], [0, " "], [0, " "], [0, " "], [1, " "], [0, " "], [0, " "], [0, " "], [0, "​"], [0, "‌"], [0, "‍"], [0, "‎"], [0, "‏"], [0, "‐"], [2, "–"], [0, "—"], [0, "―"], [0, "‖"], [1, "‘"], [0, "’"], [0, "‚"], [1, "“"], [0, "”"], [0, "„"], [1, "†"], [0, "‡"], [0, "•"], [2, "‥"], [0, "…"], [9, "‰"], [0, "‱"], [0, "′"], [0, "″"], [0, "‴"], [0, "‵"], [3, "‹"], [0, "›"], [3, "‾"], [2, "⁁"], [1, "⁃"], [0, "⁄"], [10, "⁏"], [7, "⁗"], [7, { v: " ", n: 8202, o: "  " }], [0, "⁠"], [0, "⁡"], [0, "⁢"], [0, "⁣"], [72, "€"], [46, "⃛"], [0, "⃜"], [37, "ℂ"], [2, "℅"], [4, "ℊ"], [0, "ℋ"], [0, "ℌ"], [0, "ℍ"], [0, "ℎ"], [0, "ℏ"], [0, "ℐ"], [0, "ℑ"], [0, "ℒ"], [0, "ℓ"], [1, "ℕ"], [0, "№"], [0, "℗"], [0, "℘"], [0, "ℙ"], [0, "ℚ"], [0, "ℛ"], [0, "ℜ"], [0, "ℝ"], [0, "℞"], [3, "™"], [1, "ℤ"], [2, "℧"], [0, "ℨ"], [0, "℩"], [2, "ℬ"], [0, "ℭ"], [1, "ℯ"], [0, "ℰ"], [0, "ℱ"], [1, "ℳ"], [0, "ℴ"], [0, "ℵ"], [0, "ℶ"], [0, "ℷ"], [0, "ℸ"], [12, "ⅅ"], [0, "ⅆ"], [0, "ⅇ"], [0, "ⅈ"], [10, "⅓"], [0, "⅔"], [0, "⅕"], [0, "⅖"], [0, "⅗"], [0, "⅘"], [0, "⅙"], [0, "⅚"], [0, "⅛"], [0, "⅜"], [0, "⅝"], [0, "⅞"], [49, "←"], [0, "↑"], [0, "→"], [0, "↓"], [0, "↔"], [0, "↕"], [0, "↖"], [0, "↗"], [0, "↘"], [0, "↙"], [0, "↚"], [0, "↛"], [1, { v: "↝", n: 824, o: "↝̸" }], [0, "↞"], [0, "↟"], [0, "↠"], [0, "↡"], [0, "↢"], [0, "↣"], [0, "↤"], [0, "↥"], [0, "↦"], [0, "↧"], [1, "↩"], [0, "↪"], [0, "↫"], [0, "↬"], [0, "↭"], [0, "↮"], [1, "↰"], [0, "↱"], [0, "↲"], [0, "↳"], [1, "↵"], [0, "↶"], [0, "↷"], [2, "↺"], [0, "↻"], [0, "↼"], [0, "↽"], [0, "↾"], [0, "↿"], [0, "⇀"], [0, "⇁"], [0, "⇂"], [0, "⇃"], [0, "⇄"], [0, "⇅"], [0, "⇆"], [0, "⇇"], [0, "⇈"], [0, "⇉"], [0, "⇊"], [0, "⇋"], [0, "⇌"], [0, "⇍"], [0, "⇎"], [0, "⇏"], [0, "⇐"], [0, "⇑"], [0, "⇒"], [0, "⇓"], [0, "⇔"], [0, "⇕"], [0, "⇖"], [0, "⇗"], [0, "⇘"], [0, "⇙"], [0, "⇚"], [0, "⇛"], [1, "⇝"], [6, "⇤"], [0, "⇥"], [15, "⇵"], [7, "⇽"], [0, "⇾"], [0, "⇿"], [0, "∀"], [0, "∁"], [0, { v: "∂", n: 824, o: "∂̸" }], [0, "∃"], [0, "∄"], [0, "∅"], [1, "∇"], [0, "∈"], [0, "∉"], [1, "∋"], [0, "∌"], [2, "∏"], [0, "∐"], [0, "∑"], [0, "−"], [0, "∓"], [0, "∔"], [1, "∖"], [0, "∗"], [0, "∘"], [1, "√"], [2, "∝"], [0, "∞"], [0, "∟"], [0, { v: "∠", n: 8402, o: "∠⃒" }], [0, "∡"], [0, "∢"], [0, "∣"], [0, "∤"], [0, "∥"], [0, "∦"], [0, "∧"], [0, "∨"], [0, { v: "∩", n: 65024, o: "∩︀" }], [0, { v: "∪", n: 65024, o: "∪︀" }], [0, "∫"], [0, "∬"], [0, "∭"], [0, "∮"], [0, "∯"], [0, "∰"], [0, "∱"], [0, "∲"], [0, "∳"], [0, "∴"], [0, "∵"], [0, "∶"], [0, "∷"], [0, "∸"], [1, "∺"], [0, "∻"], [0, { v: "∼", n: 8402, o: "∼⃒" }], [0, { v: "∽", n: 817, o: "∽̱" }], [0, { v: "∾", n: 819, o: "∾̳" }], [0, "∿"], [0, "≀"], [0, "≁"], [0, { v: "≂", n: 824, o: "≂̸" }], [0, "≃"], [0, "≄"], [0, "≅"], [0, "≆"], [0, "≇"], [0, "≈"], [0, "≉"], [0, "≊"], [0, { v: "≋", n: 824, o: "≋̸" }], [0, "≌"], [0, { v: "≍", n: 8402, o: "≍⃒" }], [0, { v: "≎", n: 824, o: "≎̸" }], [0, { v: "≏", n: 824, o: "≏̸" }], [0, { v: "≐", n: 824, o: "≐̸" }], [0, "≑"], [0, "≒"], [0, "≓"], [0, "≔"], [0, "≕"], [0, "≖"], [0, "≗"], [1, "≙"], [0, "≚"], [1, "≜"], [2, "≟"], [0, "≠"], [0, { v: "≡", n: 8421, o: "≡⃥" }], [0, "≢"], [1, { v: "≤", n: 8402, o: "≤⃒" }], [0, { v: "≥", n: 8402, o: "≥⃒" }], [0, { v: "≦", n: 824, o: "≦̸" }], [0, { v: "≧", n: 824, o: "≧̸" }], [0, { v: "≨", n: 65024, o: "≨︀" }], [0, { v: "≩", n: 65024, o: "≩︀" }], [0, { v: "≪", n: new Map(/* #__PURE__ */ restoreDiff([[824, "≪̸"], [7577, "≪⃒"]])) }], [0, { v: "≫", n: new Map(/* #__PURE__ */ restoreDiff([[824, "≫̸"], [7577, "≫⃒"]])) }], [0, "≬"], [0, "≭"], [0, "≮"], [0, "≯"], [0, "≰"], [0, "≱"], [0, "≲"], [0, "≳"], [0, "≴"], [0, "≵"], [0, "≶"], [0, "≷"], [0, "≸"], [0, "≹"], [0, "≺"], [0, "≻"], [0, "≼"], [0, "≽"], [0, "≾"], [0, { v: "≿", n: 824, o: "≿̸" }], [0, "⊀"], [0, "⊁"], [0, { v: "⊂", n: 8402, o: "⊂⃒" }], [0, { v: "⊃", n: 8402, o: "⊃⃒" }], [0, "⊄"], [0, "⊅"], [0, "⊆"], [0, "⊇"], [0, "⊈"], [0, "⊉"], [0, { v: "⊊", n: 65024, o: "⊊︀" }], [0, { v: "⊋", n: 65024, o: "⊋︀" }], [1, "⊍"], [0, "⊎"], [0, { v: "⊏", n: 824, o: "⊏̸" }], [0, { v: "⊐", n: 824, o: "⊐̸" }], [0, "⊑"], [0, "⊒"], [0, { v: "⊓", n: 65024, o: "⊓︀" }], [0, { v: "⊔", n: 65024, o: "⊔︀" }], [0, "⊕"], [0, "⊖"], [0, "⊗"], [0, "⊘"], [0, "⊙"], [0, "⊚"], [0, "⊛"], [1, "⊝"], [0, "⊞"], [0, "⊟"], [0, "⊠"], [0, "⊡"], [0, "⊢"], [0, "⊣"], [0, "⊤"], [0, "⊥"], [1, "⊧"], [0, "⊨"], [0, "⊩"], [0, "⊪"], [0, "⊫"], [0, "⊬"], [0, "⊭"], [0, "⊮"], [0, "⊯"], [0, "⊰"], [1, "⊲"], [0, "⊳"], [0, { v: "⊴", n: 8402, o: "⊴⃒" }], [0, { v: "⊵", n: 8402, o: "⊵⃒" }], [0, "⊶"], [0, "⊷"], [0, "⊸"], [0, "⊹"], [0, "⊺"], [0, "⊻"], [1, "⊽"], [0, "⊾"], [0, "⊿"], [0, "⋀"], [0, "⋁"], [0, "⋂"], [0, "⋃"], [0, "⋄"], [0, "⋅"], [0, "⋆"], [0, "⋇"], [0, "⋈"], [0, "⋉"], [0, "⋊"], [0, "⋋"], [0, "⋌"], [0, "⋍"], [0, "⋎"], [0, "⋏"], [0, "⋐"], [0, "⋑"], [0, "⋒"], [0, "⋓"], [0, "⋔"], [0, "⋕"], [0, "⋖"], [0, "⋗"], [0, { v: "⋘", n: 824, o: "⋘̸" }], [0, { v: "⋙", n: 824, o: "⋙̸" }], [0, { v: "⋚", n: 65024, o: "⋚︀" }], [0, { v: "⋛", n: 65024, o: "⋛︀" }], [2, "⋞"], [0, "⋟"], [0, "⋠"], [0, "⋡"], [0, "⋢"], [0, "⋣"], [2, "⋦"], [0, "⋧"], [0, "⋨"], [0, "⋩"], [0, "⋪"], [0, "⋫"], [0, "⋬"], [0, "⋭"], [0, "⋮"], [0, "⋯"], [0, "⋰"], [0, "⋱"], [0, "⋲"], [0, "⋳"], [0, "⋴"], [0, { v: "⋵", n: 824, o: "⋵̸" }], [0, "⋶"], [0, "⋷"], [1, { v: "⋹", n: 824, o: "⋹̸" }], [0, "⋺"], [0, "⋻"], [0, "⋼"], [0, "⋽"], [0, "⋾"], [6, "⌅"], [0, "⌆"], [1, "⌈"], [0, "⌉"], [0, "⌊"], [0, "⌋"], [0, "⌌"], [0, "⌍"], [0, "⌎"], [0, "⌏"], [0, "⌐"], [1, "⌒"], [0, "⌓"], [1, "⌕"], [0, "⌖"], [5, "⌜"], [0, "⌝"], [0, "⌞"], [0, "⌟"], [2, "⌢"], [0, "⌣"], [9, "⌭"], [0, "⌮"], [7, "⌶"], [6, "⌽"], [1, "⌿"], [60, "⍼"], [51, "⎰"], [0, "⎱"], [2, "⎴"], [0, "⎵"], [0, "⎶"], [37, "⏜"], [0, "⏝"], [0, "⏞"], [0, "⏟"], [2, "⏢"], [4, "⏧"], [59, "␣"], [164, "Ⓢ"], [55, "─"], [1, "│"], [9, "┌"], [3, "┐"], [3, "└"], [3, "┘"], [3, "├"], [7, "┤"], [7, "┬"], [7, "┴"], [7, "┼"], [19, "═"], [0, "║"], [0, "╒"], [0, "╓"], [0, "╔"], [0, "╕"], [0, "╖"], [0, "╗"], [0, "╘"], [0, "╙"], [0, "╚"], [0, "╛"], [0, "╜"], [0, "╝"], [0, "╞"], [0, "╟"], [0, "╠"], [0, "╡"], [0, "╢"], [0, "╣"], [0, "╤"], [0, "╥"], [0, "╦"], [0, "╧"], [0, "╨"], [0, "╩"], [0, "╪"], [0, "╫"], [0, "╬"], [19, "▀"], [3, "▄"], [3, "█"], [8, "░"], [0, "▒"], [0, "▓"], [13, "□"], [8, "▪"], [0, "▫"], [1, "▭"], [0, "▮"], [2, "▱"], [1, "△"], [0, "▴"], [0, "▵"], [2, "▸"], [0, "▹"], [3, "▽"], [0, "▾"], [0, "▿"], [2, "◂"], [0, "◃"], [6, "◊"], [0, "○"], [32, "◬"], [2, "◯"], [8, "◸"], [0, "◹"], [0, "◺"], [0, "◻"], [0, "◼"], [8, "★"], [0, "☆"], [7, "☎"], [49, "♀"], [1, "♂"], [29, "♠"], [2, "♣"], [1, "♥"], [0, "♦"], [3, "♪"], [2, "♭"], [0, "♮"], [0, "♯"], [163, "✓"], [3, "✗"], [8, "✠"], [21, "✶"], [33, "❘"], [25, "❲"], [0, "❳"], [84, "⟈"], [0, "⟉"], [28, "⟦"], [0, "⟧"], [0, "⟨"], [0, "⟩"], [0, "⟪"], [0, "⟫"], [0, "⟬"], [0, "⟭"], [7, "⟵"], [0, "⟶"], [0, "⟷"], [0, "⟸"], [0, "⟹"], [0, "⟺"], [1, "⟼"], [2, "⟿"], [258, "⤂"], [0, "⤃"], [0, "⤄"], [0, "⤅"], [6, "⤌"], [0, "⤍"], [0, "⤎"], [0, "⤏"], [0, "⤐"], [0, "⤑"], [0, "⤒"], [0, "⤓"], [2, "⤖"], [2, "⤙"], [0, "⤚"], [0, "⤛"], [0, "⤜"], [0, "⤝"], [0, "⤞"], [0, "⤟"], [0, "⤠"], [2, "⤣"], [0, "⤤"], [0, "⤥"], [0, "⤦"], [0, "⤧"], [0, "⤨"], [0, "⤩"], [0, "⤪"], [8, { v: "⤳", n: 824, o: "⤳̸" }], [1, "⤵"], [0, "⤶"], [0, "⤷"], [0, "⤸"], [0, "⤹"], [2, "⤼"], [0, "⤽"], [7, "⥅"], [2, "⥈"], [0, "⥉"], [0, "⥊"], [0, "⥋"], [2, "⥎"], [0, "⥏"], [0, "⥐"], [0, "⥑"], [0, "⥒"], [0, "⥓"], [0, "⥔"], [0, "⥕"], [0, "⥖"], [0, "⥗"], [0, "⥘"], [0, "⥙"], [0, "⥚"], [0, "⥛"], [0, "⥜"], [0, "⥝"], [0, "⥞"], [0, "⥟"], [0, "⥠"], [0, "⥡"], [0, "⥢"], [0, "⥣"], [0, "⥤"], [0, "⥥"], [0, "⥦"], [0, "⥧"], [0, "⥨"], [0, "⥩"], [0, "⥪"], [0, "⥫"], [0, "⥬"], [0, "⥭"], [0, "⥮"], [0, "⥯"], [0, "⥰"], [0, "⥱"], [0, "⥲"], [0, "⥳"], [0, "⥴"], [0, "⥵"], [0, "⥶"], [1, "⥸"], [0, "⥹"], [1, "⥻"], [0, "⥼"], [0, "⥽"], [0, "⥾"], [0, "⥿"], [5, "⦅"], [0, "⦆"], [4, "⦋"], [0, "⦌"], [0, "⦍"], [0, "⦎"], [0, "⦏"], [0, "⦐"], [0, "⦑"], [0, "⦒"], [0, "⦓"], [0, "⦔"], [0, "⦕"], [0, "⦖"], [3, "⦚"], [1, "⦜"], [0, "⦝"], [6, "⦤"], [0, "⦥"], [0, "⦦"], [0, "⦧"], [0, "⦨"], [0, "⦩"], [0, "⦪"], [0, "⦫"], [0, "⦬"], [0, "⦭"], [0, "⦮"], [0, "⦯"], [0, "⦰"], [0, "⦱"], [0, "⦲"], [0, "⦳"], [0, "⦴"], [0, "⦵"], [0, "⦶"], [0, "⦷"], [1, "⦹"], [1, "⦻"], [0, "⦼"], [1, "⦾"], [0, "⦿"], [0, "⧀"], [0, "⧁"], [0, "⧂"], [0, "⧃"], [0, "⧄"], [0, "⧅"], [3, "⧉"], [3, "⧍"], [0, "⧎"], [0, { v: "⧏", n: 824, o: "⧏̸" }], [0, { v: "⧐", n: 824, o: "⧐̸" }], [11, "⧜"], [0, "⧝"], [0, "⧞"], [4, "⧣"], [0, "⧤"], [0, "⧥"], [5, "⧫"], [8, "⧴"], [1, "⧶"], [9, "⨀"], [0, "⨁"], [0, "⨂"], [1, "⨄"], [1, "⨆"], [5, "⨌"], [0, "⨍"], [2, "⨐"], [0, "⨑"], [0, "⨒"], [0, "⨓"], [0, "⨔"], [0, "⨕"], [0, "⨖"], [0, "⨗"], [10, "⨢"], [0, "⨣"], [0, "⨤"], [0, "⨥"], [0, "⨦"], [0, "⨧"], [1, "⨩"], [0, "⨪"], [2, "⨭"], [0, "⨮"], [0, "⨯"], [0, "⨰"], [0, "⨱"], [1, "⨳"], [0, "⨴"], [0, "⨵"], [0, "⨶"], [0, "⨷"], [0, "⨸"], [0, "⨹"], [0, "⨺"], [0, "⨻"], [0, "⨼"], [2, "⨿"], [0, "⩀"], [1, "⩂"], [0, "⩃"], [0, "⩄"], [0, "⩅"], [0, "⩆"], [0, "⩇"], [0, "⩈"], [0, "⩉"], [0, "⩊"], [0, "⩋"], [0, "⩌"], [0, "⩍"], [2, "⩐"], [2, "⩓"], [0, "⩔"], [0, "⩕"], [0, "⩖"], [0, "⩗"], [0, "⩘"], [1, "⩚"], [0, "⩛"], [0, "⩜"], [0, "⩝"], [1, "⩟"], [6, "⩦"], [3, "⩪"], [2, { v: "⩭", n: 824, o: "⩭̸" }], [0, "⩮"], [0, "⩯"], [0, { v: "⩰", n: 824, o: "⩰̸" }], [0, "⩱"], [0, "⩲"], [0, "⩳"], [0, "⩴"], [0, "⩵"], [1, "⩷"], [0, "⩸"], [0, "⩹"], [0, "⩺"], [0, "⩻"], [0, "⩼"], [0, { v: "⩽", n: 824, o: "⩽̸" }], [0, { v: "⩾", n: 824, o: "⩾̸" }], [0, "⩿"], [0, "⪀"], [0, "⪁"], [0, "⪂"], [0, "⪃"], [0, "⪄"], [0, "⪅"], [0, "⪆"], [0, "⪇"], [0, "⪈"], [0, "⪉"], [0, "⪊"], [0, "⪋"], [0, "⪌"], [0, "⪍"], [0, "⪎"], [0, "⪏"], [0, "⪐"], [0, "⪑"], [0, "⪒"], [0, "⪓"], [0, "⪔"], [0, "⪕"], [0, "⪖"], [0, "⪗"], [0, "⪘"], [0, "⪙"], [0, "⪚"], [2, "⪝"], [0, "⪞"], [0, "⪟"], [0, "⪠"], [0, { v: "⪡", n: 824, o: "⪡̸" }], [0, { v: "⪢", n: 824, o: "⪢̸" }], [1, "⪤"], [0, "⪥"], [0, "⪦"], [0, "⪧"], [0, "⪨"], [0, "⪩"], [0, "⪪"], [0, "⪫"], [0, { v: "⪬", n: 65024, o: "⪬︀" }], [0, { v: "⪭", n: 65024, o: "⪭︀" }], [0, "⪮"], [0, { v: "⪯", n: 824, o: "⪯̸" }], [0, { v: "⪰", n: 824, o: "⪰̸" }], [2, "⪳"], [0, "⪴"], [0, "⪵"], [0, "⪶"], [0, "⪷"], [0, "⪸"], [0, "⪹"], [0, "⪺"], [0, "⪻"], [0, "⪼"], [0, "⪽"], [0, "⪾"], [0, "⪿"], [0, "⫀"], [0, "⫁"], [0, "⫂"], [0, "⫃"], [0, "⫄"], [0, { v: "⫅", n: 824, o: "⫅̸" }], [0, { v: "⫆", n: 824, o: "⫆̸" }], [0, "⫇"], [0, "⫈"], [2, { v: "⫋", n: 65024, o: "⫋︀" }], [0, { v: "⫌", n: 65024, o: "⫌︀" }], [2, "⫏"], [0, "⫐"], [0, "⫑"], [0, "⫒"], [0, "⫓"], [0, "⫔"], [0, "⫕"], [0, "⫖"], [0, "⫗"], [0, "⫘"], [0, "⫙"], [0, "⫚"], [0, "⫛"], [8, "⫤"], [1, "⫦"], [0, "⫧"], [0, "⫨"], [0, "⫩"], [1, "⫫"], [0, "⫬"], [0, "⫭"], [0, "⫮"], [0, "⫯"], [0, "⫰"], [0, "⫱"], [0, "⫲"], [0, "⫳"], [9, { v: "⫽", n: 8421, o: "⫽⃥" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, "𝒜"], [1, "𝒞"], [0, "𝒟"], [2, "𝒢"], [2, "𝒥"], [0, "𝒦"], [2, "𝒩"], [0, "𝒪"], [0, "𝒫"], [0, "𝒬"], [1, "𝒮"], [0, "𝒯"], [0, "𝒰"], [0, "𝒱"], [0, "𝒲"], [0, "𝒳"], [0, "𝒴"], [0, "𝒵"], [0, "𝒶"], [0, "𝒷"], [0, "𝒸"], [0, "𝒹"], [1, "𝒻"], [1, "𝒽"], [0, "𝒾"], [0, "𝒿"], [0, "𝓀"], [0, "𝓁"], [0, "𝓂"], [0, "𝓃"], [1, "𝓅"], [0, "𝓆"], [0, "𝓇"], [0, "𝓈"], [0, "𝓉"], [0, "𝓊"], [0, "𝓋"], [0, "𝓌"], [0, "𝓍"], [0, "𝓎"], [0, "𝓏"], [52, "𝔄"], [0, "𝔅"], [1, "𝔇"], [0, "𝔈"], [0, "𝔉"], [0, "𝔊"], [2, "𝔍"], [0, "𝔎"], [0, "𝔏"], [0, "𝔐"], [0, "𝔑"], [0, "𝔒"], [0, "𝔓"], [0, "𝔔"], [1, "𝔖"], [0, "𝔗"], [0, "𝔘"], [0, "𝔙"], [0, "𝔚"], [0, "𝔛"], [0, "𝔜"], [1, "𝔞"], [0, "𝔟"], [0, "𝔠"], [0, "𝔡"], [0, "𝔢"], [0, "𝔣"], [0, "𝔤"], [0, "𝔥"], [0, "𝔦"], [0, "𝔧"], [0, "𝔨"], [0, "𝔩"], [0, "𝔪"], [0, "𝔫"], [0, "𝔬"], [0, "𝔭"], [0, "𝔮"], [0, "𝔯"], [0, "𝔰"], [0, "𝔱"], [0, "𝔲"], [0, "𝔳"], [0, "𝔴"], [0, "𝔵"], [0, "𝔶"], [0, "𝔷"], [0, "𝔸"], [0, "𝔹"], [1, "𝔻"], [0, "𝔼"], [0, "𝔽"], [0, "𝔾"], [1, "𝕀"], [0, "𝕁"], [0, "𝕂"], [0, "𝕃"], [0, "𝕄"], [1, "𝕆"], [3, "𝕊"], [0, "𝕋"], [0, "𝕌"], [0, "𝕍"], [0, "𝕎"], [0, "𝕏"], [0, "𝕐"], [1, "𝕒"], [0, "𝕓"], [0, "𝕔"], [0, "𝕕"], [0, "𝕖"], [0, "𝕗"], [0, "𝕘"], [0, "𝕙"], [0, "𝕚"], [0, "𝕛"], [0, "𝕜"], [0, "𝕝"], [0, "𝕞"], [0, "𝕟"], [0, "𝕠"], [0, "𝕡"], [0, "𝕢"], [0, "𝕣"], [0, "𝕤"], [0, "𝕥"], [0, "𝕦"], [0, "𝕧"], [0, "𝕨"], [0, "𝕩"], [0, "𝕪"], [0, "𝕫"]])) }], [8906, "ff"], [0, "fi"], [0, "fl"], [0, "ffi"], [0, "ffl"]])));
|
|
94623
|
+
//# sourceMappingURL=encode-html.js.map
|
|
94624
|
+
;// ./node_modules/entities/lib/esm/encode.js
|
|
94625
|
+
|
|
94626
|
+
|
|
94627
|
+
const htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
|
|
94628
|
+
/**
|
|
94629
|
+
* Encodes all characters in the input using HTML entities. This includes
|
|
94630
|
+
* characters that are valid ASCII characters in HTML documents, such as `#`.
|
|
94631
|
+
*
|
|
94632
|
+
* To get a more compact output, consider using the `encodeNonAsciiHTML`
|
|
94633
|
+
* function, which will only encode characters that are not valid in HTML
|
|
94634
|
+
* documents, as well as non-ASCII characters.
|
|
94635
|
+
*
|
|
94636
|
+
* If a character has no equivalent entity, a numeric hexadecimal reference
|
|
94637
|
+
* (eg. `ü`) will be used.
|
|
94638
|
+
*/
|
|
94639
|
+
function encode_encodeHTML(data) {
|
|
94640
|
+
return encodeHTMLTrieRe(htmlReplacer, data);
|
|
94641
|
+
}
|
|
94642
|
+
/**
|
|
94643
|
+
* Encodes all non-ASCII characters, as well as characters not valid in HTML
|
|
94644
|
+
* documents using HTML entities. This function will not encode characters that
|
|
94645
|
+
* are valid in HTML documents, such as `#`.
|
|
94646
|
+
*
|
|
94647
|
+
* If a character has no equivalent entity, a numeric hexadecimal reference
|
|
94648
|
+
* (eg. `ü`) will be used.
|
|
94649
|
+
*/
|
|
94650
|
+
function encode_encodeNonAsciiHTML(data) {
|
|
94651
|
+
return encodeHTMLTrieRe(xmlReplacer, data);
|
|
94652
|
+
}
|
|
94653
|
+
function encodeHTMLTrieRe(regExp, str) {
|
|
94654
|
+
let ret = "";
|
|
94655
|
+
let lastIdx = 0;
|
|
94656
|
+
let match;
|
|
94657
|
+
while ((match = regExp.exec(str)) !== null) {
|
|
94658
|
+
const i = match.index;
|
|
94659
|
+
ret += str.substring(lastIdx, i);
|
|
94660
|
+
const char = str.charCodeAt(i);
|
|
94661
|
+
let next = htmlTrie.get(char);
|
|
94662
|
+
if (typeof next === "object") {
|
|
94663
|
+
// We are in a branch. Try to match the next char.
|
|
94664
|
+
if (i + 1 < str.length) {
|
|
94665
|
+
const nextChar = str.charCodeAt(i + 1);
|
|
94666
|
+
const value = typeof next.n === "number"
|
|
94667
|
+
? next.n === nextChar
|
|
94668
|
+
? next.o
|
|
94669
|
+
: undefined
|
|
94670
|
+
: next.n.get(nextChar);
|
|
94671
|
+
if (value !== undefined) {
|
|
94672
|
+
ret += value;
|
|
94673
|
+
lastIdx = regExp.lastIndex += 1;
|
|
94674
|
+
continue;
|
|
94675
|
+
}
|
|
94676
|
+
}
|
|
94677
|
+
next = next.v;
|
|
94678
|
+
}
|
|
94679
|
+
// We might have a tree node without a value; skip and use a numeric entity.
|
|
94680
|
+
if (next !== undefined) {
|
|
94681
|
+
ret += next;
|
|
94682
|
+
lastIdx = i + 1;
|
|
94683
|
+
}
|
|
94684
|
+
else {
|
|
94685
|
+
const cp = getCodePoint(str, i);
|
|
94686
|
+
ret += `&#x${cp.toString(16)};`;
|
|
94687
|
+
// Increase by 1 if we have a surrogate pair
|
|
94688
|
+
lastIdx = regExp.lastIndex += Number(cp !== char);
|
|
94689
|
+
}
|
|
94690
|
+
}
|
|
94691
|
+
return ret + str.substr(lastIdx);
|
|
94692
|
+
}
|
|
94693
|
+
//# sourceMappingURL=encode.js.map
|
|
94694
|
+
;// ./node_modules/entities/lib/esm/index.js
|
|
94695
|
+
|
|
94696
|
+
|
|
94697
|
+
|
|
94698
|
+
/** The level of entities to support. */
|
|
94699
|
+
var EntityLevel;
|
|
94700
|
+
(function (EntityLevel) {
|
|
94701
|
+
/** Support only XML entities. */
|
|
94702
|
+
EntityLevel[EntityLevel["XML"] = 0] = "XML";
|
|
94703
|
+
/** Support HTML entities, which are a superset of XML entities. */
|
|
94704
|
+
EntityLevel[EntityLevel["HTML"] = 1] = "HTML";
|
|
94705
|
+
})(EntityLevel || (EntityLevel = {}));
|
|
94706
|
+
var EncodingMode;
|
|
94707
|
+
(function (EncodingMode) {
|
|
94708
|
+
/**
|
|
94709
|
+
* The output is UTF-8 encoded. Only characters that need escaping within
|
|
94710
|
+
* XML will be escaped.
|
|
94711
|
+
*/
|
|
94712
|
+
EncodingMode[EncodingMode["UTF8"] = 0] = "UTF8";
|
|
94713
|
+
/**
|
|
94714
|
+
* The output consists only of ASCII characters. Characters that need
|
|
94715
|
+
* escaping within HTML, and characters that aren't ASCII characters will
|
|
94716
|
+
* be escaped.
|
|
94717
|
+
*/
|
|
94718
|
+
EncodingMode[EncodingMode["ASCII"] = 1] = "ASCII";
|
|
94719
|
+
/**
|
|
94720
|
+
* Encode all characters that have an equivalent entity, as well as all
|
|
94721
|
+
* characters that are not ASCII characters.
|
|
94722
|
+
*/
|
|
94723
|
+
EncodingMode[EncodingMode["Extensive"] = 2] = "Extensive";
|
|
94724
|
+
/**
|
|
94725
|
+
* Encode all characters that have to be escaped in HTML attributes,
|
|
94726
|
+
* following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
|
|
94727
|
+
*/
|
|
94728
|
+
EncodingMode[EncodingMode["Attribute"] = 3] = "Attribute";
|
|
94729
|
+
/**
|
|
94730
|
+
* Encode all characters that have to be escaped in HTML text,
|
|
94731
|
+
* following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
|
|
94732
|
+
*/
|
|
94733
|
+
EncodingMode[EncodingMode["Text"] = 4] = "Text";
|
|
94734
|
+
})(EncodingMode || (EncodingMode = {}));
|
|
94735
|
+
/**
|
|
94736
|
+
* Decodes a string with entities.
|
|
94737
|
+
*
|
|
94738
|
+
* @param data String to decode.
|
|
94739
|
+
* @param options Decoding options.
|
|
94740
|
+
*/
|
|
94741
|
+
function esm_decode(data, options = EntityLevel.XML) {
|
|
94742
|
+
const level = typeof options === "number" ? options : options.level;
|
|
94743
|
+
if (level === EntityLevel.HTML) {
|
|
94744
|
+
const mode = typeof options === "object" ? options.mode : undefined;
|
|
94745
|
+
return decodeHTML(data, mode);
|
|
94746
|
+
}
|
|
94747
|
+
return decodeXML(data);
|
|
94748
|
+
}
|
|
94749
|
+
/**
|
|
94750
|
+
* Decodes a string with entities. Does not allow missing trailing semicolons for entities.
|
|
94751
|
+
*
|
|
94752
|
+
* @param data String to decode.
|
|
94753
|
+
* @param options Decoding options.
|
|
94754
|
+
* @deprecated Use `decode` with the `mode` set to `Strict`.
|
|
94755
|
+
*/
|
|
94756
|
+
function decodeStrict(data, options = EntityLevel.XML) {
|
|
94757
|
+
var _a;
|
|
94758
|
+
const opts = typeof options === "number" ? { level: options } : options;
|
|
94759
|
+
(_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict);
|
|
94760
|
+
return esm_decode(data, opts);
|
|
94761
|
+
}
|
|
94762
|
+
/**
|
|
94763
|
+
* Encodes a string with entities.
|
|
94764
|
+
*
|
|
94765
|
+
* @param data String to encode.
|
|
94766
|
+
* @param options Encoding options.
|
|
94767
|
+
*/
|
|
94768
|
+
function esm_encode(data, options = EntityLevel.XML) {
|
|
94769
|
+
const opts = typeof options === "number" ? { level: options } : options;
|
|
94770
|
+
// Mode `UTF8` just escapes XML entities
|
|
94771
|
+
if (opts.mode === EncodingMode.UTF8)
|
|
94772
|
+
return escapeUTF8(data);
|
|
94773
|
+
if (opts.mode === EncodingMode.Attribute)
|
|
94774
|
+
return escapeAttribute(data);
|
|
94775
|
+
if (opts.mode === EncodingMode.Text)
|
|
94776
|
+
return escapeText(data);
|
|
94777
|
+
if (opts.level === EntityLevel.HTML) {
|
|
94778
|
+
if (opts.mode === EncodingMode.ASCII) {
|
|
94779
|
+
return encodeNonAsciiHTML(data);
|
|
94780
|
+
}
|
|
94781
|
+
return encodeHTML(data);
|
|
94782
|
+
}
|
|
94783
|
+
// ASCII and Extensive are equivalent
|
|
94784
|
+
return encodeXML(data);
|
|
94785
|
+
}
|
|
94786
|
+
|
|
94787
|
+
|
|
94788
|
+
|
|
94789
|
+
//# sourceMappingURL=index.js.map
|
|
94790
|
+
;// ./lib/micromark/loose-html-entities/syntax.ts
|
|
94791
|
+
|
|
94792
|
+
|
|
94793
|
+
|
|
94794
|
+
const MAX_ENTITY_LENGTH = 32;
|
|
94795
|
+
const looseHtmlEntityConstruct = {
|
|
94796
|
+
name: 'looseHtmlEntity',
|
|
94797
|
+
tokenize: tokenizeLooseHtmlEntity,
|
|
94798
|
+
};
|
|
94799
|
+
function resolveEntity(name) {
|
|
94800
|
+
const input = `&${name};`;
|
|
94801
|
+
const decoded = decodeHTMLStrict(input);
|
|
94802
|
+
return decoded !== input ? decoded : undefined;
|
|
94803
|
+
}
|
|
94804
|
+
function tokenizeLooseHtmlEntity(effects, ok, nok) {
|
|
94805
|
+
let length = 0;
|
|
94806
|
+
const start = (code) => {
|
|
94807
|
+
if (code !== codes.ampersand)
|
|
94808
|
+
return nok(code);
|
|
94809
|
+
effects.enter('looseHtmlEntity');
|
|
94810
|
+
effects.consume(code);
|
|
94811
|
+
return afterAmpersand;
|
|
94812
|
+
};
|
|
94813
|
+
const afterAmpersand = (code) => {
|
|
94814
|
+
if (code === codes.numberSign) {
|
|
94815
|
+
effects.consume(code);
|
|
94816
|
+
return afterHash;
|
|
94817
|
+
}
|
|
94818
|
+
return accumulateNamed(code);
|
|
94819
|
+
};
|
|
94820
|
+
const afterHash = (code) => {
|
|
94821
|
+
if (code === codes.lowercaseX || code === codes.uppercaseX) {
|
|
94822
|
+
effects.consume(code);
|
|
94823
|
+
return accumulateHex;
|
|
94824
|
+
}
|
|
94825
|
+
return accumulateDecimal(code);
|
|
94826
|
+
};
|
|
94827
|
+
const accumulateNamed = (code) => {
|
|
94828
|
+
if (asciiAlphanumeric(code) && length < MAX_ENTITY_LENGTH) {
|
|
94829
|
+
effects.consume(code);
|
|
94830
|
+
length += 1;
|
|
94831
|
+
return accumulateNamed;
|
|
94832
|
+
}
|
|
94833
|
+
if (length === 0)
|
|
94834
|
+
return nok(code);
|
|
94835
|
+
if (code === codes.semicolon)
|
|
94836
|
+
return nok(code);
|
|
94837
|
+
effects.exit('looseHtmlEntity');
|
|
94838
|
+
return ok(code);
|
|
94839
|
+
};
|
|
94840
|
+
const accumulateDecimal = (code) => {
|
|
94841
|
+
if (asciiDigit(code) && length < MAX_ENTITY_LENGTH) {
|
|
94842
|
+
effects.consume(code);
|
|
94843
|
+
length += 1;
|
|
94844
|
+
return accumulateDecimal;
|
|
94845
|
+
}
|
|
94846
|
+
if (length === 0)
|
|
94847
|
+
return nok(code);
|
|
94848
|
+
if (code === codes.semicolon)
|
|
94849
|
+
return nok(code);
|
|
94850
|
+
effects.exit('looseHtmlEntity');
|
|
94851
|
+
return ok(code);
|
|
94852
|
+
};
|
|
94853
|
+
const accumulateHex = (code) => {
|
|
94854
|
+
if (asciiHexDigit(code) && length < MAX_ENTITY_LENGTH) {
|
|
94855
|
+
effects.consume(code);
|
|
94856
|
+
length += 1;
|
|
94857
|
+
return accumulateHex;
|
|
94858
|
+
}
|
|
94859
|
+
if (length === 0)
|
|
94860
|
+
return nok(code);
|
|
94861
|
+
if (code === codes.semicolon)
|
|
94862
|
+
return nok(code);
|
|
94863
|
+
effects.exit('looseHtmlEntity');
|
|
94864
|
+
return ok(code);
|
|
94865
|
+
};
|
|
94866
|
+
return start;
|
|
94867
|
+
}
|
|
94868
|
+
function exitLooseHtmlEntity(token) {
|
|
94869
|
+
const raw = this.sliceSerialize(token);
|
|
94870
|
+
const entityChars = raw.slice(1);
|
|
94871
|
+
if (entityChars.startsWith('#')) {
|
|
94872
|
+
const decoded = resolveEntity(entityChars);
|
|
94873
|
+
if (decoded) {
|
|
94874
|
+
this.enter({ type: 'text', value: decoded }, token);
|
|
94875
|
+
this.exit(token);
|
|
94876
|
+
return;
|
|
94877
|
+
}
|
|
94878
|
+
}
|
|
94879
|
+
else {
|
|
94880
|
+
for (let len = entityChars.length; len >= 2; len -= 1) {
|
|
94881
|
+
const candidate = entityChars.slice(0, len);
|
|
94882
|
+
const decoded = resolveEntity(candidate);
|
|
94883
|
+
if (decoded) {
|
|
94884
|
+
const remainder = entityChars.slice(len);
|
|
94885
|
+
this.enter({ type: 'text', value: decoded + remainder }, token);
|
|
94886
|
+
this.exit(token);
|
|
94887
|
+
return;
|
|
94888
|
+
}
|
|
94889
|
+
}
|
|
94890
|
+
}
|
|
94891
|
+
this.enter({ type: 'text', value: raw }, token);
|
|
94892
|
+
this.exit(token);
|
|
94893
|
+
}
|
|
94894
|
+
function looseHtmlEntity() {
|
|
94895
|
+
return {
|
|
94896
|
+
text: { [codes.ampersand]: looseHtmlEntityConstruct },
|
|
94897
|
+
};
|
|
94898
|
+
}
|
|
94899
|
+
function looseHtmlEntityFromMarkdown() {
|
|
94900
|
+
return {
|
|
94901
|
+
exit: {
|
|
94902
|
+
looseHtmlEntity: exitLooseHtmlEntity,
|
|
94903
|
+
},
|
|
94904
|
+
};
|
|
94905
|
+
}
|
|
94906
|
+
|
|
94907
|
+
;// ./lib/micromark/loose-html-entities/index.ts
|
|
94908
|
+
/**
|
|
94909
|
+
* Micromark extension for HTML entities without semicolons.
|
|
94910
|
+
*
|
|
94911
|
+
* Handles named entities (e.g. ` `, `&`, `©`), decimal numeric
|
|
94912
|
+
* references (e.g. ` `, `©`), and hex numeric references (e.g. ` `,
|
|
94913
|
+
* ` `). Entities that already include the semicolon are left for the
|
|
94914
|
+
* standard parser to handle.
|
|
94915
|
+
*/
|
|
94916
|
+
|
|
94917
|
+
|
|
94474
94918
|
;// ./processor/transform/mdxish/normalize-malformed-md-syntax.ts
|
|
94475
94919
|
|
|
94476
94920
|
// Marker patterns for multi-node emphasis detection
|
|
@@ -94887,6 +95331,11 @@ const EMPTY_CODE_PLACEHOLDER = {
|
|
|
94887
95331
|
|
|
94888
95332
|
|
|
94889
95333
|
|
|
95334
|
+
|
|
95335
|
+
|
|
95336
|
+
|
|
95337
|
+
|
|
95338
|
+
|
|
94890
95339
|
|
|
94891
95340
|
|
|
94892
95341
|
/**
|
|
@@ -94928,18 +95377,23 @@ const preprocessBody = (text) => {
|
|
|
94928
95377
|
};
|
|
94929
95378
|
/** Markdown parser */
|
|
94930
95379
|
const contentParser = unified()
|
|
94931
|
-
.data('micromarkExtensions', [legacyVariable()])
|
|
94932
|
-
.data('fromMarkdownExtensions', [legacyVariableFromMarkdown()])
|
|
95380
|
+
.data('micromarkExtensions', [legacyVariable(), looseHtmlEntity()])
|
|
95381
|
+
.data('fromMarkdownExtensions', [legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()])
|
|
94933
95382
|
.use(remarkParse)
|
|
94934
95383
|
.use(remarkBreaks)
|
|
94935
95384
|
.use(remarkGfm)
|
|
94936
95385
|
.use(normalize_malformed_md_syntax);
|
|
94937
|
-
/**
|
|
95386
|
+
/**
|
|
95387
|
+
* Markdown to HTML processor (mdast → hast → HTML string).
|
|
95388
|
+
*
|
|
95389
|
+
* Uses only strikethrough from GFM instead of the full remarkGfm bundle
|
|
95390
|
+
* since we've had a case where it was causing a stack overflow when parsing HTML blocks containing URLs
|
|
95391
|
+
* such as `<ul><li>https://a</li>\n</ul>` due to subtokenizing recursion for URLs
|
|
95392
|
+
*/
|
|
94938
95393
|
const markdownToHtml = unified()
|
|
94939
|
-
.data('micromarkExtensions', [legacyVariable()])
|
|
94940
|
-
.data('fromMarkdownExtensions', [legacyVariableFromMarkdown()])
|
|
95394
|
+
.data('micromarkExtensions', [gfmStrikethrough(), legacyVariable(), looseHtmlEntity()])
|
|
95395
|
+
.data('fromMarkdownExtensions', [gfmStrikethroughFromMarkdown(), legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()])
|
|
94941
95396
|
.use(remarkParse)
|
|
94942
|
-
.use(remarkGfm)
|
|
94943
95397
|
.use(normalize_malformed_md_syntax)
|
|
94944
95398
|
.use(remarkRehype)
|
|
94945
95399
|
.use(rehypeStringify);
|
|
@@ -94951,7 +95405,12 @@ const htmlStringifier = unified().use(rehypeStringify);
|
|
|
94951
95405
|
const processBackslashEscapes = (text) => text.replace(/\\<([^>]*)>/g, '<$1>').replace(/\\([<>|])/g, (_, c) => (c === '<' ? '<' : c === '>' ? '>' : c));
|
|
94952
95406
|
/** Block-level HTML tags that trigger CommonMark type 6 HTML blocks (condition 6). */
|
|
94953
95407
|
const BLOCK_LEVEL_TAGS = new Set(htmlBlockNames);
|
|
94954
|
-
const escapeInvalidTags = (str) => str.replace(HTML_TAG_RE, (match, tag, rest) => {
|
|
95408
|
+
const escapeInvalidTags = (str) => str.replace(HTML_TAG_RE, (match, tag, rest, offset, input) => {
|
|
95409
|
+
// Don't escape legacy variable syntax like <<var>> since we want to parse it
|
|
95410
|
+
// with the tokenizer and not want the <var> to get parsed as an HTML tag
|
|
95411
|
+
const isLegacyVariable = offset > 0 && input[offset - 1] === '<' && offset < input.length - 1 && input[offset + match.length] === '>';
|
|
95412
|
+
if (isLegacyVariable)
|
|
95413
|
+
return match;
|
|
94955
95414
|
const tagName = tag.replace(/^\//, '');
|
|
94956
95415
|
if (STANDARD_HTML_TAGS.has(tagName.toLowerCase()))
|
|
94957
95416
|
return match;
|
|
@@ -94971,9 +95430,20 @@ const escapeInvalidTags = (str) => str.replace(HTML_TAG_RE, (match, tag, rest) =
|
|
|
94971
95430
|
* (it treats unknown tags as void elements, stripping their children).
|
|
94972
95431
|
*/
|
|
94973
95432
|
const processMarkdownInHtmlString = (html) => {
|
|
95433
|
+
let htmlContent = html;
|
|
95434
|
+
// Replace all occurrences of legacy variable syntax like <<name>> with placeholders so the inner
|
|
95435
|
+
// <name> doesn't get parsed as an HTML tag and the tokenizer can parse it
|
|
95436
|
+
const legacyVars = {};
|
|
95437
|
+
let legacyCounter = 0;
|
|
95438
|
+
htmlContent = htmlContent.replace(new RegExp(variable_.VARIABLE_REGEXP, 'g'), match => {
|
|
95439
|
+
const id = `RDMX_LEGACY_VAR_${(legacyCounter += 1)}_TOKEN`;
|
|
95440
|
+
legacyVars[id] = match;
|
|
95441
|
+
return id;
|
|
95442
|
+
});
|
|
94974
95443
|
const placeholders = [];
|
|
94975
95444
|
let counter = 0;
|
|
94976
|
-
|
|
95445
|
+
// Escape invalid html tags so they don't get parsed as HTML tags
|
|
95446
|
+
const safened = escapeInvalidTags(htmlContent).replace(HTML_TAG_RE, match => {
|
|
94977
95447
|
if (!/^<\/?[A-Z]/.test(match))
|
|
94978
95448
|
return match;
|
|
94979
95449
|
const id = `<!--PC${(counter += 1)}-->`;
|
|
@@ -94984,7 +95454,10 @@ const processMarkdownInHtmlString = (html) => {
|
|
|
94984
95454
|
const textToHast = (text) => {
|
|
94985
95455
|
if (!text.trim())
|
|
94986
95456
|
return [{ type: 'text', value: text }];
|
|
94987
|
-
|
|
95457
|
+
// Restore legacy variables
|
|
95458
|
+
const restoredText = Object.entries(legacyVars).reduce((res, [id, original]) => res.replace(id, original), text);
|
|
95459
|
+
// Cell children might have html that needs to be parsed as markdown
|
|
95460
|
+
const parsed = markdownToHtml.runSync(markdownToHtml.parse(escapeInvalidTags(restoredText)));
|
|
94988
95461
|
const nodes = parsed.children.flatMap(n => n.type === 'element' && n.tagName === 'p' ? n.children : [n]);
|
|
94989
95462
|
const leading = text.match(/^\s+/)?.[0];
|
|
94990
95463
|
const trailing = text.match(/\s+$/)?.[0];
|
|
@@ -96277,9 +96750,6 @@ function terminateHtmlFlowBlocks(content) {
|
|
|
96277
96750
|
return restoreCodeBlocks(result.join('\n'), protectedCode);
|
|
96278
96751
|
}
|
|
96279
96752
|
|
|
96280
|
-
// EXTERNAL MODULE: external "@readme/variable"
|
|
96281
|
-
var variable_ = __webpack_require__(8167);
|
|
96282
|
-
var variable_default = /*#__PURE__*/__webpack_require__.n(variable_);
|
|
96283
96753
|
;// ./processor/transform/mdxish/variables-code.ts
|
|
96284
96754
|
|
|
96285
96755
|
|
|
@@ -97507,6 +97977,9 @@ function loadComponents() {
|
|
|
97507
97977
|
|
|
97508
97978
|
|
|
97509
97979
|
|
|
97980
|
+
|
|
97981
|
+
|
|
97982
|
+
|
|
97510
97983
|
|
|
97511
97984
|
|
|
97512
97985
|
|
|
@@ -97554,10 +98027,12 @@ function mdxishAstProcessor(mdContent, opts = {}) {
|
|
|
97554
98027
|
text: mdxExprExt.text,
|
|
97555
98028
|
};
|
|
97556
98029
|
const processor = unified()
|
|
97557
|
-
.data('micromarkExtensions', safeMode
|
|
98030
|
+
.data('micromarkExtensions', safeMode
|
|
98031
|
+
? [magicBlock(), legacyVariable(), looseHtmlEntity()]
|
|
98032
|
+
: [magicBlock(), mdxExprTextOnly, legacyVariable(), looseHtmlEntity()])
|
|
97558
98033
|
.data('fromMarkdownExtensions', safeMode
|
|
97559
|
-
? [magicBlockFromMarkdown(), legacyVariableFromMarkdown()]
|
|
97560
|
-
: [magicBlockFromMarkdown(), mdxExpressionFromMarkdown(), legacyVariableFromMarkdown()])
|
|
98034
|
+
? [magicBlockFromMarkdown(), legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()]
|
|
98035
|
+
: [magicBlockFromMarkdown(), mdxExpressionFromMarkdown(), legacyVariableFromMarkdown(), emptyTaskListItemFromMarkdown(), looseHtmlEntityFromMarkdown()])
|
|
97561
98036
|
.use(remarkParse)
|
|
97562
98037
|
.use(remarkFrontmatter)
|
|
97563
98038
|
.use(normalize_malformed_md_syntax)
|
|
@@ -97621,6 +98096,7 @@ function mdxish(mdContent, opts = {}) {
|
|
|
97621
98096
|
.use(preserveBooleanProperties) // RehypeRaw converts boolean properties to empty strings
|
|
97622
98097
|
.use(rehypeRaw, { passThrough: ['html-block'] })
|
|
97623
98098
|
.use(restoreBooleanProperties)
|
|
98099
|
+
.use(rehypeFlattenTableCellParagraphs) // Remove <p> wrappers inside table cells to prevent margin issues
|
|
97624
98100
|
.use(mdxish_mermaid) // Add mermaid-render className to pre wrappers
|
|
97625
98101
|
.use(heading_slugs)
|
|
97626
98102
|
.use(rehypeMdxishComponents, {
|