@gmb/bitmark-parser-generator 5.31.0 → 5.32.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.
@@ -3135,11 +3135,16 @@ var CARDSETS = {
3135
3135
  exportJsonKey: { "@bit": { heading: { forKeys: "$" } } }
3136
3136
  },
3137
3137
  {
3138
+ // Axis-side `[@isCaseSensitive]` is a cascade SOURCE
3139
+ // only: it must fire (so value-side cells inherit via
3140
+ // `$ancestor`) but emit nothing itself — emission is
3141
+ // owned by the value-side's cell-nested rule
3142
+ // (`cells[$s].isCaseSensitive`, PLAN-122). The earlier
3143
+ // flat `$ancestor` rule here double-emitted at bit
3144
+ // scope and broke the `optimize(fullize(x)) ==
3145
+ // optimize(x)` law on match-matrix.
3138
3146
  key: ConfigKey.property_isCaseSensitive,
3139
- exportJsonKey: [
3140
- { "@absent": { isCaseSensitive: "$ancestor" } },
3141
- { isCaseSensitive: "$" }
3142
- ],
3147
+ exportJsonKey: {},
3143
3148
  description: "Property to indicate if the match is case sensitive.",
3144
3149
  format: TagFormat.boolean
3145
3150
  }
@@ -3245,10 +3250,17 @@ var CARDSETS = {
3245
3250
  ]
3246
3251
  },
3247
3252
  {
3253
+ // matchMatrix cells are NESTED (`cells[$s]`), unlike matchPairs'
3254
+ // flat pair object — so `isCaseSensitive` must be written INTO the
3255
+ // cell, mirroring the sibling `example` rule above (`cells: { $s:
3256
+ // {...} }`). The earlier flat `{ isCaseSensitive: '$' }` (copied
3257
+ // from matchPairs) wrote at bit scope, so an authored cell-side
3258
+ // `[@isCaseSensitive:false]` (e.g. on a `++` value) was dropped
3259
+ // instead of landing on the cell. PLAN-122.
3248
3260
  key: ConfigKey.property_isCaseSensitive,
3249
3261
  exportJsonKey: [
3250
- { "@absent": { isCaseSensitive: "$ancestor" } },
3251
- { isCaseSensitive: "$" }
3262
+ { "@absent": { cells: { $s: { isCaseSensitive: "$ancestor" } } } },
3263
+ { cells: { $s: { isCaseSensitive: "$" } } }
3252
3264
  ],
3253
3265
  description: "Property to indicate if the match is case sensitive.",
3254
3266
  format: TagFormat.boolean
@@ -5012,18 +5024,16 @@ var GROUPS = {
5012
5024
  description: "Item, lead, page number, margin number, instruction and hint tags"
5013
5025
  },
5014
5026
  {
5015
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5016
- // `@example` from the bit header marks EVERY choice with
5017
- // `isExample: true` (matches BPG output), but only the
5018
- // FIRST correct choice gets `example: true` (BPG
5019
- // `fillBooleanExample(..., firstCorrectOnly=true)`).
5020
- //
5021
- // Two `@absent` rules, picked first-match-wins:
5022
- // 1. Verbose form gated on `@parent.isCorrect=true` with
5023
- // `maxEmits:1` fires once for the first correct.
5024
- // 2. Plain `@absent` fires on every remaining entry
5025
- // (subsequent corrects and all incorrects), emitting
5026
- // `isExample` only.
5027
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5028
+ // bpg 5.31 probing: cascade-fired `@example` decorates only
5029
+ // the FIRST correct choice (`example: true` via the
5030
+ // `@parent.isCorrect`-gated `@absent` rule, `maxEmits:1`
5031
+ // BPG `fillBooleanExample(..., firstCorrectOnly=true)`).
5032
+ // There is deliberately NO plain `@absent` rule: an ancestor
5033
+ // bare example must leave the remaining choices untouched
5034
+ // (a plain `@absent` decoration broke the
5035
+ // `optimize(fullize(x)) == optimize(x)` law the
5036
+ // synthesized `isExample` keys survived re-optimization).
5027
5037
  // The `serialize_cards` cascade-counter scope holds the cap
5028
5038
  // across the whole cardset.
5029
5039
  // @card scope-shift writes choice-container isExample (e.g.
@@ -5051,13 +5061,6 @@ var GROUPS = {
5051
5061
  "@card": { isExample: true }
5052
5062
  }
5053
5063
  },
5054
- {
5055
- "@absent": {
5056
- isExample: true,
5057
- "@bit": { isExample: true },
5058
- "@card": { isExample: true }
5059
- }
5060
- },
5061
5064
  {
5062
5065
  isExample: true,
5063
5066
  example: "$",
@@ -5099,11 +5102,13 @@ var GROUPS = {
5099
5102
  description: "Item, lead, page number, margin number, instruction and hint tags"
5100
5103
  },
5101
5104
  {
5102
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5103
- // `@example` on a `-` (incorrect choice) emits
5104
- // `isExample: true` only — no `example` (BPG fixtures show
5105
- // `isExample` on every choice, but `example` only on the
5106
- // first correct via firstCorrectOnly cascade).
5105
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5106
+ // bpg 5.31 probing: an ancestor bare `@example` leaves
5107
+ // incorrect choices UNTOUCHED — no cascade decoration at
5108
+ // all (no `@absent` rule; a plain `@absent isExample`
5109
+ // decoration broke the `optimize(fullize(x)) ==
5110
+ // optimize(x)` law). Only an explicit `[@example]` on the
5111
+ // choice itself emits.
5107
5112
  // @card scope-shift writes choice-container isExample.
5108
5113
  key: ConfigKey.property_example,
5109
5114
  jsonKey: "example",
@@ -5116,13 +5121,6 @@ var GROUPS = {
5116
5121
  "@card": { isExample: true }
5117
5122
  }
5118
5123
  },
5119
- {
5120
- "@absent": {
5121
- isExample: true,
5122
- "@bit": { isExample: true },
5123
- "@card": { isExample: true }
5124
- }
5125
- },
5126
5124
  {
5127
5125
  isExample: true,
5128
5126
  example: "$",
@@ -5130,7 +5128,7 @@ var GROUPS = {
5130
5128
  "@card": { isExample: true }
5131
5129
  }
5132
5130
  ],
5133
- description: "An example for the true/false statement/question (incorrect entry \u2014 isExample only on cascade)",
5131
+ description: "An example for the true/false statement/question (incorrect entry \u2014 no cascade decoration: an ancestor bare example leaves incorrect choices untouched, bpg 5.31)",
5134
5132
  format: TagFormat.boolean,
5135
5133
  nullable: true
5136
5134
  }
@@ -7189,7 +7187,9 @@ var BITS = {
7189
7187
  description: "Common tags for quiz bits"
7190
7188
  },
7191
7189
  {
7192
- exportJsonKey: { title: "$" },
7190
+ maxCount: 2,
7191
+ jsonKey: "title|multi(count=2, key=subtitle)",
7192
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7193
7193
  key: ConfigKey.tag_title,
7194
7194
  description: "The title of the flashcard quiz"
7195
7195
  },
@@ -7294,7 +7294,9 @@ var BITS = {
7294
7294
  description: "Article bit, used for articles / paragraphs",
7295
7295
  tags: [
7296
7296
  {
7297
- exportJsonKey: { title: "$" },
7297
+ maxCount: 2,
7298
+ jsonKey: "title|multi(count=2, key=subtitle)",
7299
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7298
7300
  key: ConfigKey.tag_title,
7299
7301
  description: "The title of the article"
7300
7302
  }
@@ -9260,7 +9262,9 @@ var BITS = {
9260
9262
  description: "Example bit, used to provide examples in articles or books",
9261
9263
  tags: [
9262
9264
  {
9263
- exportJsonKey: { title: "$" },
9265
+ maxCount: 2,
9266
+ jsonKey: "title|multi(count=2, key=subtitle)",
9267
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
9264
9268
  key: ConfigKey.tag_title,
9265
9269
  description: "The title of the example"
9266
9270
  },
@@ -11861,7 +11865,9 @@ var BITS = {
11861
11865
  description: "Page bit, used to create pages in articles or books",
11862
11866
  tags: [
11863
11867
  {
11864
- exportJsonKey: { title: "$" },
11868
+ maxCount: 2,
11869
+ jsonKey: "title|multi(count=2, key=subtitle)",
11870
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
11865
11871
  key: ConfigKey.tag_title,
11866
11872
  description: "Title of the page, used to display the page title"
11867
11873
  },
@@ -12319,7 +12325,9 @@ var BITS = {
12319
12325
  description: "Review note bit, used to create review notes in articles or books",
12320
12326
  tags: [
12321
12327
  {
12322
- exportJsonKey: { title: "$" },
12328
+ maxCount: 2,
12329
+ jsonKey: "title|multi(count=2, key=subtitle)",
12330
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
12323
12331
  key: ConfigKey.tag_title,
12324
12332
  description: "Title of the review note, used to display the note title"
12325
12333
  },
@@ -13905,7 +13913,7 @@ var instance2 = new Config();
13905
13913
  // src/generated/package_info.ts
13906
13914
  var PACKAGE_INFO = {
13907
13915
  "name": "@gmb/bitmark-parser-generator",
13908
- "version": "5.31.0",
13916
+ "version": "5.32.0",
13909
13917
  "author": "Get More Brain Ltd",
13910
13918
  "license": "ISC",
13911
13919
  "description": "A bitmark parser and generator using Peggy.js"
@@ -14180,6 +14188,7 @@ var TextMarkType = {
14180
14188
  del: "del",
14181
14189
  underline: "underline",
14182
14190
  doubleUnderline: "doubleUnderline",
14191
+ smallcaps: "smallcaps",
14183
14192
  circle: "circle",
14184
14193
  languageEmRed: "languageEmRed",
14185
14194
  languageEmOrange: "languageEmOrange",
@@ -14211,7 +14220,10 @@ var TextMarkType = {
14211
14220
  code: "code",
14212
14221
  timer: "timer",
14213
14222
  duration: "duration",
14223
+ // legacy: no longer produced by the parser (>= 8.41.1), accepted as generator input
14214
14224
  color: "color",
14225
+ // legacy: no longer produced by the parser (>= 8.41.1, now textStyle), accepted as generator input
14226
+ textStyle: "textStyle",
14215
14227
  colorPicker: "colorPicker",
14216
14228
  comment: "comment"
14217
14229
  };
@@ -15796,6 +15808,7 @@ var INLINE_MARK_TYPES = [
15796
15808
  TextMarkType.del,
15797
15809
  TextMarkType.underline,
15798
15810
  TextMarkType.doubleUnderline,
15811
+ TextMarkType.smallcaps,
15799
15812
  TextMarkType.circle,
15800
15813
  TextMarkType.languageEmRed,
15801
15814
  TextMarkType.languageEmOrange,
@@ -15826,11 +15839,24 @@ var INLINE_MARK_TYPES = [
15826
15839
  TextMarkType.var,
15827
15840
  TextMarkType.code,
15828
15841
  TextMarkType.timer,
15829
- TextMarkType.duration,
15830
15842
  TextMarkType.color,
15843
+ // legacy input, written as color: (same as textStyle)
15844
+ TextMarkType.textStyle,
15831
15845
  TextMarkType.colorPicker,
15832
15846
  TextMarkType.comment
15833
15847
  ];
15848
+ var HIGHLIGHT_COLORS = [
15849
+ "orange",
15850
+ "yellow",
15851
+ "green",
15852
+ "blue",
15853
+ "purple",
15854
+ "pink",
15855
+ "brown",
15856
+ "white",
15857
+ "black",
15858
+ "gray"
15859
+ ];
15834
15860
  var INDENTATION_REGEX = new RegExp(/(\n|\r\n)/, "g");
15835
15861
  var LINK_REGEX = new RegExp(/https?:\/\/|mailto:(.*)/, "g");
15836
15862
  var LINK_BREAKSCAPE_REGEX = new RegExp(/\]/, "g");
@@ -16394,14 +16420,16 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16394
16420
  this.writeMarkTextWrapper(INLINE_MARK);
16395
16421
  return;
16396
16422
  }
16397
- const singleMark = node.marks.length === 1 && forceSingleMark;
16398
- const markStartEnd = node.marks.reduce(
16423
+ const marks = this.getWritableMarks(node.marks);
16424
+ if (marks.length === 0) return;
16425
+ const singleMark = marks.length === 1 && forceSingleMark;
16426
+ const markStartEnd = marks.reduce(
16399
16427
  (acc, mark) => {
16400
16428
  if (acc) return acc;
16401
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16429
+ if (this.isStandardMark(mark)) {
16402
16430
  if (singleMark) return STANDARD_MARKS[mark.type];
16403
16431
  return INLINE_MARK;
16404
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16432
+ } else if (this.isInlineMark(mark)) {
16405
16433
  return INLINE_MARK;
16406
16434
  } else {
16407
16435
  }
@@ -16416,8 +16444,8 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16416
16444
  this.writeMarkTextWrapper(markStartEnd);
16417
16445
  }
16418
16446
  if (stage == Stage.between) {
16419
- for (const mark of node.marks) {
16420
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16447
+ for (const mark of marks) {
16448
+ if (this.isStandardMark(mark)) {
16421
16449
  if (!singleMark) {
16422
16450
  this.writeInlineMarkStartEnd();
16423
16451
  this.writeInlineMark(mark);
@@ -16446,7 +16474,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16446
16474
  } else if (TextMarkType.symbol === mark.type) {
16447
16475
  this.writeInlineMarkStartEnd();
16448
16476
  this.writeSymbolMark(mark);
16449
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16477
+ } else if (this.isInlineMark(mark)) {
16450
16478
  this.writeInlineMarkStartEnd();
16451
16479
  this.writeInlineMark(mark);
16452
16480
  } else {
@@ -16455,12 +16483,12 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16455
16483
  }
16456
16484
  if (stage == Stage.exit) {
16457
16485
  let inlineMarkWritten = false;
16458
- for (const mark of node.marks) {
16459
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16486
+ for (const mark of marks) {
16487
+ if (this.isStandardMark(mark)) {
16460
16488
  if (!singleMark) {
16461
16489
  inlineMarkWritten = true;
16462
16490
  }
16463
- } else if (TextMarkType.comment === mark.type || TextMarkType.link === mark.type || TextMarkType.ref === mark.type || TextMarkType.xref === mark.type || TextMarkType.footnote === mark.type || TextMarkType.footnoteStar === mark.type || INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16491
+ } else if (TextMarkType.comment === mark.type || TextMarkType.link === mark.type || TextMarkType.ref === mark.type || TextMarkType.xref === mark.type || TextMarkType.footnote === mark.type || TextMarkType.footnoteStar === mark.type || this.isInlineMark(mark)) {
16464
16492
  inlineMarkWritten = true;
16465
16493
  } else {
16466
16494
  }
@@ -16541,8 +16569,15 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16541
16569
  if (node.attrs == null || !node.attrs.src) return;
16542
16570
  const attrs = node.attrs;
16543
16571
  const inlineImage = node.type === TextNodeType.imageInline;
16572
+ let ignoreAttributes;
16573
+ if (inlineImage) {
16574
+ ignoreAttributes = /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]);
16575
+ const a = attrs;
16576
+ if (a.alignmentVertical === "top") ignoreAttributes.add("alignmentVertical");
16577
+ if (a.size === "line-height") ignoreAttributes.add("size");
16578
+ }
16544
16579
  const mediaAttrs = this.getMediaAttrs(inlineImage ? "imageInline" : "image", attrs, {
16545
- ignoreAttributes: inlineImage ? /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]) : void 0
16580
+ ignoreAttributes
16546
16581
  });
16547
16582
  let s = "";
16548
16583
  if (inlineImage) {
@@ -16572,16 +16607,87 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16572
16607
  if (s) this.write(s);
16573
16608
  }
16574
16609
  writeInlineMark(mark) {
16575
- let s = `${mark.type}`;
16576
- if (mark.attrs) {
16577
- for (const [k, v] of Object.entries(mark.attrs)) {
16578
- if (k === "language" && v !== "plain text" || k === "color" || k === "propertyRef" || k === "name" || k === "duration") {
16579
- s = `${s}:${v}`;
16610
+ const attrs = mark.attrs ?? {};
16611
+ let s;
16612
+ switch (mark.type) {
16613
+ case TextMarkType.textStyle:
16614
+ case TextMarkType.color:
16615
+ s = `color:${attrs.color ?? ""}`;
16616
+ break;
16617
+ case TextMarkType.timer:
16618
+ s = attrs.name ? `timer:${attrs.name}` : "timer";
16619
+ s += `|duration:${attrs.duration ?? ""}`;
16620
+ break;
16621
+ case TextMarkType.highlight:
16622
+ case TextMarkType.userHighlight:
16623
+ s = attrs.color ? `${mark.type}|color:${attrs.color}` : `${mark.type}`;
16624
+ break;
16625
+ default: {
16626
+ s = `${mark.type}`;
16627
+ for (const [k, v] of Object.entries(attrs)) {
16628
+ if (k === "language" && v !== "plain text" || k === "propertyRef" || k === "name") {
16629
+ s = `${s}:${v}`;
16630
+ }
16580
16631
  }
16581
16632
  }
16582
16633
  }
16583
16634
  this.write(s);
16584
16635
  }
16636
+ /**
16637
+ * Resolve the marks of a text node into the marks that will actually be written.
16638
+ *
16639
+ * - Merges a legacy standalone 'duration' mark into its sibling 'timer' mark.
16640
+ * - Drops marks the current grammar cannot express (standalone 'duration', 'timer'
16641
+ * without a duration).
16642
+ * - Moves a 'textStyle'/'color' mark before a preceding bare 'highlight'/'userHighlight'
16643
+ * mark when its color is a valid highlight color; written in the original order the
16644
+ * output would re-parse as a highlight-with-color compound mark and change meaning.
16645
+ */
16646
+ getWritableMarks(nodeMarks) {
16647
+ const attrsOf = (m) => m.attrs ?? {};
16648
+ let marks = [...nodeMarks];
16649
+ const timer = marks.find((m) => m.type === TextMarkType.timer);
16650
+ const duration = marks.find((m) => m.type === TextMarkType.duration);
16651
+ if (timer && duration && !attrsOf(timer).duration) {
16652
+ marks = marks.map(
16653
+ (m) => m === timer ? {
16654
+ ...timer,
16655
+ attrs: { ...attrsOf(timer), duration: attrsOf(duration).duration }
16656
+ } : m
16657
+ );
16658
+ }
16659
+ marks = marks.filter((m) => {
16660
+ if (m.type === TextMarkType.duration) return false;
16661
+ if (m.type === TextMarkType.timer) return !!attrsOf(m).duration;
16662
+ return true;
16663
+ });
16664
+ const isBareHighlight = (m) => (m.type === TextMarkType.highlight || m.type === TextMarkType.userHighlight) && !attrsOf(m).color;
16665
+ const isHighlightColorStyle = (m) => (m.type === TextMarkType.textStyle || m.type === TextMarkType.color) && HIGHLIGHT_COLORS.indexOf(attrsOf(m).color) !== -1;
16666
+ for (let i = 0; i < marks.length - 1; i++) {
16667
+ if (isBareHighlight(marks[i]) && isHighlightColorStyle(marks[i + 1])) {
16668
+ const tmp = marks[i];
16669
+ marks[i] = marks[i + 1];
16670
+ marks[i + 1] = tmp;
16671
+ }
16672
+ }
16673
+ return marks;
16674
+ }
16675
+ /**
16676
+ * True if the mark is written using its standard form (e.g. **bold**, !!highlight!!)
16677
+ * when it is the only mark. A highlight mark with a color attribute is excluded - it
16678
+ * can only be expressed using the inline chain form (==text==|highlight|color:x|).
16679
+ */
16680
+ isStandardMark(mark) {
16681
+ if (STANDARD_MARK_TYPES.indexOf(mark.type) === -1) return false;
16682
+ return !(mark.attrs && mark.attrs.color);
16683
+ }
16684
+ /**
16685
+ * True if the mark is written using the inline chain form (==text==|mark|).
16686
+ */
16687
+ isInlineMark(mark) {
16688
+ if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) return true;
16689
+ return mark.type === TextMarkType.highlight && !!(mark.attrs && mark.attrs.color);
16690
+ }
16585
16691
  writeCommentMark(mark) {
16586
16692
  const comment = mark.comment || "";
16587
16693
  const s = `#${comment}`;
@@ -16786,7 +16892,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16786
16892
  };
16787
16893
 
16788
16894
  // src/generated/parser/text/text-peggy-parser.js
16789
- var VERSION = "8.37.3";
16895
+ var VERSION = "8.41.1";
16790
16896
  function unbreakscape(str) {
16791
16897
  if (typeof str !== "string") return null;
16792
16898
  return instance3.unbreakscape(str);
@@ -17001,87 +17107,88 @@ function peg$parse(input, options) {
17001
17107
  const peg$c60 = "var:";
17002
17108
  const peg$c61 = "code:";
17003
17109
  const peg$c62 = "timer";
17004
- const peg$c63 = "timer:";
17005
- const peg$c64 = "duration:";
17006
- const peg$c65 = "P";
17007
- const peg$c66 = "color:";
17008
- const peg$c67 = "colorPicker:";
17009
- const peg$c68 = "|\u25BA";
17010
- const peg$c69 = "bold";
17011
- const peg$c70 = "italic";
17012
- const peg$c71 = "light";
17013
- const peg$c72 = "highlightOrange";
17014
- const peg$c73 = "highlightYellow";
17015
- const peg$c74 = "highlightGreen";
17016
- const peg$c75 = "highlightBlue";
17017
- const peg$c76 = "highlightPurple";
17018
- const peg$c77 = "highlightPink";
17019
- const peg$c78 = "highlightBrown";
17020
- const peg$c79 = "highlightBlack";
17021
- const peg$c80 = "highlightWhite";
17022
- const peg$c81 = "highlightGray";
17023
- const peg$c82 = "highlight";
17024
- const peg$c83 = "strike";
17025
- const peg$c84 = "subscript";
17026
- const peg$c85 = "superscript";
17027
- const peg$c86 = "ins";
17028
- const peg$c87 = "del";
17029
- const peg$c88 = "underline";
17030
- const peg$c89 = "doubleUnderline";
17031
- const peg$c90 = "circle";
17032
- const peg$c91 = "languageEmRed";
17033
- const peg$c92 = "languageEmOrange";
17034
- const peg$c93 = "languageEmYellow";
17035
- const peg$c94 = "languageEmGreen";
17036
- const peg$c95 = "languageEmBlue";
17037
- const peg$c96 = "languageEmPurple";
17038
- const peg$c97 = "languageEmPink";
17039
- const peg$c98 = "languageEmBrown";
17040
- const peg$c99 = "languageEmBlack";
17041
- const peg$c100 = "languageEmWhite";
17042
- const peg$c101 = "languageEmGray";
17043
- const peg$c102 = "languageEm";
17044
- const peg$c103 = "userUnderline";
17045
- const peg$c104 = "userDoubleUnderline";
17046
- const peg$c105 = "userStrike";
17047
- const peg$c106 = "userCircle";
17048
- const peg$c107 = "userHighlight";
17049
- const peg$c108 = "notranslate";
17050
- const peg$c109 = "aqua";
17051
- const peg$c110 = "black";
17052
- const peg$c111 = "blue";
17053
- const peg$c112 = "brown";
17054
- const peg$c113 = "fuchsia";
17055
- const peg$c114 = "lightgrey";
17056
- const peg$c115 = "gray";
17057
- const peg$c116 = "darkgray";
17058
- const peg$c117 = "green";
17059
- const peg$c118 = "lime";
17060
- const peg$c119 = "magenta";
17061
- const peg$c120 = "maroon";
17062
- const peg$c121 = "navy";
17063
- const peg$c122 = "olive";
17064
- const peg$c123 = "orange";
17065
- const peg$c124 = "pink";
17066
- const peg$c125 = "purple";
17067
- const peg$c126 = "red";
17068
- const peg$c127 = "silver";
17069
- const peg$c128 = "teal";
17070
- const peg$c129 = "violet";
17071
- const peg$c130 = "white";
17072
- const peg$c131 = "yellow";
17073
- const peg$c132 = "*";
17074
- const peg$c133 = "_";
17075
- const peg$c134 = "`";
17076
- const peg$c135 = "!";
17077
- const peg$c136 = "[!";
17078
- const peg$c137 = "]";
17079
- const peg$c138 = "\n";
17080
- const peg$c139 = "\r\n";
17081
- const peg$c140 = "http";
17082
- const peg$c141 = "s";
17083
- const peg$c142 = "://";
17084
- const peg$c143 = "mailto:";
17110
+ const peg$c63 = "duration:";
17111
+ const peg$c64 = "P";
17112
+ const peg$c65 = "timer:";
17113
+ const peg$c66 = "highlight";
17114
+ const peg$c67 = "color:";
17115
+ const peg$c68 = "userHighlight";
17116
+ const peg$c69 = "colorPicker:";
17117
+ const peg$c70 = "|\u25BA";
17118
+ const peg$c71 = "bold";
17119
+ const peg$c72 = "italic";
17120
+ const peg$c73 = "light";
17121
+ const peg$c74 = "highlightOrange";
17122
+ const peg$c75 = "highlightYellow";
17123
+ const peg$c76 = "highlightGreen";
17124
+ const peg$c77 = "highlightBlue";
17125
+ const peg$c78 = "highlightPurple";
17126
+ const peg$c79 = "highlightPink";
17127
+ const peg$c80 = "highlightBrown";
17128
+ const peg$c81 = "highlightBlack";
17129
+ const peg$c82 = "highlightWhite";
17130
+ const peg$c83 = "highlightGray";
17131
+ const peg$c84 = "strike";
17132
+ const peg$c85 = "subscript";
17133
+ const peg$c86 = "superscript";
17134
+ const peg$c87 = "ins";
17135
+ const peg$c88 = "del";
17136
+ const peg$c89 = "underline";
17137
+ const peg$c90 = "doubleUnderline";
17138
+ const peg$c91 = "smallcaps";
17139
+ const peg$c92 = "circle";
17140
+ const peg$c93 = "languageEmRed";
17141
+ const peg$c94 = "languageEmOrange";
17142
+ const peg$c95 = "languageEmYellow";
17143
+ const peg$c96 = "languageEmGreen";
17144
+ const peg$c97 = "languageEmBlue";
17145
+ const peg$c98 = "languageEmPurple";
17146
+ const peg$c99 = "languageEmPink";
17147
+ const peg$c100 = "languageEmBrown";
17148
+ const peg$c101 = "languageEmBlack";
17149
+ const peg$c102 = "languageEmWhite";
17150
+ const peg$c103 = "languageEmGray";
17151
+ const peg$c104 = "languageEm";
17152
+ const peg$c105 = "userUnderline";
17153
+ const peg$c106 = "userDoubleUnderline";
17154
+ const peg$c107 = "userStrike";
17155
+ const peg$c108 = "userCircle";
17156
+ const peg$c109 = "notranslate";
17157
+ const peg$c110 = "aqua";
17158
+ const peg$c111 = "black";
17159
+ const peg$c112 = "blue";
17160
+ const peg$c113 = "brown";
17161
+ const peg$c114 = "fuchsia";
17162
+ const peg$c115 = "lightgrey";
17163
+ const peg$c116 = "gray";
17164
+ const peg$c117 = "darkgray";
17165
+ const peg$c118 = "green";
17166
+ const peg$c119 = "lime";
17167
+ const peg$c120 = "magenta";
17168
+ const peg$c121 = "maroon";
17169
+ const peg$c122 = "navy";
17170
+ const peg$c123 = "olive";
17171
+ const peg$c124 = "orange";
17172
+ const peg$c125 = "pink";
17173
+ const peg$c126 = "purple";
17174
+ const peg$c127 = "red";
17175
+ const peg$c128 = "silver";
17176
+ const peg$c129 = "teal";
17177
+ const peg$c130 = "violet";
17178
+ const peg$c131 = "white";
17179
+ const peg$c132 = "yellow";
17180
+ const peg$c133 = "*";
17181
+ const peg$c134 = "_";
17182
+ const peg$c135 = "`";
17183
+ const peg$c136 = "!";
17184
+ const peg$c137 = "[!";
17185
+ const peg$c138 = "]";
17186
+ const peg$c139 = "\n";
17187
+ const peg$c140 = "\r\n";
17188
+ const peg$c141 = "http";
17189
+ const peg$c142 = "s";
17190
+ const peg$c143 = "://";
17191
+ const peg$c144 = "mailto:";
17085
17192
  const peg$r0 = /^[ \t]/;
17086
17193
  const peg$r1 = /^[0-9]/;
17087
17194
  const peg$r2 = /^[\r\u2028-\u2029]/;
@@ -17154,91 +17261,92 @@ function peg$parse(input, options) {
17154
17261
  const peg$e64 = peg$literalExpectation("var:", false);
17155
17262
  const peg$e65 = peg$literalExpectation("code:", false);
17156
17263
  const peg$e66 = peg$literalExpectation("timer", false);
17157
- const peg$e67 = peg$literalExpectation("timer:", false);
17158
- const peg$e68 = peg$literalExpectation("duration:", false);
17159
- const peg$e69 = peg$literalExpectation("P", false);
17160
- const peg$e70 = peg$literalExpectation("color:", false);
17161
- const peg$e71 = peg$literalExpectation("colorPicker:", false);
17162
- const peg$e72 = peg$literalExpectation("|\u25BA", false);
17163
- const peg$e73 = peg$literalExpectation("bold", false);
17164
- const peg$e74 = peg$literalExpectation("italic", false);
17165
- const peg$e75 = peg$literalExpectation("light", false);
17166
- const peg$e76 = peg$literalExpectation("highlightOrange", false);
17167
- const peg$e77 = peg$literalExpectation("highlightYellow", false);
17168
- const peg$e78 = peg$literalExpectation("highlightGreen", false);
17169
- const peg$e79 = peg$literalExpectation("highlightBlue", false);
17170
- const peg$e80 = peg$literalExpectation("highlightPurple", false);
17171
- const peg$e81 = peg$literalExpectation("highlightPink", false);
17172
- const peg$e82 = peg$literalExpectation("highlightBrown", false);
17173
- const peg$e83 = peg$literalExpectation("highlightBlack", false);
17174
- const peg$e84 = peg$literalExpectation("highlightWhite", false);
17175
- const peg$e85 = peg$literalExpectation("highlightGray", false);
17176
- const peg$e86 = peg$literalExpectation("highlight", false);
17177
- const peg$e87 = peg$literalExpectation("strike", false);
17178
- const peg$e88 = peg$literalExpectation("subscript", false);
17179
- const peg$e89 = peg$literalExpectation("superscript", false);
17180
- const peg$e90 = peg$literalExpectation("ins", false);
17181
- const peg$e91 = peg$literalExpectation("del", false);
17182
- const peg$e92 = peg$literalExpectation("underline", false);
17183
- const peg$e93 = peg$literalExpectation("doubleUnderline", false);
17184
- const peg$e94 = peg$literalExpectation("circle", false);
17185
- const peg$e95 = peg$literalExpectation("languageEmRed", false);
17186
- const peg$e96 = peg$literalExpectation("languageEmOrange", false);
17187
- const peg$e97 = peg$literalExpectation("languageEmYellow", false);
17188
- const peg$e98 = peg$literalExpectation("languageEmGreen", false);
17189
- const peg$e99 = peg$literalExpectation("languageEmBlue", false);
17190
- const peg$e100 = peg$literalExpectation("languageEmPurple", false);
17191
- const peg$e101 = peg$literalExpectation("languageEmPink", false);
17192
- const peg$e102 = peg$literalExpectation("languageEmBrown", false);
17193
- const peg$e103 = peg$literalExpectation("languageEmBlack", false);
17194
- const peg$e104 = peg$literalExpectation("languageEmWhite", false);
17195
- const peg$e105 = peg$literalExpectation("languageEmGray", false);
17196
- const peg$e106 = peg$literalExpectation("languageEm", false);
17197
- const peg$e107 = peg$literalExpectation("userUnderline", false);
17198
- const peg$e108 = peg$literalExpectation("userDoubleUnderline", false);
17199
- const peg$e109 = peg$literalExpectation("userStrike", false);
17200
- const peg$e110 = peg$literalExpectation("userCircle", false);
17201
- const peg$e111 = peg$literalExpectation("userHighlight", false);
17202
- const peg$e112 = peg$literalExpectation("notranslate", false);
17203
- const peg$e113 = peg$literalExpectation("aqua", false);
17204
- const peg$e114 = peg$literalExpectation("black", false);
17205
- const peg$e115 = peg$literalExpectation("blue", false);
17206
- const peg$e116 = peg$literalExpectation("brown", false);
17207
- const peg$e117 = peg$literalExpectation("fuchsia", false);
17208
- const peg$e118 = peg$literalExpectation("lightgrey", false);
17209
- const peg$e119 = peg$literalExpectation("gray", false);
17210
- const peg$e120 = peg$literalExpectation("darkgray", false);
17211
- const peg$e121 = peg$literalExpectation("green", false);
17212
- const peg$e122 = peg$literalExpectation("lime", false);
17213
- const peg$e123 = peg$literalExpectation("magenta", false);
17214
- const peg$e124 = peg$literalExpectation("maroon", false);
17215
- const peg$e125 = peg$literalExpectation("navy", false);
17216
- const peg$e126 = peg$literalExpectation("olive", false);
17217
- const peg$e127 = peg$literalExpectation("orange", false);
17218
- const peg$e128 = peg$literalExpectation("pink", false);
17219
- const peg$e129 = peg$literalExpectation("purple", false);
17220
- const peg$e130 = peg$literalExpectation("red", false);
17221
- const peg$e131 = peg$literalExpectation("silver", false);
17222
- const peg$e132 = peg$literalExpectation("teal", false);
17223
- const peg$e133 = peg$literalExpectation("violet", false);
17224
- const peg$e134 = peg$literalExpectation("white", false);
17225
- const peg$e135 = peg$literalExpectation("yellow", false);
17226
- const peg$e136 = peg$literalExpectation("*", false);
17227
- const peg$e137 = peg$literalExpectation("_", false);
17228
- const peg$e138 = peg$literalExpectation("`", false);
17229
- const peg$e139 = peg$literalExpectation("!", false);
17230
- const peg$e140 = peg$literalExpectation("[!", false);
17231
- const peg$e141 = peg$literalExpectation("]", false);
17232
- const peg$e142 = peg$otherExpectation("Line Terminator");
17233
- const peg$e143 = peg$literalExpectation("\n", false);
17234
- const peg$e144 = peg$literalExpectation("\r\n", false);
17235
- const peg$e145 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17236
- const peg$e146 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17237
- const peg$e147 = peg$literalExpectation("http", false);
17238
- const peg$e148 = peg$literalExpectation("s", false);
17239
- const peg$e149 = peg$literalExpectation("://", false);
17240
- const peg$e150 = peg$literalExpectation("mailto:", false);
17241
- const peg$e151 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17264
+ const peg$e67 = peg$literalExpectation("duration:", false);
17265
+ const peg$e68 = peg$literalExpectation("P", false);
17266
+ const peg$e69 = peg$literalExpectation("timer:", false);
17267
+ const peg$e70 = peg$literalExpectation("highlight", false);
17268
+ const peg$e71 = peg$literalExpectation("color:", false);
17269
+ const peg$e72 = peg$literalExpectation("userHighlight", false);
17270
+ const peg$e73 = peg$literalExpectation("colorPicker:", false);
17271
+ const peg$e74 = peg$literalExpectation("|\u25BA", false);
17272
+ const peg$e75 = peg$literalExpectation("bold", false);
17273
+ const peg$e76 = peg$literalExpectation("italic", false);
17274
+ const peg$e77 = peg$literalExpectation("light", false);
17275
+ const peg$e78 = peg$literalExpectation("highlightOrange", false);
17276
+ const peg$e79 = peg$literalExpectation("highlightYellow", false);
17277
+ const peg$e80 = peg$literalExpectation("highlightGreen", false);
17278
+ const peg$e81 = peg$literalExpectation("highlightBlue", false);
17279
+ const peg$e82 = peg$literalExpectation("highlightPurple", false);
17280
+ const peg$e83 = peg$literalExpectation("highlightPink", false);
17281
+ const peg$e84 = peg$literalExpectation("highlightBrown", false);
17282
+ const peg$e85 = peg$literalExpectation("highlightBlack", false);
17283
+ const peg$e86 = peg$literalExpectation("highlightWhite", false);
17284
+ const peg$e87 = peg$literalExpectation("highlightGray", false);
17285
+ const peg$e88 = peg$literalExpectation("strike", false);
17286
+ const peg$e89 = peg$literalExpectation("subscript", false);
17287
+ const peg$e90 = peg$literalExpectation("superscript", false);
17288
+ const peg$e91 = peg$literalExpectation("ins", false);
17289
+ const peg$e92 = peg$literalExpectation("del", false);
17290
+ const peg$e93 = peg$literalExpectation("underline", false);
17291
+ const peg$e94 = peg$literalExpectation("doubleUnderline", false);
17292
+ const peg$e95 = peg$literalExpectation("smallcaps", false);
17293
+ const peg$e96 = peg$literalExpectation("circle", false);
17294
+ const peg$e97 = peg$literalExpectation("languageEmRed", false);
17295
+ const peg$e98 = peg$literalExpectation("languageEmOrange", false);
17296
+ const peg$e99 = peg$literalExpectation("languageEmYellow", false);
17297
+ const peg$e100 = peg$literalExpectation("languageEmGreen", false);
17298
+ const peg$e101 = peg$literalExpectation("languageEmBlue", false);
17299
+ const peg$e102 = peg$literalExpectation("languageEmPurple", false);
17300
+ const peg$e103 = peg$literalExpectation("languageEmPink", false);
17301
+ const peg$e104 = peg$literalExpectation("languageEmBrown", false);
17302
+ const peg$e105 = peg$literalExpectation("languageEmBlack", false);
17303
+ const peg$e106 = peg$literalExpectation("languageEmWhite", false);
17304
+ const peg$e107 = peg$literalExpectation("languageEmGray", false);
17305
+ const peg$e108 = peg$literalExpectation("languageEm", false);
17306
+ const peg$e109 = peg$literalExpectation("userUnderline", false);
17307
+ const peg$e110 = peg$literalExpectation("userDoubleUnderline", false);
17308
+ const peg$e111 = peg$literalExpectation("userStrike", false);
17309
+ const peg$e112 = peg$literalExpectation("userCircle", false);
17310
+ const peg$e113 = peg$literalExpectation("notranslate", false);
17311
+ const peg$e114 = peg$literalExpectation("aqua", false);
17312
+ const peg$e115 = peg$literalExpectation("black", false);
17313
+ const peg$e116 = peg$literalExpectation("blue", false);
17314
+ const peg$e117 = peg$literalExpectation("brown", false);
17315
+ const peg$e118 = peg$literalExpectation("fuchsia", false);
17316
+ const peg$e119 = peg$literalExpectation("lightgrey", false);
17317
+ const peg$e120 = peg$literalExpectation("gray", false);
17318
+ const peg$e121 = peg$literalExpectation("darkgray", false);
17319
+ const peg$e122 = peg$literalExpectation("green", false);
17320
+ const peg$e123 = peg$literalExpectation("lime", false);
17321
+ const peg$e124 = peg$literalExpectation("magenta", false);
17322
+ const peg$e125 = peg$literalExpectation("maroon", false);
17323
+ const peg$e126 = peg$literalExpectation("navy", false);
17324
+ const peg$e127 = peg$literalExpectation("olive", false);
17325
+ const peg$e128 = peg$literalExpectation("orange", false);
17326
+ const peg$e129 = peg$literalExpectation("pink", false);
17327
+ const peg$e130 = peg$literalExpectation("purple", false);
17328
+ const peg$e131 = peg$literalExpectation("red", false);
17329
+ const peg$e132 = peg$literalExpectation("silver", false);
17330
+ const peg$e133 = peg$literalExpectation("teal", false);
17331
+ const peg$e134 = peg$literalExpectation("violet", false);
17332
+ const peg$e135 = peg$literalExpectation("white", false);
17333
+ const peg$e136 = peg$literalExpectation("yellow", false);
17334
+ const peg$e137 = peg$literalExpectation("*", false);
17335
+ const peg$e138 = peg$literalExpectation("_", false);
17336
+ const peg$e139 = peg$literalExpectation("`", false);
17337
+ const peg$e140 = peg$literalExpectation("!", false);
17338
+ const peg$e141 = peg$literalExpectation("[!", false);
17339
+ const peg$e142 = peg$literalExpectation("]", false);
17340
+ const peg$e143 = peg$otherExpectation("Line Terminator");
17341
+ const peg$e144 = peg$literalExpectation("\n", false);
17342
+ const peg$e145 = peg$literalExpectation("\r\n", false);
17343
+ const peg$e146 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17344
+ const peg$e147 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17345
+ const peg$e148 = peg$literalExpectation("http", false);
17346
+ const peg$e149 = peg$literalExpectation("s", false);
17347
+ const peg$e150 = peg$literalExpectation("://", false);
17348
+ const peg$e151 = peg$literalExpectation("mailto:", false);
17349
+ const peg$e152 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17242
17350
  function peg$f0() {
17243
17351
  return VERSION;
17244
17352
  }
@@ -17514,7 +17622,7 @@ function peg$parse(input, options) {
17514
17622
  return { attrs: { formula: unbreakscape(t) }, type: "latex" };
17515
17623
  }
17516
17624
  function peg$f57(alt, u, ch) {
17517
- return { attrs: { alt, src: (u.pr + u.t).trim(), ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17625
+ return { attrs: { alt, src: (u.pr + u.t).trim(), "alignmentVertical": "top", size: "line-height", ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17518
17626
  }
17519
17627
  function peg$f58(t, marks) {
17520
17628
  if (!marks) marks = [];
@@ -17593,59 +17701,62 @@ function peg$parse(input, options) {
17593
17701
  function peg$f82(lang) {
17594
17702
  return { type: "code", attrs: { language: lang.trim().toLowerCase() } };
17595
17703
  }
17596
- function peg$f83() {
17597
- return { type: "timer", attrs: { name: "" } };
17704
+ function peg$f83(d) {
17705
+ return { type: "timer", attrs: { name: "", duration: d.trim() } };
17598
17706
  }
17599
- function peg$f84(str) {
17600
- return { type: "timer", attrs: { name: str.trim() } };
17707
+ function peg$f84(str, d) {
17708
+ return { type: "timer", attrs: { name: str.trim(), duration: d.trim() } };
17601
17709
  }
17602
- function peg$f85(str) {
17603
- return { type: "duration", attrs: { duration: str } };
17710
+ function peg$f85(color) {
17711
+ return { type: "highlight", attrs: { color } };
17604
17712
  }
17605
17713
  function peg$f86(color) {
17606
- return { type: "color", attrs: { color } };
17714
+ return { type: "userHighlight", attrs: { color } };
17715
+ }
17716
+ function peg$f87(color) {
17717
+ return { type: "textStyle", attrs: { color } };
17607
17718
  }
17608
- function peg$f87(str) {
17719
+ function peg$f88(str) {
17609
17720
  return { type: "colorPicker", attrs: { propertyRef: str.trim() } };
17610
17721
  }
17611
- function peg$f88(style) {
17722
+ function peg$f89(style) {
17612
17723
  return { type: style };
17613
17724
  }
17614
- function peg$f89(str) {
17725
+ function peg$f90(str) {
17615
17726
  return { type: "comment", comment: str };
17616
17727
  }
17617
- function peg$f90(r) {
17728
+ function peg$f91(r) {
17618
17729
  return r.trim();
17619
17730
  }
17620
- function peg$f91(bs) {
17731
+ function peg$f92(bs) {
17621
17732
  return [{ type: "paragraph", content: bs, attrs: {} }];
17622
17733
  }
17623
- function peg$f92(first, more) {
17734
+ function peg$f93(first, more) {
17624
17735
  const cleaned_ = cleanEmptyTextNodes(first ? [first, ...more.flat()] : more.flat());
17625
17736
  return cleaned_;
17626
17737
  }
17627
- function peg$f93() {
17738
+ function peg$f94() {
17628
17739
  return { "type": "hardBreak" };
17629
17740
  }
17630
- function peg$f94(t) {
17741
+ function peg$f95(t) {
17631
17742
  return { text: unbreakscape(t), type: "text" };
17632
17743
  }
17633
- function peg$f95(t) {
17744
+ function peg$f96(t) {
17634
17745
  return { index: +t, type: "bit" };
17635
17746
  }
17636
- function peg$f96(t) {
17747
+ function peg$f97(t) {
17637
17748
  return { marks: [{ type: "bold" }], text: unbreakscape(t), type: "text" };
17638
17749
  }
17639
- function peg$f97(t) {
17750
+ function peg$f98(t) {
17640
17751
  return { marks: [{ type: "italic" }], text: unbreakscape(t), type: "text" };
17641
17752
  }
17642
- function peg$f98(t) {
17753
+ function peg$f99(t) {
17643
17754
  return { marks: [{ type: "light" }], text: unbreakscape(t), type: "text" };
17644
17755
  }
17645
- function peg$f99(t) {
17756
+ function peg$f100(t) {
17646
17757
  return { marks: [{ type: "highlight" }], text: unbreakscape(t), type: "text" };
17647
17758
  }
17648
- function peg$f100(pr, t) {
17759
+ function peg$f101(pr, t) {
17649
17760
  return { pr, t };
17650
17761
  }
17651
17762
  let peg$currPos = options.peg$currPos | 0;
@@ -22515,7 +22626,7 @@ function peg$parse(input, options) {
22515
22626
  return s0;
22516
22627
  }
22517
22628
  function peg$parseAttrChainItem() {
22518
- let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
22629
+ let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
22519
22630
  s0 = peg$currPos;
22520
22631
  if (input.substr(peg$currPos, 5) === peg$c52) {
22521
22632
  s1 = peg$c52;
@@ -23483,8 +23594,110 @@ function peg$parse(input, options) {
23483
23594
  if (s1 !== peg$FAILED) {
23484
23595
  s2 = peg$parseBlockTag();
23485
23596
  if (s2 !== peg$FAILED) {
23486
- peg$savedPos = s0;
23487
- s0 = peg$f83();
23597
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23598
+ s3 = peg$c63;
23599
+ peg$currPos += 9;
23600
+ } else {
23601
+ s3 = peg$FAILED;
23602
+ if (peg$silentFails === 0) {
23603
+ peg$fail(peg$e67);
23604
+ }
23605
+ }
23606
+ if (s3 !== peg$FAILED) {
23607
+ s4 = peg$currPos;
23608
+ s5 = peg$currPos;
23609
+ if (input.charCodeAt(peg$currPos) === 80) {
23610
+ s6 = peg$c64;
23611
+ peg$currPos++;
23612
+ } else {
23613
+ s6 = peg$FAILED;
23614
+ if (peg$silentFails === 0) {
23615
+ peg$fail(peg$e68);
23616
+ }
23617
+ }
23618
+ if (s6 !== peg$FAILED) {
23619
+ s7 = peg$currPos;
23620
+ s8 = [];
23621
+ s9 = peg$currPos;
23622
+ s10 = peg$currPos;
23623
+ peg$silentFails++;
23624
+ s11 = peg$parseBlockTag();
23625
+ peg$silentFails--;
23626
+ if (s11 === peg$FAILED) {
23627
+ s10 = void 0;
23628
+ } else {
23629
+ peg$currPos = s10;
23630
+ s10 = peg$FAILED;
23631
+ }
23632
+ if (s10 !== peg$FAILED) {
23633
+ s11 = peg$parsechar();
23634
+ if (s11 !== peg$FAILED) {
23635
+ s10 = [s10, s11];
23636
+ s9 = s10;
23637
+ } else {
23638
+ peg$currPos = s9;
23639
+ s9 = peg$FAILED;
23640
+ }
23641
+ } else {
23642
+ peg$currPos = s9;
23643
+ s9 = peg$FAILED;
23644
+ }
23645
+ while (s9 !== peg$FAILED) {
23646
+ s8.push(s9);
23647
+ s9 = peg$currPos;
23648
+ s10 = peg$currPos;
23649
+ peg$silentFails++;
23650
+ s11 = peg$parseBlockTag();
23651
+ peg$silentFails--;
23652
+ if (s11 === peg$FAILED) {
23653
+ s10 = void 0;
23654
+ } else {
23655
+ peg$currPos = s10;
23656
+ s10 = peg$FAILED;
23657
+ }
23658
+ if (s10 !== peg$FAILED) {
23659
+ s11 = peg$parsechar();
23660
+ if (s11 !== peg$FAILED) {
23661
+ s10 = [s10, s11];
23662
+ s9 = s10;
23663
+ } else {
23664
+ peg$currPos = s9;
23665
+ s9 = peg$FAILED;
23666
+ }
23667
+ } else {
23668
+ peg$currPos = s9;
23669
+ s9 = peg$FAILED;
23670
+ }
23671
+ }
23672
+ s7 = input.substring(s7, peg$currPos);
23673
+ s6 = [s6, s7];
23674
+ s5 = s6;
23675
+ } else {
23676
+ peg$currPos = s5;
23677
+ s5 = peg$FAILED;
23678
+ }
23679
+ if (s5 !== peg$FAILED) {
23680
+ s4 = input.substring(s4, peg$currPos);
23681
+ } else {
23682
+ s4 = s5;
23683
+ }
23684
+ if (s4 !== peg$FAILED) {
23685
+ s5 = peg$parseBlockTag();
23686
+ if (s5 !== peg$FAILED) {
23687
+ peg$savedPos = s0;
23688
+ s0 = peg$f83(s4);
23689
+ } else {
23690
+ peg$currPos = s0;
23691
+ s0 = peg$FAILED;
23692
+ }
23693
+ } else {
23694
+ peg$currPos = s0;
23695
+ s0 = peg$FAILED;
23696
+ }
23697
+ } else {
23698
+ peg$currPos = s0;
23699
+ s0 = peg$FAILED;
23700
+ }
23488
23701
  } else {
23489
23702
  peg$currPos = s0;
23490
23703
  s0 = peg$FAILED;
@@ -23495,13 +23708,13 @@ function peg$parse(input, options) {
23495
23708
  }
23496
23709
  if (s0 === peg$FAILED) {
23497
23710
  s0 = peg$currPos;
23498
- if (input.substr(peg$currPos, 6) === peg$c63) {
23499
- s1 = peg$c63;
23711
+ if (input.substr(peg$currPos, 6) === peg$c65) {
23712
+ s1 = peg$c65;
23500
23713
  peg$currPos += 6;
23501
23714
  } else {
23502
23715
  s1 = peg$FAILED;
23503
23716
  if (peg$silentFails === 0) {
23504
- peg$fail(peg$e67);
23717
+ peg$fail(peg$e69);
23505
23718
  }
23506
23719
  }
23507
23720
  if (s1 !== peg$FAILED) {
@@ -23561,110 +23774,156 @@ function peg$parse(input, options) {
23561
23774
  s2 = input.substring(s2, peg$currPos);
23562
23775
  s3 = peg$parseBlockTag();
23563
23776
  if (s3 !== peg$FAILED) {
23564
- peg$savedPos = s0;
23565
- s0 = peg$f84(s2);
23566
- } else {
23567
- peg$currPos = s0;
23568
- s0 = peg$FAILED;
23569
- }
23570
- } else {
23571
- peg$currPos = s0;
23572
- s0 = peg$FAILED;
23573
- }
23574
- if (s0 === peg$FAILED) {
23575
- s0 = peg$currPos;
23576
- if (input.substr(peg$currPos, 9) === peg$c64) {
23577
- s1 = peg$c64;
23578
- peg$currPos += 9;
23579
- } else {
23580
- s1 = peg$FAILED;
23581
- if (peg$silentFails === 0) {
23582
- peg$fail(peg$e68);
23583
- }
23584
- }
23585
- if (s1 !== peg$FAILED) {
23586
- s2 = peg$currPos;
23587
- s3 = peg$currPos;
23588
- if (input.charCodeAt(peg$currPos) === 80) {
23589
- s4 = peg$c65;
23590
- peg$currPos++;
23777
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23778
+ s4 = peg$c63;
23779
+ peg$currPos += 9;
23591
23780
  } else {
23592
23781
  s4 = peg$FAILED;
23593
23782
  if (peg$silentFails === 0) {
23594
- peg$fail(peg$e69);
23783
+ peg$fail(peg$e67);
23595
23784
  }
23596
23785
  }
23597
23786
  if (s4 !== peg$FAILED) {
23598
23787
  s5 = peg$currPos;
23599
- s6 = [];
23600
- s7 = peg$currPos;
23601
- s8 = peg$currPos;
23602
- peg$silentFails++;
23603
- s9 = peg$parseBlockTag();
23604
- peg$silentFails--;
23605
- if (s9 === peg$FAILED) {
23606
- s8 = void 0;
23788
+ s6 = peg$currPos;
23789
+ if (input.charCodeAt(peg$currPos) === 80) {
23790
+ s7 = peg$c64;
23791
+ peg$currPos++;
23607
23792
  } else {
23608
- peg$currPos = s8;
23609
- s8 = peg$FAILED;
23610
- }
23611
- if (s8 !== peg$FAILED) {
23612
- s9 = peg$parsechar();
23613
- if (s9 !== peg$FAILED) {
23614
- s8 = [s8, s9];
23615
- s7 = s8;
23616
- } else {
23617
- peg$currPos = s7;
23618
- s7 = peg$FAILED;
23619
- }
23620
- } else {
23621
- peg$currPos = s7;
23622
23793
  s7 = peg$FAILED;
23794
+ if (peg$silentFails === 0) {
23795
+ peg$fail(peg$e68);
23796
+ }
23623
23797
  }
23624
- while (s7 !== peg$FAILED) {
23625
- s6.push(s7);
23626
- s7 = peg$currPos;
23798
+ if (s7 !== peg$FAILED) {
23627
23799
  s8 = peg$currPos;
23800
+ s9 = [];
23801
+ s10 = peg$currPos;
23802
+ s11 = peg$currPos;
23628
23803
  peg$silentFails++;
23629
- s9 = peg$parseBlockTag();
23804
+ s12 = peg$parseBlockTag();
23630
23805
  peg$silentFails--;
23631
- if (s9 === peg$FAILED) {
23632
- s8 = void 0;
23806
+ if (s12 === peg$FAILED) {
23807
+ s11 = void 0;
23633
23808
  } else {
23634
- peg$currPos = s8;
23635
- s8 = peg$FAILED;
23809
+ peg$currPos = s11;
23810
+ s11 = peg$FAILED;
23636
23811
  }
23637
- if (s8 !== peg$FAILED) {
23638
- s9 = peg$parsechar();
23639
- if (s9 !== peg$FAILED) {
23640
- s8 = [s8, s9];
23641
- s7 = s8;
23812
+ if (s11 !== peg$FAILED) {
23813
+ s12 = peg$parsechar();
23814
+ if (s12 !== peg$FAILED) {
23815
+ s11 = [s11, s12];
23816
+ s10 = s11;
23642
23817
  } else {
23643
- peg$currPos = s7;
23644
- s7 = peg$FAILED;
23818
+ peg$currPos = s10;
23819
+ s10 = peg$FAILED;
23645
23820
  }
23646
23821
  } else {
23647
- peg$currPos = s7;
23648
- s7 = peg$FAILED;
23822
+ peg$currPos = s10;
23823
+ s10 = peg$FAILED;
23824
+ }
23825
+ while (s10 !== peg$FAILED) {
23826
+ s9.push(s10);
23827
+ s10 = peg$currPos;
23828
+ s11 = peg$currPos;
23829
+ peg$silentFails++;
23830
+ s12 = peg$parseBlockTag();
23831
+ peg$silentFails--;
23832
+ if (s12 === peg$FAILED) {
23833
+ s11 = void 0;
23834
+ } else {
23835
+ peg$currPos = s11;
23836
+ s11 = peg$FAILED;
23837
+ }
23838
+ if (s11 !== peg$FAILED) {
23839
+ s12 = peg$parsechar();
23840
+ if (s12 !== peg$FAILED) {
23841
+ s11 = [s11, s12];
23842
+ s10 = s11;
23843
+ } else {
23844
+ peg$currPos = s10;
23845
+ s10 = peg$FAILED;
23846
+ }
23847
+ } else {
23848
+ peg$currPos = s10;
23849
+ s10 = peg$FAILED;
23850
+ }
23649
23851
  }
23852
+ s8 = input.substring(s8, peg$currPos);
23853
+ s7 = [s7, s8];
23854
+ s6 = s7;
23855
+ } else {
23856
+ peg$currPos = s6;
23857
+ s6 = peg$FAILED;
23858
+ }
23859
+ if (s6 !== peg$FAILED) {
23860
+ s5 = input.substring(s5, peg$currPos);
23861
+ } else {
23862
+ s5 = s6;
23863
+ }
23864
+ if (s5 !== peg$FAILED) {
23865
+ s6 = peg$parseBlockTag();
23866
+ if (s6 !== peg$FAILED) {
23867
+ peg$savedPos = s0;
23868
+ s0 = peg$f84(s2, s5);
23869
+ } else {
23870
+ peg$currPos = s0;
23871
+ s0 = peg$FAILED;
23872
+ }
23873
+ } else {
23874
+ peg$currPos = s0;
23875
+ s0 = peg$FAILED;
23650
23876
  }
23651
- s5 = input.substring(s5, peg$currPos);
23652
- s4 = [s4, s5];
23653
- s3 = s4;
23654
23877
  } else {
23655
- peg$currPos = s3;
23656
- s3 = peg$FAILED;
23878
+ peg$currPos = s0;
23879
+ s0 = peg$FAILED;
23657
23880
  }
23658
- if (s3 !== peg$FAILED) {
23659
- s2 = input.substring(s2, peg$currPos);
23660
- } else {
23661
- s2 = s3;
23881
+ } else {
23882
+ peg$currPos = s0;
23883
+ s0 = peg$FAILED;
23884
+ }
23885
+ } else {
23886
+ peg$currPos = s0;
23887
+ s0 = peg$FAILED;
23888
+ }
23889
+ if (s0 === peg$FAILED) {
23890
+ s0 = peg$currPos;
23891
+ if (input.substr(peg$currPos, 9) === peg$c66) {
23892
+ s1 = peg$c66;
23893
+ peg$currPos += 9;
23894
+ } else {
23895
+ s1 = peg$FAILED;
23896
+ if (peg$silentFails === 0) {
23897
+ peg$fail(peg$e70);
23662
23898
  }
23899
+ }
23900
+ if (s1 !== peg$FAILED) {
23901
+ s2 = peg$parseBlockTag();
23663
23902
  if (s2 !== peg$FAILED) {
23664
- s3 = peg$parseBlockTag();
23903
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23904
+ s3 = peg$c67;
23905
+ peg$currPos += 6;
23906
+ } else {
23907
+ s3 = peg$FAILED;
23908
+ if (peg$silentFails === 0) {
23909
+ peg$fail(peg$e71);
23910
+ }
23911
+ }
23665
23912
  if (s3 !== peg$FAILED) {
23666
- peg$savedPos = s0;
23667
- s0 = peg$f85(s2);
23913
+ s4 = peg$parseHighlightColor();
23914
+ if (s4 !== peg$FAILED) {
23915
+ s5 = peg$parseBlockTag();
23916
+ if (s5 !== peg$FAILED) {
23917
+ peg$savedPos = s0;
23918
+ s0 = peg$f85(s4);
23919
+ } else {
23920
+ peg$currPos = s0;
23921
+ s0 = peg$FAILED;
23922
+ }
23923
+ } else {
23924
+ peg$currPos = s0;
23925
+ s0 = peg$FAILED;
23926
+ }
23668
23927
  } else {
23669
23928
  peg$currPos = s0;
23670
23929
  s0 = peg$FAILED;
@@ -23679,22 +23938,42 @@ function peg$parse(input, options) {
23679
23938
  }
23680
23939
  if (s0 === peg$FAILED) {
23681
23940
  s0 = peg$currPos;
23682
- if (input.substr(peg$currPos, 6) === peg$c66) {
23683
- s1 = peg$c66;
23684
- peg$currPos += 6;
23941
+ if (input.substr(peg$currPos, 13) === peg$c68) {
23942
+ s1 = peg$c68;
23943
+ peg$currPos += 13;
23685
23944
  } else {
23686
23945
  s1 = peg$FAILED;
23687
23946
  if (peg$silentFails === 0) {
23688
- peg$fail(peg$e70);
23947
+ peg$fail(peg$e72);
23689
23948
  }
23690
23949
  }
23691
23950
  if (s1 !== peg$FAILED) {
23692
- s2 = peg$parseColor();
23951
+ s2 = peg$parseBlockTag();
23693
23952
  if (s2 !== peg$FAILED) {
23694
- s3 = peg$parseBlockTag();
23953
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23954
+ s3 = peg$c67;
23955
+ peg$currPos += 6;
23956
+ } else {
23957
+ s3 = peg$FAILED;
23958
+ if (peg$silentFails === 0) {
23959
+ peg$fail(peg$e71);
23960
+ }
23961
+ }
23695
23962
  if (s3 !== peg$FAILED) {
23696
- peg$savedPos = s0;
23697
- s0 = peg$f86(s2);
23963
+ s4 = peg$parseHighlightColor();
23964
+ if (s4 !== peg$FAILED) {
23965
+ s5 = peg$parseBlockTag();
23966
+ if (s5 !== peg$FAILED) {
23967
+ peg$savedPos = s0;
23968
+ s0 = peg$f86(s4);
23969
+ } else {
23970
+ peg$currPos = s0;
23971
+ s0 = peg$FAILED;
23972
+ }
23973
+ } else {
23974
+ peg$currPos = s0;
23975
+ s0 = peg$FAILED;
23976
+ }
23698
23977
  } else {
23699
23978
  peg$currPos = s0;
23700
23979
  s0 = peg$FAILED;
@@ -23709,9 +23988,9 @@ function peg$parse(input, options) {
23709
23988
  }
23710
23989
  if (s0 === peg$FAILED) {
23711
23990
  s0 = peg$currPos;
23712
- if (input.substr(peg$currPos, 12) === peg$c67) {
23991
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23713
23992
  s1 = peg$c67;
23714
- peg$currPos += 12;
23993
+ peg$currPos += 6;
23715
23994
  } else {
23716
23995
  s1 = peg$FAILED;
23717
23996
  if (peg$silentFails === 0) {
@@ -23719,34 +23998,38 @@ function peg$parse(input, options) {
23719
23998
  }
23720
23999
  }
23721
24000
  if (s1 !== peg$FAILED) {
23722
- s2 = peg$currPos;
23723
- s3 = [];
23724
- s4 = peg$currPos;
23725
- s5 = peg$currPos;
23726
- peg$silentFails++;
23727
- s6 = peg$parseBlockTag();
23728
- peg$silentFails--;
23729
- if (s6 === peg$FAILED) {
23730
- s5 = void 0;
23731
- } else {
23732
- peg$currPos = s5;
23733
- s5 = peg$FAILED;
23734
- }
23735
- if (s5 !== peg$FAILED) {
23736
- s6 = peg$parsechar();
23737
- if (s6 !== peg$FAILED) {
23738
- s5 = [s5, s6];
23739
- s4 = s5;
24001
+ s2 = peg$parseColor();
24002
+ if (s2 !== peg$FAILED) {
24003
+ s3 = peg$parseBlockTag();
24004
+ if (s3 !== peg$FAILED) {
24005
+ peg$savedPos = s0;
24006
+ s0 = peg$f87(s2);
23740
24007
  } else {
23741
- peg$currPos = s4;
23742
- s4 = peg$FAILED;
24008
+ peg$currPos = s0;
24009
+ s0 = peg$FAILED;
23743
24010
  }
23744
24011
  } else {
23745
- peg$currPos = s4;
23746
- s4 = peg$FAILED;
24012
+ peg$currPos = s0;
24013
+ s0 = peg$FAILED;
24014
+ }
24015
+ } else {
24016
+ peg$currPos = s0;
24017
+ s0 = peg$FAILED;
24018
+ }
24019
+ if (s0 === peg$FAILED) {
24020
+ s0 = peg$currPos;
24021
+ if (input.substr(peg$currPos, 12) === peg$c69) {
24022
+ s1 = peg$c69;
24023
+ peg$currPos += 12;
24024
+ } else {
24025
+ s1 = peg$FAILED;
24026
+ if (peg$silentFails === 0) {
24027
+ peg$fail(peg$e73);
24028
+ }
23747
24029
  }
23748
- while (s4 !== peg$FAILED) {
23749
- s3.push(s4);
24030
+ if (s1 !== peg$FAILED) {
24031
+ s2 = peg$currPos;
24032
+ s3 = [];
23750
24033
  s4 = peg$currPos;
23751
24034
  s5 = peg$currPos;
23752
24035
  peg$silentFails++;
@@ -23771,50 +24054,8 @@ function peg$parse(input, options) {
23771
24054
  peg$currPos = s4;
23772
24055
  s4 = peg$FAILED;
23773
24056
  }
23774
- }
23775
- s2 = input.substring(s2, peg$currPos);
23776
- s3 = peg$parseBlockTag();
23777
- if (s3 !== peg$FAILED) {
23778
- peg$savedPos = s0;
23779
- s0 = peg$f87(s2);
23780
- } else {
23781
- peg$currPos = s0;
23782
- s0 = peg$FAILED;
23783
- }
23784
- } else {
23785
- peg$currPos = s0;
23786
- s0 = peg$FAILED;
23787
- }
23788
- if (s0 === peg$FAILED) {
23789
- s0 = peg$currPos;
23790
- s1 = peg$parseAlternativeStyleTags();
23791
- if (s1 !== peg$FAILED) {
23792
- s2 = peg$parseBlockTag();
23793
- if (s2 !== peg$FAILED) {
23794
- peg$savedPos = s0;
23795
- s0 = peg$f88(s1);
23796
- } else {
23797
- peg$currPos = s0;
23798
- s0 = peg$FAILED;
23799
- }
23800
- } else {
23801
- peg$currPos = s0;
23802
- s0 = peg$FAILED;
23803
- }
23804
- if (s0 === peg$FAILED) {
23805
- s0 = peg$currPos;
23806
- if (input.charCodeAt(peg$currPos) === 35) {
23807
- s1 = peg$c21;
23808
- peg$currPos++;
23809
- } else {
23810
- s1 = peg$FAILED;
23811
- if (peg$silentFails === 0) {
23812
- peg$fail(peg$e25);
23813
- }
23814
- }
23815
- if (s1 !== peg$FAILED) {
23816
- s2 = peg$currPos;
23817
- s3 = [];
24057
+ while (s4 !== peg$FAILED) {
24058
+ s3.push(s4);
23818
24059
  s4 = peg$currPos;
23819
24060
  s5 = peg$currPos;
23820
24061
  peg$silentFails++;
@@ -23839,8 +24080,50 @@ function peg$parse(input, options) {
23839
24080
  peg$currPos = s4;
23840
24081
  s4 = peg$FAILED;
23841
24082
  }
23842
- while (s4 !== peg$FAILED) {
23843
- s3.push(s4);
24083
+ }
24084
+ s2 = input.substring(s2, peg$currPos);
24085
+ s3 = peg$parseBlockTag();
24086
+ if (s3 !== peg$FAILED) {
24087
+ peg$savedPos = s0;
24088
+ s0 = peg$f88(s2);
24089
+ } else {
24090
+ peg$currPos = s0;
24091
+ s0 = peg$FAILED;
24092
+ }
24093
+ } else {
24094
+ peg$currPos = s0;
24095
+ s0 = peg$FAILED;
24096
+ }
24097
+ if (s0 === peg$FAILED) {
24098
+ s0 = peg$currPos;
24099
+ s1 = peg$parseAlternativeStyleTags();
24100
+ if (s1 !== peg$FAILED) {
24101
+ s2 = peg$parseBlockTag();
24102
+ if (s2 !== peg$FAILED) {
24103
+ peg$savedPos = s0;
24104
+ s0 = peg$f89(s1);
24105
+ } else {
24106
+ peg$currPos = s0;
24107
+ s0 = peg$FAILED;
24108
+ }
24109
+ } else {
24110
+ peg$currPos = s0;
24111
+ s0 = peg$FAILED;
24112
+ }
24113
+ if (s0 === peg$FAILED) {
24114
+ s0 = peg$currPos;
24115
+ if (input.charCodeAt(peg$currPos) === 35) {
24116
+ s1 = peg$c21;
24117
+ peg$currPos++;
24118
+ } else {
24119
+ s1 = peg$FAILED;
24120
+ if (peg$silentFails === 0) {
24121
+ peg$fail(peg$e25);
24122
+ }
24123
+ }
24124
+ if (s1 !== peg$FAILED) {
24125
+ s2 = peg$currPos;
24126
+ s3 = [];
23844
24127
  s4 = peg$currPos;
23845
24128
  s5 = peg$currPos;
23846
24129
  peg$silentFails++;
@@ -23865,19 +24148,46 @@ function peg$parse(input, options) {
23865
24148
  peg$currPos = s4;
23866
24149
  s4 = peg$FAILED;
23867
24150
  }
23868
- }
23869
- s2 = input.substring(s2, peg$currPos);
23870
- s3 = peg$parseBlockTag();
23871
- if (s3 !== peg$FAILED) {
23872
- peg$savedPos = s0;
23873
- s0 = peg$f89(s2);
24151
+ while (s4 !== peg$FAILED) {
24152
+ s3.push(s4);
24153
+ s4 = peg$currPos;
24154
+ s5 = peg$currPos;
24155
+ peg$silentFails++;
24156
+ s6 = peg$parseBlockTag();
24157
+ peg$silentFails--;
24158
+ if (s6 === peg$FAILED) {
24159
+ s5 = void 0;
24160
+ } else {
24161
+ peg$currPos = s5;
24162
+ s5 = peg$FAILED;
24163
+ }
24164
+ if (s5 !== peg$FAILED) {
24165
+ s6 = peg$parsechar();
24166
+ if (s6 !== peg$FAILED) {
24167
+ s5 = [s5, s6];
24168
+ s4 = s5;
24169
+ } else {
24170
+ peg$currPos = s4;
24171
+ s4 = peg$FAILED;
24172
+ }
24173
+ } else {
24174
+ peg$currPos = s4;
24175
+ s4 = peg$FAILED;
24176
+ }
24177
+ }
24178
+ s2 = input.substring(s2, peg$currPos);
24179
+ s3 = peg$parseBlockTag();
24180
+ if (s3 !== peg$FAILED) {
24181
+ peg$savedPos = s0;
24182
+ s0 = peg$f90(s2);
24183
+ } else {
24184
+ peg$currPos = s0;
24185
+ s0 = peg$FAILED;
24186
+ }
23874
24187
  } else {
23875
24188
  peg$currPos = s0;
23876
24189
  s0 = peg$FAILED;
23877
24190
  }
23878
- } else {
23879
- peg$currPos = s0;
23880
- s0 = peg$FAILED;
23881
24191
  }
23882
24192
  }
23883
24193
  }
@@ -23911,13 +24221,13 @@ function peg$parse(input, options) {
23911
24221
  function peg$parseRef() {
23912
24222
  let s0, s1, s2, s3, s4, s5, s6;
23913
24223
  s0 = peg$currPos;
23914
- if (input.substr(peg$currPos, 2) === peg$c68) {
23915
- s1 = peg$c68;
24224
+ if (input.substr(peg$currPos, 2) === peg$c70) {
24225
+ s1 = peg$c70;
23916
24226
  peg$currPos += 2;
23917
24227
  } else {
23918
24228
  s1 = peg$FAILED;
23919
24229
  if (peg$silentFails === 0) {
23920
- peg$fail(peg$e72);
24230
+ peg$fail(peg$e74);
23921
24231
  }
23922
24232
  }
23923
24233
  if (s1 !== peg$FAILED) {
@@ -23976,7 +24286,7 @@ function peg$parse(input, options) {
23976
24286
  }
23977
24287
  s2 = input.substring(s2, peg$currPos);
23978
24288
  peg$savedPos = s0;
23979
- s0 = peg$f90(s2);
24289
+ s0 = peg$f91(s2);
23980
24290
  } else {
23981
24291
  peg$currPos = s0;
23982
24292
  s0 = peg$FAILED;
@@ -23985,403 +24295,414 @@ function peg$parse(input, options) {
23985
24295
  }
23986
24296
  function peg$parseAlternativeStyleTags() {
23987
24297
  let s0;
23988
- if (input.substr(peg$currPos, 4) === peg$c69) {
23989
- s0 = peg$c69;
24298
+ if (input.substr(peg$currPos, 4) === peg$c71) {
24299
+ s0 = peg$c71;
23990
24300
  peg$currPos += 4;
23991
24301
  } else {
23992
24302
  s0 = peg$FAILED;
23993
24303
  if (peg$silentFails === 0) {
23994
- peg$fail(peg$e73);
24304
+ peg$fail(peg$e75);
23995
24305
  }
23996
24306
  }
23997
24307
  if (s0 === peg$FAILED) {
23998
- if (input.substr(peg$currPos, 6) === peg$c70) {
23999
- s0 = peg$c70;
24308
+ if (input.substr(peg$currPos, 6) === peg$c72) {
24309
+ s0 = peg$c72;
24000
24310
  peg$currPos += 6;
24001
24311
  } else {
24002
24312
  s0 = peg$FAILED;
24003
24313
  if (peg$silentFails === 0) {
24004
- peg$fail(peg$e74);
24314
+ peg$fail(peg$e76);
24005
24315
  }
24006
24316
  }
24007
24317
  if (s0 === peg$FAILED) {
24008
- if (input.substr(peg$currPos, 5) === peg$c71) {
24009
- s0 = peg$c71;
24318
+ if (input.substr(peg$currPos, 5) === peg$c73) {
24319
+ s0 = peg$c73;
24010
24320
  peg$currPos += 5;
24011
24321
  } else {
24012
24322
  s0 = peg$FAILED;
24013
24323
  if (peg$silentFails === 0) {
24014
- peg$fail(peg$e75);
24324
+ peg$fail(peg$e77);
24015
24325
  }
24016
24326
  }
24017
24327
  if (s0 === peg$FAILED) {
24018
- if (input.substr(peg$currPos, 15) === peg$c72) {
24019
- s0 = peg$c72;
24328
+ if (input.substr(peg$currPos, 15) === peg$c74) {
24329
+ s0 = peg$c74;
24020
24330
  peg$currPos += 15;
24021
24331
  } else {
24022
24332
  s0 = peg$FAILED;
24023
24333
  if (peg$silentFails === 0) {
24024
- peg$fail(peg$e76);
24334
+ peg$fail(peg$e78);
24025
24335
  }
24026
24336
  }
24027
24337
  if (s0 === peg$FAILED) {
24028
- if (input.substr(peg$currPos, 15) === peg$c73) {
24029
- s0 = peg$c73;
24338
+ if (input.substr(peg$currPos, 15) === peg$c75) {
24339
+ s0 = peg$c75;
24030
24340
  peg$currPos += 15;
24031
24341
  } else {
24032
24342
  s0 = peg$FAILED;
24033
24343
  if (peg$silentFails === 0) {
24034
- peg$fail(peg$e77);
24344
+ peg$fail(peg$e79);
24035
24345
  }
24036
24346
  }
24037
24347
  if (s0 === peg$FAILED) {
24038
- if (input.substr(peg$currPos, 14) === peg$c74) {
24039
- s0 = peg$c74;
24348
+ if (input.substr(peg$currPos, 14) === peg$c76) {
24349
+ s0 = peg$c76;
24040
24350
  peg$currPos += 14;
24041
24351
  } else {
24042
24352
  s0 = peg$FAILED;
24043
24353
  if (peg$silentFails === 0) {
24044
- peg$fail(peg$e78);
24354
+ peg$fail(peg$e80);
24045
24355
  }
24046
24356
  }
24047
24357
  if (s0 === peg$FAILED) {
24048
- if (input.substr(peg$currPos, 13) === peg$c75) {
24049
- s0 = peg$c75;
24358
+ if (input.substr(peg$currPos, 13) === peg$c77) {
24359
+ s0 = peg$c77;
24050
24360
  peg$currPos += 13;
24051
24361
  } else {
24052
24362
  s0 = peg$FAILED;
24053
24363
  if (peg$silentFails === 0) {
24054
- peg$fail(peg$e79);
24364
+ peg$fail(peg$e81);
24055
24365
  }
24056
24366
  }
24057
24367
  if (s0 === peg$FAILED) {
24058
- if (input.substr(peg$currPos, 15) === peg$c76) {
24059
- s0 = peg$c76;
24368
+ if (input.substr(peg$currPos, 15) === peg$c78) {
24369
+ s0 = peg$c78;
24060
24370
  peg$currPos += 15;
24061
24371
  } else {
24062
24372
  s0 = peg$FAILED;
24063
24373
  if (peg$silentFails === 0) {
24064
- peg$fail(peg$e80);
24374
+ peg$fail(peg$e82);
24065
24375
  }
24066
24376
  }
24067
24377
  if (s0 === peg$FAILED) {
24068
- if (input.substr(peg$currPos, 13) === peg$c77) {
24069
- s0 = peg$c77;
24378
+ if (input.substr(peg$currPos, 13) === peg$c79) {
24379
+ s0 = peg$c79;
24070
24380
  peg$currPos += 13;
24071
24381
  } else {
24072
24382
  s0 = peg$FAILED;
24073
24383
  if (peg$silentFails === 0) {
24074
- peg$fail(peg$e81);
24384
+ peg$fail(peg$e83);
24075
24385
  }
24076
24386
  }
24077
24387
  if (s0 === peg$FAILED) {
24078
- if (input.substr(peg$currPos, 14) === peg$c78) {
24079
- s0 = peg$c78;
24388
+ if (input.substr(peg$currPos, 14) === peg$c80) {
24389
+ s0 = peg$c80;
24080
24390
  peg$currPos += 14;
24081
24391
  } else {
24082
24392
  s0 = peg$FAILED;
24083
24393
  if (peg$silentFails === 0) {
24084
- peg$fail(peg$e82);
24394
+ peg$fail(peg$e84);
24085
24395
  }
24086
24396
  }
24087
24397
  if (s0 === peg$FAILED) {
24088
- if (input.substr(peg$currPos, 14) === peg$c79) {
24089
- s0 = peg$c79;
24398
+ if (input.substr(peg$currPos, 14) === peg$c81) {
24399
+ s0 = peg$c81;
24090
24400
  peg$currPos += 14;
24091
24401
  } else {
24092
24402
  s0 = peg$FAILED;
24093
24403
  if (peg$silentFails === 0) {
24094
- peg$fail(peg$e83);
24404
+ peg$fail(peg$e85);
24095
24405
  }
24096
24406
  }
24097
24407
  if (s0 === peg$FAILED) {
24098
- if (input.substr(peg$currPos, 14) === peg$c80) {
24099
- s0 = peg$c80;
24408
+ if (input.substr(peg$currPos, 14) === peg$c82) {
24409
+ s0 = peg$c82;
24100
24410
  peg$currPos += 14;
24101
24411
  } else {
24102
24412
  s0 = peg$FAILED;
24103
24413
  if (peg$silentFails === 0) {
24104
- peg$fail(peg$e84);
24414
+ peg$fail(peg$e86);
24105
24415
  }
24106
24416
  }
24107
24417
  if (s0 === peg$FAILED) {
24108
- if (input.substr(peg$currPos, 13) === peg$c81) {
24109
- s0 = peg$c81;
24418
+ if (input.substr(peg$currPos, 13) === peg$c83) {
24419
+ s0 = peg$c83;
24110
24420
  peg$currPos += 13;
24111
24421
  } else {
24112
24422
  s0 = peg$FAILED;
24113
24423
  if (peg$silentFails === 0) {
24114
- peg$fail(peg$e85);
24424
+ peg$fail(peg$e87);
24115
24425
  }
24116
24426
  }
24117
24427
  if (s0 === peg$FAILED) {
24118
- if (input.substr(peg$currPos, 9) === peg$c82) {
24119
- s0 = peg$c82;
24428
+ if (input.substr(peg$currPos, 9) === peg$c66) {
24429
+ s0 = peg$c66;
24120
24430
  peg$currPos += 9;
24121
24431
  } else {
24122
24432
  s0 = peg$FAILED;
24123
24433
  if (peg$silentFails === 0) {
24124
- peg$fail(peg$e86);
24434
+ peg$fail(peg$e70);
24125
24435
  }
24126
24436
  }
24127
24437
  if (s0 === peg$FAILED) {
24128
- if (input.substr(peg$currPos, 6) === peg$c83) {
24129
- s0 = peg$c83;
24438
+ if (input.substr(peg$currPos, 6) === peg$c84) {
24439
+ s0 = peg$c84;
24130
24440
  peg$currPos += 6;
24131
24441
  } else {
24132
24442
  s0 = peg$FAILED;
24133
24443
  if (peg$silentFails === 0) {
24134
- peg$fail(peg$e87);
24444
+ peg$fail(peg$e88);
24135
24445
  }
24136
24446
  }
24137
24447
  if (s0 === peg$FAILED) {
24138
- if (input.substr(peg$currPos, 9) === peg$c84) {
24139
- s0 = peg$c84;
24448
+ if (input.substr(peg$currPos, 9) === peg$c85) {
24449
+ s0 = peg$c85;
24140
24450
  peg$currPos += 9;
24141
24451
  } else {
24142
24452
  s0 = peg$FAILED;
24143
24453
  if (peg$silentFails === 0) {
24144
- peg$fail(peg$e88);
24454
+ peg$fail(peg$e89);
24145
24455
  }
24146
24456
  }
24147
24457
  if (s0 === peg$FAILED) {
24148
- if (input.substr(peg$currPos, 11) === peg$c85) {
24149
- s0 = peg$c85;
24458
+ if (input.substr(peg$currPos, 11) === peg$c86) {
24459
+ s0 = peg$c86;
24150
24460
  peg$currPos += 11;
24151
24461
  } else {
24152
24462
  s0 = peg$FAILED;
24153
24463
  if (peg$silentFails === 0) {
24154
- peg$fail(peg$e89);
24464
+ peg$fail(peg$e90);
24155
24465
  }
24156
24466
  }
24157
24467
  if (s0 === peg$FAILED) {
24158
- if (input.substr(peg$currPos, 3) === peg$c86) {
24159
- s0 = peg$c86;
24468
+ if (input.substr(peg$currPos, 3) === peg$c87) {
24469
+ s0 = peg$c87;
24160
24470
  peg$currPos += 3;
24161
24471
  } else {
24162
24472
  s0 = peg$FAILED;
24163
24473
  if (peg$silentFails === 0) {
24164
- peg$fail(peg$e90);
24474
+ peg$fail(peg$e91);
24165
24475
  }
24166
24476
  }
24167
24477
  if (s0 === peg$FAILED) {
24168
- if (input.substr(peg$currPos, 3) === peg$c87) {
24169
- s0 = peg$c87;
24478
+ if (input.substr(peg$currPos, 3) === peg$c88) {
24479
+ s0 = peg$c88;
24170
24480
  peg$currPos += 3;
24171
24481
  } else {
24172
24482
  s0 = peg$FAILED;
24173
24483
  if (peg$silentFails === 0) {
24174
- peg$fail(peg$e91);
24484
+ peg$fail(peg$e92);
24175
24485
  }
24176
24486
  }
24177
24487
  if (s0 === peg$FAILED) {
24178
- if (input.substr(peg$currPos, 9) === peg$c88) {
24179
- s0 = peg$c88;
24488
+ if (input.substr(peg$currPos, 9) === peg$c89) {
24489
+ s0 = peg$c89;
24180
24490
  peg$currPos += 9;
24181
24491
  } else {
24182
24492
  s0 = peg$FAILED;
24183
24493
  if (peg$silentFails === 0) {
24184
- peg$fail(peg$e92);
24494
+ peg$fail(peg$e93);
24185
24495
  }
24186
24496
  }
24187
24497
  if (s0 === peg$FAILED) {
24188
- if (input.substr(peg$currPos, 15) === peg$c89) {
24189
- s0 = peg$c89;
24498
+ if (input.substr(peg$currPos, 15) === peg$c90) {
24499
+ s0 = peg$c90;
24190
24500
  peg$currPos += 15;
24191
24501
  } else {
24192
24502
  s0 = peg$FAILED;
24193
24503
  if (peg$silentFails === 0) {
24194
- peg$fail(peg$e93);
24504
+ peg$fail(peg$e94);
24195
24505
  }
24196
24506
  }
24197
24507
  if (s0 === peg$FAILED) {
24198
- if (input.substr(peg$currPos, 6) === peg$c90) {
24199
- s0 = peg$c90;
24200
- peg$currPos += 6;
24508
+ if (input.substr(peg$currPos, 9) === peg$c91) {
24509
+ s0 = peg$c91;
24510
+ peg$currPos += 9;
24201
24511
  } else {
24202
24512
  s0 = peg$FAILED;
24203
24513
  if (peg$silentFails === 0) {
24204
- peg$fail(peg$e94);
24514
+ peg$fail(peg$e95);
24205
24515
  }
24206
24516
  }
24207
24517
  if (s0 === peg$FAILED) {
24208
- if (input.substr(peg$currPos, 13) === peg$c91) {
24209
- s0 = peg$c91;
24210
- peg$currPos += 13;
24518
+ if (input.substr(peg$currPos, 6) === peg$c92) {
24519
+ s0 = peg$c92;
24520
+ peg$currPos += 6;
24211
24521
  } else {
24212
24522
  s0 = peg$FAILED;
24213
24523
  if (peg$silentFails === 0) {
24214
- peg$fail(peg$e95);
24524
+ peg$fail(peg$e96);
24215
24525
  }
24216
24526
  }
24217
24527
  if (s0 === peg$FAILED) {
24218
- if (input.substr(peg$currPos, 16) === peg$c92) {
24219
- s0 = peg$c92;
24220
- peg$currPos += 16;
24528
+ if (input.substr(peg$currPos, 13) === peg$c93) {
24529
+ s0 = peg$c93;
24530
+ peg$currPos += 13;
24221
24531
  } else {
24222
24532
  s0 = peg$FAILED;
24223
24533
  if (peg$silentFails === 0) {
24224
- peg$fail(peg$e96);
24534
+ peg$fail(peg$e97);
24225
24535
  }
24226
24536
  }
24227
24537
  if (s0 === peg$FAILED) {
24228
- if (input.substr(peg$currPos, 16) === peg$c93) {
24229
- s0 = peg$c93;
24538
+ if (input.substr(peg$currPos, 16) === peg$c94) {
24539
+ s0 = peg$c94;
24230
24540
  peg$currPos += 16;
24231
24541
  } else {
24232
24542
  s0 = peg$FAILED;
24233
24543
  if (peg$silentFails === 0) {
24234
- peg$fail(peg$e97);
24544
+ peg$fail(peg$e98);
24235
24545
  }
24236
24546
  }
24237
24547
  if (s0 === peg$FAILED) {
24238
- if (input.substr(peg$currPos, 15) === peg$c94) {
24239
- s0 = peg$c94;
24240
- peg$currPos += 15;
24548
+ if (input.substr(peg$currPos, 16) === peg$c95) {
24549
+ s0 = peg$c95;
24550
+ peg$currPos += 16;
24241
24551
  } else {
24242
24552
  s0 = peg$FAILED;
24243
24553
  if (peg$silentFails === 0) {
24244
- peg$fail(peg$e98);
24554
+ peg$fail(peg$e99);
24245
24555
  }
24246
24556
  }
24247
24557
  if (s0 === peg$FAILED) {
24248
- if (input.substr(peg$currPos, 14) === peg$c95) {
24249
- s0 = peg$c95;
24250
- peg$currPos += 14;
24558
+ if (input.substr(peg$currPos, 15) === peg$c96) {
24559
+ s0 = peg$c96;
24560
+ peg$currPos += 15;
24251
24561
  } else {
24252
24562
  s0 = peg$FAILED;
24253
24563
  if (peg$silentFails === 0) {
24254
- peg$fail(peg$e99);
24564
+ peg$fail(peg$e100);
24255
24565
  }
24256
24566
  }
24257
24567
  if (s0 === peg$FAILED) {
24258
- if (input.substr(peg$currPos, 16) === peg$c96) {
24259
- s0 = peg$c96;
24260
- peg$currPos += 16;
24568
+ if (input.substr(peg$currPos, 14) === peg$c97) {
24569
+ s0 = peg$c97;
24570
+ peg$currPos += 14;
24261
24571
  } else {
24262
24572
  s0 = peg$FAILED;
24263
24573
  if (peg$silentFails === 0) {
24264
- peg$fail(peg$e100);
24574
+ peg$fail(peg$e101);
24265
24575
  }
24266
24576
  }
24267
24577
  if (s0 === peg$FAILED) {
24268
- if (input.substr(peg$currPos, 14) === peg$c97) {
24269
- s0 = peg$c97;
24270
- peg$currPos += 14;
24578
+ if (input.substr(peg$currPos, 16) === peg$c98) {
24579
+ s0 = peg$c98;
24580
+ peg$currPos += 16;
24271
24581
  } else {
24272
24582
  s0 = peg$FAILED;
24273
24583
  if (peg$silentFails === 0) {
24274
- peg$fail(peg$e101);
24584
+ peg$fail(peg$e102);
24275
24585
  }
24276
24586
  }
24277
24587
  if (s0 === peg$FAILED) {
24278
- if (input.substr(peg$currPos, 15) === peg$c98) {
24279
- s0 = peg$c98;
24280
- peg$currPos += 15;
24588
+ if (input.substr(peg$currPos, 14) === peg$c99) {
24589
+ s0 = peg$c99;
24590
+ peg$currPos += 14;
24281
24591
  } else {
24282
24592
  s0 = peg$FAILED;
24283
24593
  if (peg$silentFails === 0) {
24284
- peg$fail(peg$e102);
24594
+ peg$fail(peg$e103);
24285
24595
  }
24286
24596
  }
24287
24597
  if (s0 === peg$FAILED) {
24288
- if (input.substr(peg$currPos, 15) === peg$c99) {
24289
- s0 = peg$c99;
24598
+ if (input.substr(peg$currPos, 15) === peg$c100) {
24599
+ s0 = peg$c100;
24290
24600
  peg$currPos += 15;
24291
24601
  } else {
24292
24602
  s0 = peg$FAILED;
24293
24603
  if (peg$silentFails === 0) {
24294
- peg$fail(peg$e103);
24604
+ peg$fail(peg$e104);
24295
24605
  }
24296
24606
  }
24297
24607
  if (s0 === peg$FAILED) {
24298
- if (input.substr(peg$currPos, 15) === peg$c100) {
24299
- s0 = peg$c100;
24608
+ if (input.substr(peg$currPos, 15) === peg$c101) {
24609
+ s0 = peg$c101;
24300
24610
  peg$currPos += 15;
24301
24611
  } else {
24302
24612
  s0 = peg$FAILED;
24303
24613
  if (peg$silentFails === 0) {
24304
- peg$fail(peg$e104);
24614
+ peg$fail(peg$e105);
24305
24615
  }
24306
24616
  }
24307
24617
  if (s0 === peg$FAILED) {
24308
- if (input.substr(peg$currPos, 14) === peg$c101) {
24309
- s0 = peg$c101;
24310
- peg$currPos += 14;
24618
+ if (input.substr(peg$currPos, 15) === peg$c102) {
24619
+ s0 = peg$c102;
24620
+ peg$currPos += 15;
24311
24621
  } else {
24312
24622
  s0 = peg$FAILED;
24313
24623
  if (peg$silentFails === 0) {
24314
- peg$fail(peg$e105);
24624
+ peg$fail(peg$e106);
24315
24625
  }
24316
24626
  }
24317
24627
  if (s0 === peg$FAILED) {
24318
- if (input.substr(peg$currPos, 10) === peg$c102) {
24319
- s0 = peg$c102;
24320
- peg$currPos += 10;
24628
+ if (input.substr(peg$currPos, 14) === peg$c103) {
24629
+ s0 = peg$c103;
24630
+ peg$currPos += 14;
24321
24631
  } else {
24322
24632
  s0 = peg$FAILED;
24323
24633
  if (peg$silentFails === 0) {
24324
- peg$fail(peg$e106);
24634
+ peg$fail(peg$e107);
24325
24635
  }
24326
24636
  }
24327
24637
  if (s0 === peg$FAILED) {
24328
- if (input.substr(peg$currPos, 13) === peg$c103) {
24329
- s0 = peg$c103;
24330
- peg$currPos += 13;
24638
+ if (input.substr(peg$currPos, 10) === peg$c104) {
24639
+ s0 = peg$c104;
24640
+ peg$currPos += 10;
24331
24641
  } else {
24332
24642
  s0 = peg$FAILED;
24333
24643
  if (peg$silentFails === 0) {
24334
- peg$fail(peg$e107);
24644
+ peg$fail(peg$e108);
24335
24645
  }
24336
24646
  }
24337
24647
  if (s0 === peg$FAILED) {
24338
- if (input.substr(peg$currPos, 19) === peg$c104) {
24339
- s0 = peg$c104;
24340
- peg$currPos += 19;
24648
+ if (input.substr(peg$currPos, 13) === peg$c105) {
24649
+ s0 = peg$c105;
24650
+ peg$currPos += 13;
24341
24651
  } else {
24342
24652
  s0 = peg$FAILED;
24343
24653
  if (peg$silentFails === 0) {
24344
- peg$fail(peg$e108);
24654
+ peg$fail(peg$e109);
24345
24655
  }
24346
24656
  }
24347
24657
  if (s0 === peg$FAILED) {
24348
- if (input.substr(peg$currPos, 10) === peg$c105) {
24349
- s0 = peg$c105;
24350
- peg$currPos += 10;
24658
+ if (input.substr(peg$currPos, 19) === peg$c106) {
24659
+ s0 = peg$c106;
24660
+ peg$currPos += 19;
24351
24661
  } else {
24352
24662
  s0 = peg$FAILED;
24353
24663
  if (peg$silentFails === 0) {
24354
- peg$fail(peg$e109);
24664
+ peg$fail(peg$e110);
24355
24665
  }
24356
24666
  }
24357
24667
  if (s0 === peg$FAILED) {
24358
- if (input.substr(peg$currPos, 10) === peg$c106) {
24359
- s0 = peg$c106;
24668
+ if (input.substr(peg$currPos, 10) === peg$c107) {
24669
+ s0 = peg$c107;
24360
24670
  peg$currPos += 10;
24361
24671
  } else {
24362
24672
  s0 = peg$FAILED;
24363
24673
  if (peg$silentFails === 0) {
24364
- peg$fail(peg$e110);
24674
+ peg$fail(peg$e111);
24365
24675
  }
24366
24676
  }
24367
24677
  if (s0 === peg$FAILED) {
24368
- if (input.substr(peg$currPos, 13) === peg$c107) {
24369
- s0 = peg$c107;
24370
- peg$currPos += 13;
24678
+ if (input.substr(peg$currPos, 10) === peg$c108) {
24679
+ s0 = peg$c108;
24680
+ peg$currPos += 10;
24371
24681
  } else {
24372
24682
  s0 = peg$FAILED;
24373
24683
  if (peg$silentFails === 0) {
24374
- peg$fail(peg$e111);
24684
+ peg$fail(peg$e112);
24375
24685
  }
24376
24686
  }
24377
24687
  if (s0 === peg$FAILED) {
24378
- if (input.substr(peg$currPos, 11) === peg$c108) {
24379
- s0 = peg$c108;
24380
- peg$currPos += 11;
24688
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24689
+ s0 = peg$c68;
24690
+ peg$currPos += 13;
24381
24691
  } else {
24382
24692
  s0 = peg$FAILED;
24383
24693
  if (peg$silentFails === 0) {
24384
- peg$fail(peg$e112);
24694
+ peg$fail(peg$e72);
24695
+ }
24696
+ }
24697
+ if (s0 === peg$FAILED) {
24698
+ if (input.substr(peg$currPos, 11) === peg$c109) {
24699
+ s0 = peg$c109;
24700
+ peg$currPos += 11;
24701
+ } else {
24702
+ s0 = peg$FAILED;
24703
+ if (peg$silentFails === 0) {
24704
+ peg$fail(peg$e113);
24705
+ }
24385
24706
  }
24386
24707
  }
24387
24708
  }
@@ -24427,233 +24748,233 @@ function peg$parse(input, options) {
24427
24748
  }
24428
24749
  function peg$parseColor() {
24429
24750
  let s0;
24430
- if (input.substr(peg$currPos, 4) === peg$c109) {
24431
- s0 = peg$c109;
24751
+ if (input.substr(peg$currPos, 4) === peg$c110) {
24752
+ s0 = peg$c110;
24432
24753
  peg$currPos += 4;
24433
24754
  } else {
24434
24755
  s0 = peg$FAILED;
24435
24756
  if (peg$silentFails === 0) {
24436
- peg$fail(peg$e113);
24757
+ peg$fail(peg$e114);
24437
24758
  }
24438
24759
  }
24439
24760
  if (s0 === peg$FAILED) {
24440
- if (input.substr(peg$currPos, 5) === peg$c110) {
24441
- s0 = peg$c110;
24761
+ if (input.substr(peg$currPos, 5) === peg$c111) {
24762
+ s0 = peg$c111;
24442
24763
  peg$currPos += 5;
24443
24764
  } else {
24444
24765
  s0 = peg$FAILED;
24445
24766
  if (peg$silentFails === 0) {
24446
- peg$fail(peg$e114);
24767
+ peg$fail(peg$e115);
24447
24768
  }
24448
24769
  }
24449
24770
  if (s0 === peg$FAILED) {
24450
- if (input.substr(peg$currPos, 4) === peg$c111) {
24451
- s0 = peg$c111;
24771
+ if (input.substr(peg$currPos, 4) === peg$c112) {
24772
+ s0 = peg$c112;
24452
24773
  peg$currPos += 4;
24453
24774
  } else {
24454
24775
  s0 = peg$FAILED;
24455
24776
  if (peg$silentFails === 0) {
24456
- peg$fail(peg$e115);
24777
+ peg$fail(peg$e116);
24457
24778
  }
24458
24779
  }
24459
24780
  if (s0 === peg$FAILED) {
24460
- if (input.substr(peg$currPos, 5) === peg$c112) {
24461
- s0 = peg$c112;
24781
+ if (input.substr(peg$currPos, 5) === peg$c113) {
24782
+ s0 = peg$c113;
24462
24783
  peg$currPos += 5;
24463
24784
  } else {
24464
24785
  s0 = peg$FAILED;
24465
24786
  if (peg$silentFails === 0) {
24466
- peg$fail(peg$e116);
24787
+ peg$fail(peg$e117);
24467
24788
  }
24468
24789
  }
24469
24790
  if (s0 === peg$FAILED) {
24470
- if (input.substr(peg$currPos, 7) === peg$c113) {
24471
- s0 = peg$c113;
24791
+ if (input.substr(peg$currPos, 7) === peg$c114) {
24792
+ s0 = peg$c114;
24472
24793
  peg$currPos += 7;
24473
24794
  } else {
24474
24795
  s0 = peg$FAILED;
24475
24796
  if (peg$silentFails === 0) {
24476
- peg$fail(peg$e117);
24797
+ peg$fail(peg$e118);
24477
24798
  }
24478
24799
  }
24479
24800
  if (s0 === peg$FAILED) {
24480
- if (input.substr(peg$currPos, 9) === peg$c114) {
24481
- s0 = peg$c114;
24801
+ if (input.substr(peg$currPos, 9) === peg$c115) {
24802
+ s0 = peg$c115;
24482
24803
  peg$currPos += 9;
24483
24804
  } else {
24484
24805
  s0 = peg$FAILED;
24485
24806
  if (peg$silentFails === 0) {
24486
- peg$fail(peg$e118);
24807
+ peg$fail(peg$e119);
24487
24808
  }
24488
24809
  }
24489
24810
  if (s0 === peg$FAILED) {
24490
- if (input.substr(peg$currPos, 4) === peg$c115) {
24491
- s0 = peg$c115;
24811
+ if (input.substr(peg$currPos, 4) === peg$c116) {
24812
+ s0 = peg$c116;
24492
24813
  peg$currPos += 4;
24493
24814
  } else {
24494
24815
  s0 = peg$FAILED;
24495
24816
  if (peg$silentFails === 0) {
24496
- peg$fail(peg$e119);
24817
+ peg$fail(peg$e120);
24497
24818
  }
24498
24819
  }
24499
24820
  if (s0 === peg$FAILED) {
24500
- if (input.substr(peg$currPos, 8) === peg$c116) {
24501
- s0 = peg$c116;
24821
+ if (input.substr(peg$currPos, 8) === peg$c117) {
24822
+ s0 = peg$c117;
24502
24823
  peg$currPos += 8;
24503
24824
  } else {
24504
24825
  s0 = peg$FAILED;
24505
24826
  if (peg$silentFails === 0) {
24506
- peg$fail(peg$e120);
24827
+ peg$fail(peg$e121);
24507
24828
  }
24508
24829
  }
24509
24830
  if (s0 === peg$FAILED) {
24510
- if (input.substr(peg$currPos, 5) === peg$c117) {
24511
- s0 = peg$c117;
24831
+ if (input.substr(peg$currPos, 5) === peg$c118) {
24832
+ s0 = peg$c118;
24512
24833
  peg$currPos += 5;
24513
24834
  } else {
24514
24835
  s0 = peg$FAILED;
24515
24836
  if (peg$silentFails === 0) {
24516
- peg$fail(peg$e121);
24837
+ peg$fail(peg$e122);
24517
24838
  }
24518
24839
  }
24519
24840
  if (s0 === peg$FAILED) {
24520
- if (input.substr(peg$currPos, 4) === peg$c118) {
24521
- s0 = peg$c118;
24841
+ if (input.substr(peg$currPos, 4) === peg$c119) {
24842
+ s0 = peg$c119;
24522
24843
  peg$currPos += 4;
24523
24844
  } else {
24524
24845
  s0 = peg$FAILED;
24525
24846
  if (peg$silentFails === 0) {
24526
- peg$fail(peg$e122);
24847
+ peg$fail(peg$e123);
24527
24848
  }
24528
24849
  }
24529
24850
  if (s0 === peg$FAILED) {
24530
- if (input.substr(peg$currPos, 7) === peg$c119) {
24531
- s0 = peg$c119;
24851
+ if (input.substr(peg$currPos, 7) === peg$c120) {
24852
+ s0 = peg$c120;
24532
24853
  peg$currPos += 7;
24533
24854
  } else {
24534
24855
  s0 = peg$FAILED;
24535
24856
  if (peg$silentFails === 0) {
24536
- peg$fail(peg$e123);
24857
+ peg$fail(peg$e124);
24537
24858
  }
24538
24859
  }
24539
24860
  if (s0 === peg$FAILED) {
24540
- if (input.substr(peg$currPos, 6) === peg$c120) {
24541
- s0 = peg$c120;
24861
+ if (input.substr(peg$currPos, 6) === peg$c121) {
24862
+ s0 = peg$c121;
24542
24863
  peg$currPos += 6;
24543
24864
  } else {
24544
24865
  s0 = peg$FAILED;
24545
24866
  if (peg$silentFails === 0) {
24546
- peg$fail(peg$e124);
24867
+ peg$fail(peg$e125);
24547
24868
  }
24548
24869
  }
24549
24870
  if (s0 === peg$FAILED) {
24550
- if (input.substr(peg$currPos, 4) === peg$c121) {
24551
- s0 = peg$c121;
24871
+ if (input.substr(peg$currPos, 4) === peg$c122) {
24872
+ s0 = peg$c122;
24552
24873
  peg$currPos += 4;
24553
24874
  } else {
24554
24875
  s0 = peg$FAILED;
24555
24876
  if (peg$silentFails === 0) {
24556
- peg$fail(peg$e125);
24877
+ peg$fail(peg$e126);
24557
24878
  }
24558
24879
  }
24559
24880
  if (s0 === peg$FAILED) {
24560
- if (input.substr(peg$currPos, 5) === peg$c122) {
24561
- s0 = peg$c122;
24881
+ if (input.substr(peg$currPos, 5) === peg$c123) {
24882
+ s0 = peg$c123;
24562
24883
  peg$currPos += 5;
24563
24884
  } else {
24564
24885
  s0 = peg$FAILED;
24565
24886
  if (peg$silentFails === 0) {
24566
- peg$fail(peg$e126);
24887
+ peg$fail(peg$e127);
24567
24888
  }
24568
24889
  }
24569
24890
  if (s0 === peg$FAILED) {
24570
- if (input.substr(peg$currPos, 6) === peg$c123) {
24571
- s0 = peg$c123;
24891
+ if (input.substr(peg$currPos, 6) === peg$c124) {
24892
+ s0 = peg$c124;
24572
24893
  peg$currPos += 6;
24573
24894
  } else {
24574
24895
  s0 = peg$FAILED;
24575
24896
  if (peg$silentFails === 0) {
24576
- peg$fail(peg$e127);
24897
+ peg$fail(peg$e128);
24577
24898
  }
24578
24899
  }
24579
24900
  if (s0 === peg$FAILED) {
24580
- if (input.substr(peg$currPos, 4) === peg$c124) {
24581
- s0 = peg$c124;
24901
+ if (input.substr(peg$currPos, 4) === peg$c125) {
24902
+ s0 = peg$c125;
24582
24903
  peg$currPos += 4;
24583
24904
  } else {
24584
24905
  s0 = peg$FAILED;
24585
24906
  if (peg$silentFails === 0) {
24586
- peg$fail(peg$e128);
24907
+ peg$fail(peg$e129);
24587
24908
  }
24588
24909
  }
24589
24910
  if (s0 === peg$FAILED) {
24590
- if (input.substr(peg$currPos, 6) === peg$c125) {
24591
- s0 = peg$c125;
24911
+ if (input.substr(peg$currPos, 6) === peg$c126) {
24912
+ s0 = peg$c126;
24592
24913
  peg$currPos += 6;
24593
24914
  } else {
24594
24915
  s0 = peg$FAILED;
24595
24916
  if (peg$silentFails === 0) {
24596
- peg$fail(peg$e129);
24917
+ peg$fail(peg$e130);
24597
24918
  }
24598
24919
  }
24599
24920
  if (s0 === peg$FAILED) {
24600
- if (input.substr(peg$currPos, 3) === peg$c126) {
24601
- s0 = peg$c126;
24921
+ if (input.substr(peg$currPos, 3) === peg$c127) {
24922
+ s0 = peg$c127;
24602
24923
  peg$currPos += 3;
24603
24924
  } else {
24604
24925
  s0 = peg$FAILED;
24605
24926
  if (peg$silentFails === 0) {
24606
- peg$fail(peg$e130);
24927
+ peg$fail(peg$e131);
24607
24928
  }
24608
24929
  }
24609
24930
  if (s0 === peg$FAILED) {
24610
- if (input.substr(peg$currPos, 6) === peg$c127) {
24611
- s0 = peg$c127;
24931
+ if (input.substr(peg$currPos, 6) === peg$c128) {
24932
+ s0 = peg$c128;
24612
24933
  peg$currPos += 6;
24613
24934
  } else {
24614
24935
  s0 = peg$FAILED;
24615
24936
  if (peg$silentFails === 0) {
24616
- peg$fail(peg$e131);
24937
+ peg$fail(peg$e132);
24617
24938
  }
24618
24939
  }
24619
24940
  if (s0 === peg$FAILED) {
24620
- if (input.substr(peg$currPos, 4) === peg$c128) {
24621
- s0 = peg$c128;
24941
+ if (input.substr(peg$currPos, 4) === peg$c129) {
24942
+ s0 = peg$c129;
24622
24943
  peg$currPos += 4;
24623
24944
  } else {
24624
24945
  s0 = peg$FAILED;
24625
24946
  if (peg$silentFails === 0) {
24626
- peg$fail(peg$e132);
24947
+ peg$fail(peg$e133);
24627
24948
  }
24628
24949
  }
24629
24950
  if (s0 === peg$FAILED) {
24630
- if (input.substr(peg$currPos, 6) === peg$c129) {
24631
- s0 = peg$c129;
24951
+ if (input.substr(peg$currPos, 6) === peg$c130) {
24952
+ s0 = peg$c130;
24632
24953
  peg$currPos += 6;
24633
24954
  } else {
24634
24955
  s0 = peg$FAILED;
24635
24956
  if (peg$silentFails === 0) {
24636
- peg$fail(peg$e133);
24957
+ peg$fail(peg$e134);
24637
24958
  }
24638
24959
  }
24639
24960
  if (s0 === peg$FAILED) {
24640
- if (input.substr(peg$currPos, 5) === peg$c130) {
24641
- s0 = peg$c130;
24961
+ if (input.substr(peg$currPos, 5) === peg$c131) {
24962
+ s0 = peg$c131;
24642
24963
  peg$currPos += 5;
24643
24964
  } else {
24644
24965
  s0 = peg$FAILED;
24645
24966
  if (peg$silentFails === 0) {
24646
- peg$fail(peg$e134);
24967
+ peg$fail(peg$e135);
24647
24968
  }
24648
24969
  }
24649
24970
  if (s0 === peg$FAILED) {
24650
- if (input.substr(peg$currPos, 6) === peg$c131) {
24651
- s0 = peg$c131;
24971
+ if (input.substr(peg$currPos, 6) === peg$c132) {
24972
+ s0 = peg$c132;
24652
24973
  peg$currPos += 6;
24653
24974
  } else {
24654
24975
  s0 = peg$FAILED;
24655
24976
  if (peg$silentFails === 0) {
24656
- peg$fail(peg$e135);
24977
+ peg$fail(peg$e136);
24657
24978
  }
24658
24979
  }
24659
24980
  }
@@ -24680,13 +25001,125 @@ function peg$parse(input, options) {
24680
25001
  }
24681
25002
  return s0;
24682
25003
  }
25004
+ function peg$parseHighlightColor() {
25005
+ let s0;
25006
+ if (input.substr(peg$currPos, 6) === peg$c124) {
25007
+ s0 = peg$c124;
25008
+ peg$currPos += 6;
25009
+ } else {
25010
+ s0 = peg$FAILED;
25011
+ if (peg$silentFails === 0) {
25012
+ peg$fail(peg$e128);
25013
+ }
25014
+ }
25015
+ if (s0 === peg$FAILED) {
25016
+ if (input.substr(peg$currPos, 6) === peg$c132) {
25017
+ s0 = peg$c132;
25018
+ peg$currPos += 6;
25019
+ } else {
25020
+ s0 = peg$FAILED;
25021
+ if (peg$silentFails === 0) {
25022
+ peg$fail(peg$e136);
25023
+ }
25024
+ }
25025
+ if (s0 === peg$FAILED) {
25026
+ if (input.substr(peg$currPos, 5) === peg$c118) {
25027
+ s0 = peg$c118;
25028
+ peg$currPos += 5;
25029
+ } else {
25030
+ s0 = peg$FAILED;
25031
+ if (peg$silentFails === 0) {
25032
+ peg$fail(peg$e122);
25033
+ }
25034
+ }
25035
+ if (s0 === peg$FAILED) {
25036
+ if (input.substr(peg$currPos, 4) === peg$c112) {
25037
+ s0 = peg$c112;
25038
+ peg$currPos += 4;
25039
+ } else {
25040
+ s0 = peg$FAILED;
25041
+ if (peg$silentFails === 0) {
25042
+ peg$fail(peg$e116);
25043
+ }
25044
+ }
25045
+ if (s0 === peg$FAILED) {
25046
+ if (input.substr(peg$currPos, 6) === peg$c126) {
25047
+ s0 = peg$c126;
25048
+ peg$currPos += 6;
25049
+ } else {
25050
+ s0 = peg$FAILED;
25051
+ if (peg$silentFails === 0) {
25052
+ peg$fail(peg$e130);
25053
+ }
25054
+ }
25055
+ if (s0 === peg$FAILED) {
25056
+ if (input.substr(peg$currPos, 4) === peg$c125) {
25057
+ s0 = peg$c125;
25058
+ peg$currPos += 4;
25059
+ } else {
25060
+ s0 = peg$FAILED;
25061
+ if (peg$silentFails === 0) {
25062
+ peg$fail(peg$e129);
25063
+ }
25064
+ }
25065
+ if (s0 === peg$FAILED) {
25066
+ if (input.substr(peg$currPos, 5) === peg$c113) {
25067
+ s0 = peg$c113;
25068
+ peg$currPos += 5;
25069
+ } else {
25070
+ s0 = peg$FAILED;
25071
+ if (peg$silentFails === 0) {
25072
+ peg$fail(peg$e117);
25073
+ }
25074
+ }
25075
+ if (s0 === peg$FAILED) {
25076
+ if (input.substr(peg$currPos, 5) === peg$c131) {
25077
+ s0 = peg$c131;
25078
+ peg$currPos += 5;
25079
+ } else {
25080
+ s0 = peg$FAILED;
25081
+ if (peg$silentFails === 0) {
25082
+ peg$fail(peg$e135);
25083
+ }
25084
+ }
25085
+ if (s0 === peg$FAILED) {
25086
+ if (input.substr(peg$currPos, 5) === peg$c111) {
25087
+ s0 = peg$c111;
25088
+ peg$currPos += 5;
25089
+ } else {
25090
+ s0 = peg$FAILED;
25091
+ if (peg$silentFails === 0) {
25092
+ peg$fail(peg$e115);
25093
+ }
25094
+ }
25095
+ if (s0 === peg$FAILED) {
25096
+ if (input.substr(peg$currPos, 4) === peg$c116) {
25097
+ s0 = peg$c116;
25098
+ peg$currPos += 4;
25099
+ } else {
25100
+ s0 = peg$FAILED;
25101
+ if (peg$silentFails === 0) {
25102
+ peg$fail(peg$e120);
25103
+ }
25104
+ }
25105
+ }
25106
+ }
25107
+ }
25108
+ }
25109
+ }
25110
+ }
25111
+ }
25112
+ }
25113
+ }
25114
+ return s0;
25115
+ }
24683
25116
  function peg$parsebitmarkMinusMinus() {
24684
25117
  let s0, s1;
24685
25118
  peg$silentFails++;
24686
25119
  s0 = peg$currPos;
24687
25120
  s1 = peg$parsebitmarkMinusMinusString();
24688
25121
  peg$savedPos = s0;
24689
- s1 = peg$f91(s1);
25122
+ s1 = peg$f92(s1);
24690
25123
  s0 = s1;
24691
25124
  peg$silentFails--;
24692
25125
  return s0;
@@ -24712,7 +25145,7 @@ function peg$parse(input, options) {
24712
25145
  }
24713
25146
  }
24714
25147
  peg$savedPos = s0;
24715
- s0 = peg$f92(s1, s2);
25148
+ s0 = peg$f93(s1, s2);
24716
25149
  peg$silentFails--;
24717
25150
  return s0;
24718
25151
  }
@@ -24722,7 +25155,7 @@ function peg$parse(input, options) {
24722
25155
  s1 = peg$parseNL();
24723
25156
  if (s1 !== peg$FAILED) {
24724
25157
  peg$savedPos = s0;
24725
- s1 = peg$f93();
25158
+ s1 = peg$f94();
24726
25159
  }
24727
25160
  s0 = s1;
24728
25161
  if (s0 === peg$FAILED) {
@@ -24851,7 +25284,7 @@ function peg$parse(input, options) {
24851
25284
  }
24852
25285
  if (s1 !== peg$FAILED) {
24853
25286
  peg$savedPos = s0;
24854
- s1 = peg$f94(s1);
25287
+ s1 = peg$f95(s1);
24855
25288
  }
24856
25289
  s0 = s1;
24857
25290
  }
@@ -24860,12 +25293,12 @@ function peg$parse(input, options) {
24860
25293
  function peg$parseBoldHalfTag() {
24861
25294
  let s0;
24862
25295
  if (input.charCodeAt(peg$currPos) === 42) {
24863
- s0 = peg$c132;
25296
+ s0 = peg$c133;
24864
25297
  peg$currPos++;
24865
25298
  } else {
24866
25299
  s0 = peg$FAILED;
24867
25300
  if (peg$silentFails === 0) {
24868
- peg$fail(peg$e136);
25301
+ peg$fail(peg$e137);
24869
25302
  }
24870
25303
  }
24871
25304
  return s0;
@@ -24873,12 +25306,12 @@ function peg$parse(input, options) {
24873
25306
  function peg$parseItalicHalfTag() {
24874
25307
  let s0;
24875
25308
  if (input.charCodeAt(peg$currPos) === 95) {
24876
- s0 = peg$c133;
25309
+ s0 = peg$c134;
24877
25310
  peg$currPos++;
24878
25311
  } else {
24879
25312
  s0 = peg$FAILED;
24880
25313
  if (peg$silentFails === 0) {
24881
- peg$fail(peg$e137);
25314
+ peg$fail(peg$e138);
24882
25315
  }
24883
25316
  }
24884
25317
  return s0;
@@ -24886,12 +25319,12 @@ function peg$parse(input, options) {
24886
25319
  function peg$parseLightHalfTag() {
24887
25320
  let s0;
24888
25321
  if (input.charCodeAt(peg$currPos) === 96) {
24889
- s0 = peg$c134;
25322
+ s0 = peg$c135;
24890
25323
  peg$currPos++;
24891
25324
  } else {
24892
25325
  s0 = peg$FAILED;
24893
25326
  if (peg$silentFails === 0) {
24894
- peg$fail(peg$e138);
25327
+ peg$fail(peg$e139);
24895
25328
  }
24896
25329
  }
24897
25330
  return s0;
@@ -24899,12 +25332,12 @@ function peg$parse(input, options) {
24899
25332
  function peg$parseHighlightHalfTag() {
24900
25333
  let s0;
24901
25334
  if (input.charCodeAt(peg$currPos) === 33) {
24902
- s0 = peg$c135;
25335
+ s0 = peg$c136;
24903
25336
  peg$currPos++;
24904
25337
  } else {
24905
25338
  s0 = peg$FAILED;
24906
25339
  if (peg$silentFails === 0) {
24907
- peg$fail(peg$e139);
25340
+ peg$fail(peg$e140);
24908
25341
  }
24909
25342
  }
24910
25343
  return s0;
@@ -24987,13 +25420,13 @@ function peg$parse(input, options) {
24987
25420
  }
24988
25421
  function peg$parseBodyBitOpenTag() {
24989
25422
  let s0;
24990
- if (input.substr(peg$currPos, 2) === peg$c136) {
24991
- s0 = peg$c136;
25423
+ if (input.substr(peg$currPos, 2) === peg$c137) {
25424
+ s0 = peg$c137;
24992
25425
  peg$currPos += 2;
24993
25426
  } else {
24994
25427
  s0 = peg$FAILED;
24995
25428
  if (peg$silentFails === 0) {
24996
- peg$fail(peg$e140);
25429
+ peg$fail(peg$e141);
24997
25430
  }
24998
25431
  }
24999
25432
  return s0;
@@ -25001,12 +25434,12 @@ function peg$parse(input, options) {
25001
25434
  function peg$parseBodyBitCloseTag() {
25002
25435
  let s0;
25003
25436
  if (input.charCodeAt(peg$currPos) === 93) {
25004
- s0 = peg$c137;
25437
+ s0 = peg$c138;
25005
25438
  peg$currPos++;
25006
25439
  } else {
25007
25440
  s0 = peg$FAILED;
25008
25441
  if (peg$silentFails === 0) {
25009
- peg$fail(peg$e141);
25442
+ peg$fail(peg$e142);
25010
25443
  }
25011
25444
  }
25012
25445
  return s0;
@@ -25052,7 +25485,7 @@ function peg$parse(input, options) {
25052
25485
  s3 = peg$parseBodyBitCloseTag();
25053
25486
  if (s3 !== peg$FAILED) {
25054
25487
  peg$savedPos = s0;
25055
- s0 = peg$f95(s2);
25488
+ s0 = peg$f96(s2);
25056
25489
  } else {
25057
25490
  peg$currPos = s0;
25058
25491
  s0 = peg$FAILED;
@@ -25142,7 +25575,7 @@ function peg$parse(input, options) {
25142
25575
  s3 = peg$parseBoldTag();
25143
25576
  if (s3 !== peg$FAILED) {
25144
25577
  peg$savedPos = s0;
25145
- s0 = peg$f96(s2);
25578
+ s0 = peg$f97(s2);
25146
25579
  } else {
25147
25580
  peg$currPos = s0;
25148
25581
  s0 = peg$FAILED;
@@ -25228,7 +25661,7 @@ function peg$parse(input, options) {
25228
25661
  s3 = peg$parseItalicTag();
25229
25662
  if (s3 !== peg$FAILED) {
25230
25663
  peg$savedPos = s0;
25231
- s0 = peg$f97(s2);
25664
+ s0 = peg$f98(s2);
25232
25665
  } else {
25233
25666
  peg$currPos = s0;
25234
25667
  s0 = peg$FAILED;
@@ -25314,7 +25747,7 @@ function peg$parse(input, options) {
25314
25747
  s3 = peg$parseLightTag();
25315
25748
  if (s3 !== peg$FAILED) {
25316
25749
  peg$savedPos = s0;
25317
- s0 = peg$f98(s2);
25750
+ s0 = peg$f99(s2);
25318
25751
  } else {
25319
25752
  peg$currPos = s0;
25320
25753
  s0 = peg$FAILED;
@@ -25400,7 +25833,7 @@ function peg$parse(input, options) {
25400
25833
  s3 = peg$parseHighlightTag();
25401
25834
  if (s3 !== peg$FAILED) {
25402
25835
  peg$savedPos = s0;
25403
- s0 = peg$f99(s2);
25836
+ s0 = peg$f100(s2);
25404
25837
  } else {
25405
25838
  peg$currPos = s0;
25406
25839
  s0 = peg$FAILED;
@@ -25485,22 +25918,22 @@ function peg$parse(input, options) {
25485
25918
  let s0, s1;
25486
25919
  peg$silentFails++;
25487
25920
  if (input.charCodeAt(peg$currPos) === 10) {
25488
- s0 = peg$c138;
25921
+ s0 = peg$c139;
25489
25922
  peg$currPos++;
25490
25923
  } else {
25491
25924
  s0 = peg$FAILED;
25492
25925
  if (peg$silentFails === 0) {
25493
- peg$fail(peg$e143);
25926
+ peg$fail(peg$e144);
25494
25927
  }
25495
25928
  }
25496
25929
  if (s0 === peg$FAILED) {
25497
- if (input.substr(peg$currPos, 2) === peg$c139) {
25498
- s0 = peg$c139;
25930
+ if (input.substr(peg$currPos, 2) === peg$c140) {
25931
+ s0 = peg$c140;
25499
25932
  peg$currPos += 2;
25500
25933
  } else {
25501
25934
  s0 = peg$FAILED;
25502
25935
  if (peg$silentFails === 0) {
25503
- peg$fail(peg$e144);
25936
+ peg$fail(peg$e145);
25504
25937
  }
25505
25938
  }
25506
25939
  if (s0 === peg$FAILED) {
@@ -25510,7 +25943,7 @@ function peg$parse(input, options) {
25510
25943
  } else {
25511
25944
  s0 = peg$FAILED;
25512
25945
  if (peg$silentFails === 0) {
25513
- peg$fail(peg$e145);
25946
+ peg$fail(peg$e146);
25514
25947
  }
25515
25948
  }
25516
25949
  }
@@ -25519,7 +25952,7 @@ function peg$parse(input, options) {
25519
25952
  if (s0 === peg$FAILED) {
25520
25953
  s1 = peg$FAILED;
25521
25954
  if (peg$silentFails === 0) {
25522
- peg$fail(peg$e142);
25955
+ peg$fail(peg$e143);
25523
25956
  }
25524
25957
  }
25525
25958
  return s0;
@@ -25532,7 +25965,7 @@ function peg$parse(input, options) {
25532
25965
  } else {
25533
25966
  s0 = peg$FAILED;
25534
25967
  if (peg$silentFails === 0) {
25535
- peg$fail(peg$e146);
25968
+ peg$fail(peg$e147);
25536
25969
  }
25537
25970
  }
25538
25971
  return s0;
@@ -25566,35 +25999,35 @@ function peg$parse(input, options) {
25566
25999
  let s0, s1, s2, s3, s4, s5, s6, s7, s8;
25567
26000
  s0 = peg$currPos;
25568
26001
  s1 = peg$currPos;
25569
- if (input.substr(peg$currPos, 4) === peg$c140) {
25570
- s2 = peg$c140;
26002
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26003
+ s2 = peg$c141;
25571
26004
  peg$currPos += 4;
25572
26005
  } else {
25573
26006
  s2 = peg$FAILED;
25574
26007
  if (peg$silentFails === 0) {
25575
- peg$fail(peg$e147);
26008
+ peg$fail(peg$e148);
25576
26009
  }
25577
26010
  }
25578
26011
  if (s2 !== peg$FAILED) {
25579
26012
  if (input.charCodeAt(peg$currPos) === 115) {
25580
- s3 = peg$c141;
26013
+ s3 = peg$c142;
25581
26014
  peg$currPos++;
25582
26015
  } else {
25583
26016
  s3 = peg$FAILED;
25584
26017
  if (peg$silentFails === 0) {
25585
- peg$fail(peg$e148);
26018
+ peg$fail(peg$e149);
25586
26019
  }
25587
26020
  }
25588
26021
  if (s3 === peg$FAILED) {
25589
26022
  s3 = null;
25590
26023
  }
25591
- if (input.substr(peg$currPos, 3) === peg$c142) {
25592
- s4 = peg$c142;
26024
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26025
+ s4 = peg$c143;
25593
26026
  peg$currPos += 3;
25594
26027
  } else {
25595
26028
  s4 = peg$FAILED;
25596
26029
  if (peg$silentFails === 0) {
25597
- peg$fail(peg$e149);
26030
+ peg$fail(peg$e150);
25598
26031
  }
25599
26032
  }
25600
26033
  if (s4 !== peg$FAILED) {
@@ -25672,35 +26105,35 @@ function peg$parse(input, options) {
25672
26105
  s0 = peg$currPos;
25673
26106
  s1 = peg$currPos;
25674
26107
  s2 = peg$currPos;
25675
- if (input.substr(peg$currPos, 4) === peg$c140) {
25676
- s3 = peg$c140;
26108
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26109
+ s3 = peg$c141;
25677
26110
  peg$currPos += 4;
25678
26111
  } else {
25679
26112
  s3 = peg$FAILED;
25680
26113
  if (peg$silentFails === 0) {
25681
- peg$fail(peg$e147);
26114
+ peg$fail(peg$e148);
25682
26115
  }
25683
26116
  }
25684
26117
  if (s3 !== peg$FAILED) {
25685
26118
  if (input.charCodeAt(peg$currPos) === 115) {
25686
- s4 = peg$c141;
26119
+ s4 = peg$c142;
25687
26120
  peg$currPos++;
25688
26121
  } else {
25689
26122
  s4 = peg$FAILED;
25690
26123
  if (peg$silentFails === 0) {
25691
- peg$fail(peg$e148);
26124
+ peg$fail(peg$e149);
25692
26125
  }
25693
26126
  }
25694
26127
  if (s4 === peg$FAILED) {
25695
26128
  s4 = null;
25696
26129
  }
25697
- if (input.substr(peg$currPos, 3) === peg$c142) {
25698
- s5 = peg$c142;
26130
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26131
+ s5 = peg$c143;
25699
26132
  peg$currPos += 3;
25700
26133
  } else {
25701
26134
  s5 = peg$FAILED;
25702
26135
  if (peg$silentFails === 0) {
25703
- peg$fail(peg$e149);
26136
+ peg$fail(peg$e150);
25704
26137
  }
25705
26138
  }
25706
26139
  if (s5 !== peg$FAILED) {
@@ -25715,13 +26148,13 @@ function peg$parse(input, options) {
25715
26148
  s2 = peg$FAILED;
25716
26149
  }
25717
26150
  if (s2 === peg$FAILED) {
25718
- if (input.substr(peg$currPos, 7) === peg$c143) {
25719
- s2 = peg$c143;
26151
+ if (input.substr(peg$currPos, 7) === peg$c144) {
26152
+ s2 = peg$c144;
25720
26153
  peg$currPos += 7;
25721
26154
  } else {
25722
26155
  s2 = peg$FAILED;
25723
26156
  if (peg$silentFails === 0) {
25724
- peg$fail(peg$e150);
26157
+ peg$fail(peg$e151);
25725
26158
  }
25726
26159
  }
25727
26160
  }
@@ -25786,7 +26219,7 @@ function peg$parse(input, options) {
25786
26219
  }
25787
26220
  s2 = input.substring(s2, peg$currPos);
25788
26221
  peg$savedPos = s0;
25789
- s0 = peg$f100(s1, s2);
26222
+ s0 = peg$f101(s1, s2);
25790
26223
  } else {
25791
26224
  peg$currPos = s0;
25792
26225
  s0 = peg$FAILED;
@@ -25801,12 +26234,13 @@ function peg$parse(input, options) {
25801
26234
  } else {
25802
26235
  s0 = peg$FAILED;
25803
26236
  if (peg$silentFails === 0) {
25804
- peg$fail(peg$e151);
26237
+ peg$fail(peg$e152);
25805
26238
  }
25806
26239
  }
25807
26240
  return s0;
25808
26241
  }
25809
26242
  var indentStack = [], indent = "";
26243
+ input = input.replace(/\s+$/, "");
25810
26244
  input = input.trimStart();
25811
26245
  peg$result = peg$startRuleFunction();
25812
26246
  const peg$success = peg$result !== peg$FAILED && peg$currPos === input.length;