@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.
@@ -3186,11 +3186,16 @@ var CARDSETS = {
3186
3186
  exportJsonKey: { "@bit": { heading: { forKeys: "$" } } }
3187
3187
  },
3188
3188
  {
3189
+ // Axis-side `[@isCaseSensitive]` is a cascade SOURCE
3190
+ // only: it must fire (so value-side cells inherit via
3191
+ // `$ancestor`) but emit nothing itself — emission is
3192
+ // owned by the value-side's cell-nested rule
3193
+ // (`cells[$s].isCaseSensitive`, PLAN-122). The earlier
3194
+ // flat `$ancestor` rule here double-emitted at bit
3195
+ // scope and broke the `optimize(fullize(x)) ==
3196
+ // optimize(x)` law on match-matrix.
3189
3197
  key: ConfigKey.property_isCaseSensitive,
3190
- exportJsonKey: [
3191
- { "@absent": { isCaseSensitive: "$ancestor" } },
3192
- { isCaseSensitive: "$" }
3193
- ],
3198
+ exportJsonKey: {},
3194
3199
  description: "Property to indicate if the match is case sensitive.",
3195
3200
  format: TagFormat.boolean
3196
3201
  }
@@ -3296,10 +3301,17 @@ var CARDSETS = {
3296
3301
  ]
3297
3302
  },
3298
3303
  {
3304
+ // matchMatrix cells are NESTED (`cells[$s]`), unlike matchPairs'
3305
+ // flat pair object — so `isCaseSensitive` must be written INTO the
3306
+ // cell, mirroring the sibling `example` rule above (`cells: { $s:
3307
+ // {...} }`). The earlier flat `{ isCaseSensitive: '$' }` (copied
3308
+ // from matchPairs) wrote at bit scope, so an authored cell-side
3309
+ // `[@isCaseSensitive:false]` (e.g. on a `++` value) was dropped
3310
+ // instead of landing on the cell. PLAN-122.
3299
3311
  key: ConfigKey.property_isCaseSensitive,
3300
3312
  exportJsonKey: [
3301
- { "@absent": { isCaseSensitive: "$ancestor" } },
3302
- { isCaseSensitive: "$" }
3313
+ { "@absent": { cells: { $s: { isCaseSensitive: "$ancestor" } } } },
3314
+ { cells: { $s: { isCaseSensitive: "$" } } }
3303
3315
  ],
3304
3316
  description: "Property to indicate if the match is case sensitive.",
3305
3317
  format: TagFormat.boolean
@@ -5063,18 +5075,16 @@ var GROUPS = {
5063
5075
  description: "Item, lead, page number, margin number, instruction and hint tags"
5064
5076
  },
5065
5077
  {
5066
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5067
- // `@example` from the bit header marks EVERY choice with
5068
- // `isExample: true` (matches BPG output), but only the
5069
- // FIRST correct choice gets `example: true` (BPG
5070
- // `fillBooleanExample(..., firstCorrectOnly=true)`).
5071
- //
5072
- // Two `@absent` rules, picked first-match-wins:
5073
- // 1. Verbose form gated on `@parent.isCorrect=true` with
5074
- // `maxEmits:1` fires once for the first correct.
5075
- // 2. Plain `@absent` fires on every remaining entry
5076
- // (subsequent corrects and all incorrects), emitting
5077
- // `isExample` only.
5078
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5079
+ // bpg 5.31 probing: cascade-fired `@example` decorates only
5080
+ // the FIRST correct choice (`example: true` via the
5081
+ // `@parent.isCorrect`-gated `@absent` rule, `maxEmits:1`
5082
+ // BPG `fillBooleanExample(..., firstCorrectOnly=true)`).
5083
+ // There is deliberately NO plain `@absent` rule: an ancestor
5084
+ // bare example must leave the remaining choices untouched
5085
+ // (a plain `@absent` decoration broke the
5086
+ // `optimize(fullize(x)) == optimize(x)` law the
5087
+ // synthesized `isExample` keys survived re-optimization).
5078
5088
  // The `serialize_cards` cascade-counter scope holds the cap
5079
5089
  // across the whole cardset.
5080
5090
  // @card scope-shift writes choice-container isExample (e.g.
@@ -5102,13 +5112,6 @@ var GROUPS = {
5102
5112
  "@card": { isExample: true }
5103
5113
  }
5104
5114
  },
5105
- {
5106
- "@absent": {
5107
- isExample: true,
5108
- "@bit": { isExample: true },
5109
- "@card": { isExample: true }
5110
- }
5111
- },
5112
5115
  {
5113
5116
  isExample: true,
5114
5117
  example: "$",
@@ -5150,11 +5153,13 @@ var GROUPS = {
5150
5153
  description: "Item, lead, page number, margin number, instruction and hint tags"
5151
5154
  },
5152
5155
  {
5153
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5154
- // `@example` on a `-` (incorrect choice) emits
5155
- // `isExample: true` only — no `example` (BPG fixtures show
5156
- // `isExample` on every choice, but `example` only on the
5157
- // first correct via firstCorrectOnly cascade).
5156
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5157
+ // bpg 5.31 probing: an ancestor bare `@example` leaves
5158
+ // incorrect choices UNTOUCHED — no cascade decoration at
5159
+ // all (no `@absent` rule; a plain `@absent isExample`
5160
+ // decoration broke the `optimize(fullize(x)) ==
5161
+ // optimize(x)` law). Only an explicit `[@example]` on the
5162
+ // choice itself emits.
5158
5163
  // @card scope-shift writes choice-container isExample.
5159
5164
  key: ConfigKey.property_example,
5160
5165
  jsonKey: "example",
@@ -5167,13 +5172,6 @@ var GROUPS = {
5167
5172
  "@card": { isExample: true }
5168
5173
  }
5169
5174
  },
5170
- {
5171
- "@absent": {
5172
- isExample: true,
5173
- "@bit": { isExample: true },
5174
- "@card": { isExample: true }
5175
- }
5176
- },
5177
5175
  {
5178
5176
  isExample: true,
5179
5177
  example: "$",
@@ -5181,7 +5179,7 @@ var GROUPS = {
5181
5179
  "@card": { isExample: true }
5182
5180
  }
5183
5181
  ],
5184
- description: "An example for the true/false statement/question (incorrect entry \u2014 isExample only on cascade)",
5182
+ 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)",
5185
5183
  format: TagFormat.boolean,
5186
5184
  nullable: true
5187
5185
  }
@@ -7240,7 +7238,9 @@ var BITS = {
7240
7238
  description: "Common tags for quiz bits"
7241
7239
  },
7242
7240
  {
7243
- exportJsonKey: { title: "$" },
7241
+ maxCount: 2,
7242
+ jsonKey: "title|multi(count=2, key=subtitle)",
7243
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7244
7244
  key: ConfigKey.tag_title,
7245
7245
  description: "The title of the flashcard quiz"
7246
7246
  },
@@ -7345,7 +7345,9 @@ var BITS = {
7345
7345
  description: "Article bit, used for articles / paragraphs",
7346
7346
  tags: [
7347
7347
  {
7348
- exportJsonKey: { title: "$" },
7348
+ maxCount: 2,
7349
+ jsonKey: "title|multi(count=2, key=subtitle)",
7350
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7349
7351
  key: ConfigKey.tag_title,
7350
7352
  description: "The title of the article"
7351
7353
  }
@@ -9311,7 +9313,9 @@ var BITS = {
9311
9313
  description: "Example bit, used to provide examples in articles or books",
9312
9314
  tags: [
9313
9315
  {
9314
- exportJsonKey: { title: "$" },
9316
+ maxCount: 2,
9317
+ jsonKey: "title|multi(count=2, key=subtitle)",
9318
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
9315
9319
  key: ConfigKey.tag_title,
9316
9320
  description: "The title of the example"
9317
9321
  },
@@ -11912,7 +11916,9 @@ var BITS = {
11912
11916
  description: "Page bit, used to create pages in articles or books",
11913
11917
  tags: [
11914
11918
  {
11915
- exportJsonKey: { title: "$" },
11919
+ maxCount: 2,
11920
+ jsonKey: "title|multi(count=2, key=subtitle)",
11921
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
11916
11922
  key: ConfigKey.tag_title,
11917
11923
  description: "Title of the page, used to display the page title"
11918
11924
  },
@@ -12370,7 +12376,9 @@ var BITS = {
12370
12376
  description: "Review note bit, used to create review notes in articles or books",
12371
12377
  tags: [
12372
12378
  {
12373
- exportJsonKey: { title: "$" },
12379
+ maxCount: 2,
12380
+ jsonKey: "title|multi(count=2, key=subtitle)",
12381
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
12374
12382
  key: ConfigKey.tag_title,
12375
12383
  description: "Title of the review note, used to display the note title"
12376
12384
  },
@@ -13956,7 +13964,7 @@ var instance2 = new Config();
13956
13964
  // src/generated/package_info.ts
13957
13965
  var PACKAGE_INFO = {
13958
13966
  "name": "@gmb/bitmark-parser-generator",
13959
- "version": "5.31.0",
13967
+ "version": "5.32.0",
13960
13968
  "author": "Get More Brain Ltd",
13961
13969
  "license": "ISC",
13962
13970
  "description": "A bitmark parser and generator using Peggy.js"
@@ -14231,6 +14239,7 @@ var TextMarkType = {
14231
14239
  del: "del",
14232
14240
  underline: "underline",
14233
14241
  doubleUnderline: "doubleUnderline",
14242
+ smallcaps: "smallcaps",
14234
14243
  circle: "circle",
14235
14244
  languageEmRed: "languageEmRed",
14236
14245
  languageEmOrange: "languageEmOrange",
@@ -14262,7 +14271,10 @@ var TextMarkType = {
14262
14271
  code: "code",
14263
14272
  timer: "timer",
14264
14273
  duration: "duration",
14274
+ // legacy: no longer produced by the parser (>= 8.41.1), accepted as generator input
14265
14275
  color: "color",
14276
+ // legacy: no longer produced by the parser (>= 8.41.1, now textStyle), accepted as generator input
14277
+ textStyle: "textStyle",
14266
14278
  colorPicker: "colorPicker",
14267
14279
  comment: "comment"
14268
14280
  };
@@ -15847,6 +15859,7 @@ var INLINE_MARK_TYPES = [
15847
15859
  TextMarkType.del,
15848
15860
  TextMarkType.underline,
15849
15861
  TextMarkType.doubleUnderline,
15862
+ TextMarkType.smallcaps,
15850
15863
  TextMarkType.circle,
15851
15864
  TextMarkType.languageEmRed,
15852
15865
  TextMarkType.languageEmOrange,
@@ -15877,11 +15890,24 @@ var INLINE_MARK_TYPES = [
15877
15890
  TextMarkType.var,
15878
15891
  TextMarkType.code,
15879
15892
  TextMarkType.timer,
15880
- TextMarkType.duration,
15881
15893
  TextMarkType.color,
15894
+ // legacy input, written as color: (same as textStyle)
15895
+ TextMarkType.textStyle,
15882
15896
  TextMarkType.colorPicker,
15883
15897
  TextMarkType.comment
15884
15898
  ];
15899
+ var HIGHLIGHT_COLORS = [
15900
+ "orange",
15901
+ "yellow",
15902
+ "green",
15903
+ "blue",
15904
+ "purple",
15905
+ "pink",
15906
+ "brown",
15907
+ "white",
15908
+ "black",
15909
+ "gray"
15910
+ ];
15885
15911
  var INDENTATION_REGEX = new RegExp(/(\n|\r\n)/, "g");
15886
15912
  var LINK_REGEX = new RegExp(/https?:\/\/|mailto:(.*)/, "g");
15887
15913
  var LINK_BREAKSCAPE_REGEX = new RegExp(/\]/, "g");
@@ -16445,14 +16471,16 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16445
16471
  this.writeMarkTextWrapper(INLINE_MARK);
16446
16472
  return;
16447
16473
  }
16448
- const singleMark = node.marks.length === 1 && forceSingleMark;
16449
- const markStartEnd = node.marks.reduce(
16474
+ const marks = this.getWritableMarks(node.marks);
16475
+ if (marks.length === 0) return;
16476
+ const singleMark = marks.length === 1 && forceSingleMark;
16477
+ const markStartEnd = marks.reduce(
16450
16478
  (acc, mark) => {
16451
16479
  if (acc) return acc;
16452
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16480
+ if (this.isStandardMark(mark)) {
16453
16481
  if (singleMark) return STANDARD_MARKS[mark.type];
16454
16482
  return INLINE_MARK;
16455
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16483
+ } else if (this.isInlineMark(mark)) {
16456
16484
  return INLINE_MARK;
16457
16485
  } else {
16458
16486
  }
@@ -16467,8 +16495,8 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16467
16495
  this.writeMarkTextWrapper(markStartEnd);
16468
16496
  }
16469
16497
  if (stage == Stage.between) {
16470
- for (const mark of node.marks) {
16471
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16498
+ for (const mark of marks) {
16499
+ if (this.isStandardMark(mark)) {
16472
16500
  if (!singleMark) {
16473
16501
  this.writeInlineMarkStartEnd();
16474
16502
  this.writeInlineMark(mark);
@@ -16497,7 +16525,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16497
16525
  } else if (TextMarkType.symbol === mark.type) {
16498
16526
  this.writeInlineMarkStartEnd();
16499
16527
  this.writeSymbolMark(mark);
16500
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16528
+ } else if (this.isInlineMark(mark)) {
16501
16529
  this.writeInlineMarkStartEnd();
16502
16530
  this.writeInlineMark(mark);
16503
16531
  } else {
@@ -16506,12 +16534,12 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16506
16534
  }
16507
16535
  if (stage == Stage.exit) {
16508
16536
  let inlineMarkWritten = false;
16509
- for (const mark of node.marks) {
16510
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16537
+ for (const mark of marks) {
16538
+ if (this.isStandardMark(mark)) {
16511
16539
  if (!singleMark) {
16512
16540
  inlineMarkWritten = true;
16513
16541
  }
16514
- } 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) {
16542
+ } 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)) {
16515
16543
  inlineMarkWritten = true;
16516
16544
  } else {
16517
16545
  }
@@ -16592,8 +16620,15 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16592
16620
  if (node.attrs == null || !node.attrs.src) return;
16593
16621
  const attrs = node.attrs;
16594
16622
  const inlineImage = node.type === TextNodeType.imageInline;
16623
+ let ignoreAttributes;
16624
+ if (inlineImage) {
16625
+ ignoreAttributes = /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]);
16626
+ const a = attrs;
16627
+ if (a.alignmentVertical === "top") ignoreAttributes.add("alignmentVertical");
16628
+ if (a.size === "line-height") ignoreAttributes.add("size");
16629
+ }
16595
16630
  const mediaAttrs = this.getMediaAttrs(inlineImage ? "imageInline" : "image", attrs, {
16596
- ignoreAttributes: inlineImage ? /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]) : void 0
16631
+ ignoreAttributes
16597
16632
  });
16598
16633
  let s = "";
16599
16634
  if (inlineImage) {
@@ -16623,16 +16658,87 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16623
16658
  if (s) this.write(s);
16624
16659
  }
16625
16660
  writeInlineMark(mark) {
16626
- let s = `${mark.type}`;
16627
- if (mark.attrs) {
16628
- for (const [k, v] of Object.entries(mark.attrs)) {
16629
- if (k === "language" && v !== "plain text" || k === "color" || k === "propertyRef" || k === "name" || k === "duration") {
16630
- s = `${s}:${v}`;
16661
+ const attrs = mark.attrs ?? {};
16662
+ let s;
16663
+ switch (mark.type) {
16664
+ case TextMarkType.textStyle:
16665
+ case TextMarkType.color:
16666
+ s = `color:${attrs.color ?? ""}`;
16667
+ break;
16668
+ case TextMarkType.timer:
16669
+ s = attrs.name ? `timer:${attrs.name}` : "timer";
16670
+ s += `|duration:${attrs.duration ?? ""}`;
16671
+ break;
16672
+ case TextMarkType.highlight:
16673
+ case TextMarkType.userHighlight:
16674
+ s = attrs.color ? `${mark.type}|color:${attrs.color}` : `${mark.type}`;
16675
+ break;
16676
+ default: {
16677
+ s = `${mark.type}`;
16678
+ for (const [k, v] of Object.entries(attrs)) {
16679
+ if (k === "language" && v !== "plain text" || k === "propertyRef" || k === "name") {
16680
+ s = `${s}:${v}`;
16681
+ }
16631
16682
  }
16632
16683
  }
16633
16684
  }
16634
16685
  this.write(s);
16635
16686
  }
16687
+ /**
16688
+ * Resolve the marks of a text node into the marks that will actually be written.
16689
+ *
16690
+ * - Merges a legacy standalone 'duration' mark into its sibling 'timer' mark.
16691
+ * - Drops marks the current grammar cannot express (standalone 'duration', 'timer'
16692
+ * without a duration).
16693
+ * - Moves a 'textStyle'/'color' mark before a preceding bare 'highlight'/'userHighlight'
16694
+ * mark when its color is a valid highlight color; written in the original order the
16695
+ * output would re-parse as a highlight-with-color compound mark and change meaning.
16696
+ */
16697
+ getWritableMarks(nodeMarks) {
16698
+ const attrsOf = (m) => m.attrs ?? {};
16699
+ let marks = [...nodeMarks];
16700
+ const timer = marks.find((m) => m.type === TextMarkType.timer);
16701
+ const duration = marks.find((m) => m.type === TextMarkType.duration);
16702
+ if (timer && duration && !attrsOf(timer).duration) {
16703
+ marks = marks.map(
16704
+ (m) => m === timer ? {
16705
+ ...timer,
16706
+ attrs: { ...attrsOf(timer), duration: attrsOf(duration).duration }
16707
+ } : m
16708
+ );
16709
+ }
16710
+ marks = marks.filter((m) => {
16711
+ if (m.type === TextMarkType.duration) return false;
16712
+ if (m.type === TextMarkType.timer) return !!attrsOf(m).duration;
16713
+ return true;
16714
+ });
16715
+ const isBareHighlight = (m) => (m.type === TextMarkType.highlight || m.type === TextMarkType.userHighlight) && !attrsOf(m).color;
16716
+ const isHighlightColorStyle = (m) => (m.type === TextMarkType.textStyle || m.type === TextMarkType.color) && HIGHLIGHT_COLORS.indexOf(attrsOf(m).color) !== -1;
16717
+ for (let i = 0; i < marks.length - 1; i++) {
16718
+ if (isBareHighlight(marks[i]) && isHighlightColorStyle(marks[i + 1])) {
16719
+ const tmp = marks[i];
16720
+ marks[i] = marks[i + 1];
16721
+ marks[i + 1] = tmp;
16722
+ }
16723
+ }
16724
+ return marks;
16725
+ }
16726
+ /**
16727
+ * True if the mark is written using its standard form (e.g. **bold**, !!highlight!!)
16728
+ * when it is the only mark. A highlight mark with a color attribute is excluded - it
16729
+ * can only be expressed using the inline chain form (==text==|highlight|color:x|).
16730
+ */
16731
+ isStandardMark(mark) {
16732
+ if (STANDARD_MARK_TYPES.indexOf(mark.type) === -1) return false;
16733
+ return !(mark.attrs && mark.attrs.color);
16734
+ }
16735
+ /**
16736
+ * True if the mark is written using the inline chain form (==text==|mark|).
16737
+ */
16738
+ isInlineMark(mark) {
16739
+ if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) return true;
16740
+ return mark.type === TextMarkType.highlight && !!(mark.attrs && mark.attrs.color);
16741
+ }
16636
16742
  writeCommentMark(mark) {
16637
16743
  const comment = mark.comment || "";
16638
16744
  const s = `#${comment}`;
@@ -16837,7 +16943,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16837
16943
  };
16838
16944
 
16839
16945
  // src/generated/parser/text/text-peggy-parser.js
16840
- var VERSION = "8.37.3";
16946
+ var VERSION = "8.41.1";
16841
16947
  function unbreakscape(str) {
16842
16948
  if (typeof str !== "string") return null;
16843
16949
  return instance3.unbreakscape(str);
@@ -17052,87 +17158,88 @@ function peg$parse(input, options) {
17052
17158
  const peg$c60 = "var:";
17053
17159
  const peg$c61 = "code:";
17054
17160
  const peg$c62 = "timer";
17055
- const peg$c63 = "timer:";
17056
- const peg$c64 = "duration:";
17057
- const peg$c65 = "P";
17058
- const peg$c66 = "color:";
17059
- const peg$c67 = "colorPicker:";
17060
- const peg$c68 = "|\u25BA";
17061
- const peg$c69 = "bold";
17062
- const peg$c70 = "italic";
17063
- const peg$c71 = "light";
17064
- const peg$c72 = "highlightOrange";
17065
- const peg$c73 = "highlightYellow";
17066
- const peg$c74 = "highlightGreen";
17067
- const peg$c75 = "highlightBlue";
17068
- const peg$c76 = "highlightPurple";
17069
- const peg$c77 = "highlightPink";
17070
- const peg$c78 = "highlightBrown";
17071
- const peg$c79 = "highlightBlack";
17072
- const peg$c80 = "highlightWhite";
17073
- const peg$c81 = "highlightGray";
17074
- const peg$c82 = "highlight";
17075
- const peg$c83 = "strike";
17076
- const peg$c84 = "subscript";
17077
- const peg$c85 = "superscript";
17078
- const peg$c86 = "ins";
17079
- const peg$c87 = "del";
17080
- const peg$c88 = "underline";
17081
- const peg$c89 = "doubleUnderline";
17082
- const peg$c90 = "circle";
17083
- const peg$c91 = "languageEmRed";
17084
- const peg$c92 = "languageEmOrange";
17085
- const peg$c93 = "languageEmYellow";
17086
- const peg$c94 = "languageEmGreen";
17087
- const peg$c95 = "languageEmBlue";
17088
- const peg$c96 = "languageEmPurple";
17089
- const peg$c97 = "languageEmPink";
17090
- const peg$c98 = "languageEmBrown";
17091
- const peg$c99 = "languageEmBlack";
17092
- const peg$c100 = "languageEmWhite";
17093
- const peg$c101 = "languageEmGray";
17094
- const peg$c102 = "languageEm";
17095
- const peg$c103 = "userUnderline";
17096
- const peg$c104 = "userDoubleUnderline";
17097
- const peg$c105 = "userStrike";
17098
- const peg$c106 = "userCircle";
17099
- const peg$c107 = "userHighlight";
17100
- const peg$c108 = "notranslate";
17101
- const peg$c109 = "aqua";
17102
- const peg$c110 = "black";
17103
- const peg$c111 = "blue";
17104
- const peg$c112 = "brown";
17105
- const peg$c113 = "fuchsia";
17106
- const peg$c114 = "lightgrey";
17107
- const peg$c115 = "gray";
17108
- const peg$c116 = "darkgray";
17109
- const peg$c117 = "green";
17110
- const peg$c118 = "lime";
17111
- const peg$c119 = "magenta";
17112
- const peg$c120 = "maroon";
17113
- const peg$c121 = "navy";
17114
- const peg$c122 = "olive";
17115
- const peg$c123 = "orange";
17116
- const peg$c124 = "pink";
17117
- const peg$c125 = "purple";
17118
- const peg$c126 = "red";
17119
- const peg$c127 = "silver";
17120
- const peg$c128 = "teal";
17121
- const peg$c129 = "violet";
17122
- const peg$c130 = "white";
17123
- const peg$c131 = "yellow";
17124
- const peg$c132 = "*";
17125
- const peg$c133 = "_";
17126
- const peg$c134 = "`";
17127
- const peg$c135 = "!";
17128
- const peg$c136 = "[!";
17129
- const peg$c137 = "]";
17130
- const peg$c138 = "\n";
17131
- const peg$c139 = "\r\n";
17132
- const peg$c140 = "http";
17133
- const peg$c141 = "s";
17134
- const peg$c142 = "://";
17135
- const peg$c143 = "mailto:";
17161
+ const peg$c63 = "duration:";
17162
+ const peg$c64 = "P";
17163
+ const peg$c65 = "timer:";
17164
+ const peg$c66 = "highlight";
17165
+ const peg$c67 = "color:";
17166
+ const peg$c68 = "userHighlight";
17167
+ const peg$c69 = "colorPicker:";
17168
+ const peg$c70 = "|\u25BA";
17169
+ const peg$c71 = "bold";
17170
+ const peg$c72 = "italic";
17171
+ const peg$c73 = "light";
17172
+ const peg$c74 = "highlightOrange";
17173
+ const peg$c75 = "highlightYellow";
17174
+ const peg$c76 = "highlightGreen";
17175
+ const peg$c77 = "highlightBlue";
17176
+ const peg$c78 = "highlightPurple";
17177
+ const peg$c79 = "highlightPink";
17178
+ const peg$c80 = "highlightBrown";
17179
+ const peg$c81 = "highlightBlack";
17180
+ const peg$c82 = "highlightWhite";
17181
+ const peg$c83 = "highlightGray";
17182
+ const peg$c84 = "strike";
17183
+ const peg$c85 = "subscript";
17184
+ const peg$c86 = "superscript";
17185
+ const peg$c87 = "ins";
17186
+ const peg$c88 = "del";
17187
+ const peg$c89 = "underline";
17188
+ const peg$c90 = "doubleUnderline";
17189
+ const peg$c91 = "smallcaps";
17190
+ const peg$c92 = "circle";
17191
+ const peg$c93 = "languageEmRed";
17192
+ const peg$c94 = "languageEmOrange";
17193
+ const peg$c95 = "languageEmYellow";
17194
+ const peg$c96 = "languageEmGreen";
17195
+ const peg$c97 = "languageEmBlue";
17196
+ const peg$c98 = "languageEmPurple";
17197
+ const peg$c99 = "languageEmPink";
17198
+ const peg$c100 = "languageEmBrown";
17199
+ const peg$c101 = "languageEmBlack";
17200
+ const peg$c102 = "languageEmWhite";
17201
+ const peg$c103 = "languageEmGray";
17202
+ const peg$c104 = "languageEm";
17203
+ const peg$c105 = "userUnderline";
17204
+ const peg$c106 = "userDoubleUnderline";
17205
+ const peg$c107 = "userStrike";
17206
+ const peg$c108 = "userCircle";
17207
+ const peg$c109 = "notranslate";
17208
+ const peg$c110 = "aqua";
17209
+ const peg$c111 = "black";
17210
+ const peg$c112 = "blue";
17211
+ const peg$c113 = "brown";
17212
+ const peg$c114 = "fuchsia";
17213
+ const peg$c115 = "lightgrey";
17214
+ const peg$c116 = "gray";
17215
+ const peg$c117 = "darkgray";
17216
+ const peg$c118 = "green";
17217
+ const peg$c119 = "lime";
17218
+ const peg$c120 = "magenta";
17219
+ const peg$c121 = "maroon";
17220
+ const peg$c122 = "navy";
17221
+ const peg$c123 = "olive";
17222
+ const peg$c124 = "orange";
17223
+ const peg$c125 = "pink";
17224
+ const peg$c126 = "purple";
17225
+ const peg$c127 = "red";
17226
+ const peg$c128 = "silver";
17227
+ const peg$c129 = "teal";
17228
+ const peg$c130 = "violet";
17229
+ const peg$c131 = "white";
17230
+ const peg$c132 = "yellow";
17231
+ const peg$c133 = "*";
17232
+ const peg$c134 = "_";
17233
+ const peg$c135 = "`";
17234
+ const peg$c136 = "!";
17235
+ const peg$c137 = "[!";
17236
+ const peg$c138 = "]";
17237
+ const peg$c139 = "\n";
17238
+ const peg$c140 = "\r\n";
17239
+ const peg$c141 = "http";
17240
+ const peg$c142 = "s";
17241
+ const peg$c143 = "://";
17242
+ const peg$c144 = "mailto:";
17136
17243
  const peg$r0 = /^[ \t]/;
17137
17244
  const peg$r1 = /^[0-9]/;
17138
17245
  const peg$r2 = /^[\r\u2028-\u2029]/;
@@ -17205,91 +17312,92 @@ function peg$parse(input, options) {
17205
17312
  const peg$e64 = peg$literalExpectation("var:", false);
17206
17313
  const peg$e65 = peg$literalExpectation("code:", false);
17207
17314
  const peg$e66 = peg$literalExpectation("timer", false);
17208
- const peg$e67 = peg$literalExpectation("timer:", false);
17209
- const peg$e68 = peg$literalExpectation("duration:", false);
17210
- const peg$e69 = peg$literalExpectation("P", false);
17211
- const peg$e70 = peg$literalExpectation("color:", false);
17212
- const peg$e71 = peg$literalExpectation("colorPicker:", false);
17213
- const peg$e72 = peg$literalExpectation("|\u25BA", false);
17214
- const peg$e73 = peg$literalExpectation("bold", false);
17215
- const peg$e74 = peg$literalExpectation("italic", false);
17216
- const peg$e75 = peg$literalExpectation("light", false);
17217
- const peg$e76 = peg$literalExpectation("highlightOrange", false);
17218
- const peg$e77 = peg$literalExpectation("highlightYellow", false);
17219
- const peg$e78 = peg$literalExpectation("highlightGreen", false);
17220
- const peg$e79 = peg$literalExpectation("highlightBlue", false);
17221
- const peg$e80 = peg$literalExpectation("highlightPurple", false);
17222
- const peg$e81 = peg$literalExpectation("highlightPink", false);
17223
- const peg$e82 = peg$literalExpectation("highlightBrown", false);
17224
- const peg$e83 = peg$literalExpectation("highlightBlack", false);
17225
- const peg$e84 = peg$literalExpectation("highlightWhite", false);
17226
- const peg$e85 = peg$literalExpectation("highlightGray", false);
17227
- const peg$e86 = peg$literalExpectation("highlight", false);
17228
- const peg$e87 = peg$literalExpectation("strike", false);
17229
- const peg$e88 = peg$literalExpectation("subscript", false);
17230
- const peg$e89 = peg$literalExpectation("superscript", false);
17231
- const peg$e90 = peg$literalExpectation("ins", false);
17232
- const peg$e91 = peg$literalExpectation("del", false);
17233
- const peg$e92 = peg$literalExpectation("underline", false);
17234
- const peg$e93 = peg$literalExpectation("doubleUnderline", false);
17235
- const peg$e94 = peg$literalExpectation("circle", false);
17236
- const peg$e95 = peg$literalExpectation("languageEmRed", false);
17237
- const peg$e96 = peg$literalExpectation("languageEmOrange", false);
17238
- const peg$e97 = peg$literalExpectation("languageEmYellow", false);
17239
- const peg$e98 = peg$literalExpectation("languageEmGreen", false);
17240
- const peg$e99 = peg$literalExpectation("languageEmBlue", false);
17241
- const peg$e100 = peg$literalExpectation("languageEmPurple", false);
17242
- const peg$e101 = peg$literalExpectation("languageEmPink", false);
17243
- const peg$e102 = peg$literalExpectation("languageEmBrown", false);
17244
- const peg$e103 = peg$literalExpectation("languageEmBlack", false);
17245
- const peg$e104 = peg$literalExpectation("languageEmWhite", false);
17246
- const peg$e105 = peg$literalExpectation("languageEmGray", false);
17247
- const peg$e106 = peg$literalExpectation("languageEm", false);
17248
- const peg$e107 = peg$literalExpectation("userUnderline", false);
17249
- const peg$e108 = peg$literalExpectation("userDoubleUnderline", false);
17250
- const peg$e109 = peg$literalExpectation("userStrike", false);
17251
- const peg$e110 = peg$literalExpectation("userCircle", false);
17252
- const peg$e111 = peg$literalExpectation("userHighlight", false);
17253
- const peg$e112 = peg$literalExpectation("notranslate", false);
17254
- const peg$e113 = peg$literalExpectation("aqua", false);
17255
- const peg$e114 = peg$literalExpectation("black", false);
17256
- const peg$e115 = peg$literalExpectation("blue", false);
17257
- const peg$e116 = peg$literalExpectation("brown", false);
17258
- const peg$e117 = peg$literalExpectation("fuchsia", false);
17259
- const peg$e118 = peg$literalExpectation("lightgrey", false);
17260
- const peg$e119 = peg$literalExpectation("gray", false);
17261
- const peg$e120 = peg$literalExpectation("darkgray", false);
17262
- const peg$e121 = peg$literalExpectation("green", false);
17263
- const peg$e122 = peg$literalExpectation("lime", false);
17264
- const peg$e123 = peg$literalExpectation("magenta", false);
17265
- const peg$e124 = peg$literalExpectation("maroon", false);
17266
- const peg$e125 = peg$literalExpectation("navy", false);
17267
- const peg$e126 = peg$literalExpectation("olive", false);
17268
- const peg$e127 = peg$literalExpectation("orange", false);
17269
- const peg$e128 = peg$literalExpectation("pink", false);
17270
- const peg$e129 = peg$literalExpectation("purple", false);
17271
- const peg$e130 = peg$literalExpectation("red", false);
17272
- const peg$e131 = peg$literalExpectation("silver", false);
17273
- const peg$e132 = peg$literalExpectation("teal", false);
17274
- const peg$e133 = peg$literalExpectation("violet", false);
17275
- const peg$e134 = peg$literalExpectation("white", false);
17276
- const peg$e135 = peg$literalExpectation("yellow", false);
17277
- const peg$e136 = peg$literalExpectation("*", false);
17278
- const peg$e137 = peg$literalExpectation("_", false);
17279
- const peg$e138 = peg$literalExpectation("`", false);
17280
- const peg$e139 = peg$literalExpectation("!", false);
17281
- const peg$e140 = peg$literalExpectation("[!", false);
17282
- const peg$e141 = peg$literalExpectation("]", false);
17283
- const peg$e142 = peg$otherExpectation("Line Terminator");
17284
- const peg$e143 = peg$literalExpectation("\n", false);
17285
- const peg$e144 = peg$literalExpectation("\r\n", false);
17286
- const peg$e145 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17287
- const peg$e146 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17288
- const peg$e147 = peg$literalExpectation("http", false);
17289
- const peg$e148 = peg$literalExpectation("s", false);
17290
- const peg$e149 = peg$literalExpectation("://", false);
17291
- const peg$e150 = peg$literalExpectation("mailto:", false);
17292
- const peg$e151 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17315
+ const peg$e67 = peg$literalExpectation("duration:", false);
17316
+ const peg$e68 = peg$literalExpectation("P", false);
17317
+ const peg$e69 = peg$literalExpectation("timer:", false);
17318
+ const peg$e70 = peg$literalExpectation("highlight", false);
17319
+ const peg$e71 = peg$literalExpectation("color:", false);
17320
+ const peg$e72 = peg$literalExpectation("userHighlight", false);
17321
+ const peg$e73 = peg$literalExpectation("colorPicker:", false);
17322
+ const peg$e74 = peg$literalExpectation("|\u25BA", false);
17323
+ const peg$e75 = peg$literalExpectation("bold", false);
17324
+ const peg$e76 = peg$literalExpectation("italic", false);
17325
+ const peg$e77 = peg$literalExpectation("light", false);
17326
+ const peg$e78 = peg$literalExpectation("highlightOrange", false);
17327
+ const peg$e79 = peg$literalExpectation("highlightYellow", false);
17328
+ const peg$e80 = peg$literalExpectation("highlightGreen", false);
17329
+ const peg$e81 = peg$literalExpectation("highlightBlue", false);
17330
+ const peg$e82 = peg$literalExpectation("highlightPurple", false);
17331
+ const peg$e83 = peg$literalExpectation("highlightPink", false);
17332
+ const peg$e84 = peg$literalExpectation("highlightBrown", false);
17333
+ const peg$e85 = peg$literalExpectation("highlightBlack", false);
17334
+ const peg$e86 = peg$literalExpectation("highlightWhite", false);
17335
+ const peg$e87 = peg$literalExpectation("highlightGray", false);
17336
+ const peg$e88 = peg$literalExpectation("strike", false);
17337
+ const peg$e89 = peg$literalExpectation("subscript", false);
17338
+ const peg$e90 = peg$literalExpectation("superscript", false);
17339
+ const peg$e91 = peg$literalExpectation("ins", false);
17340
+ const peg$e92 = peg$literalExpectation("del", false);
17341
+ const peg$e93 = peg$literalExpectation("underline", false);
17342
+ const peg$e94 = peg$literalExpectation("doubleUnderline", false);
17343
+ const peg$e95 = peg$literalExpectation("smallcaps", false);
17344
+ const peg$e96 = peg$literalExpectation("circle", false);
17345
+ const peg$e97 = peg$literalExpectation("languageEmRed", false);
17346
+ const peg$e98 = peg$literalExpectation("languageEmOrange", false);
17347
+ const peg$e99 = peg$literalExpectation("languageEmYellow", false);
17348
+ const peg$e100 = peg$literalExpectation("languageEmGreen", false);
17349
+ const peg$e101 = peg$literalExpectation("languageEmBlue", false);
17350
+ const peg$e102 = peg$literalExpectation("languageEmPurple", false);
17351
+ const peg$e103 = peg$literalExpectation("languageEmPink", false);
17352
+ const peg$e104 = peg$literalExpectation("languageEmBrown", false);
17353
+ const peg$e105 = peg$literalExpectation("languageEmBlack", false);
17354
+ const peg$e106 = peg$literalExpectation("languageEmWhite", false);
17355
+ const peg$e107 = peg$literalExpectation("languageEmGray", false);
17356
+ const peg$e108 = peg$literalExpectation("languageEm", false);
17357
+ const peg$e109 = peg$literalExpectation("userUnderline", false);
17358
+ const peg$e110 = peg$literalExpectation("userDoubleUnderline", false);
17359
+ const peg$e111 = peg$literalExpectation("userStrike", false);
17360
+ const peg$e112 = peg$literalExpectation("userCircle", false);
17361
+ const peg$e113 = peg$literalExpectation("notranslate", false);
17362
+ const peg$e114 = peg$literalExpectation("aqua", false);
17363
+ const peg$e115 = peg$literalExpectation("black", false);
17364
+ const peg$e116 = peg$literalExpectation("blue", false);
17365
+ const peg$e117 = peg$literalExpectation("brown", false);
17366
+ const peg$e118 = peg$literalExpectation("fuchsia", false);
17367
+ const peg$e119 = peg$literalExpectation("lightgrey", false);
17368
+ const peg$e120 = peg$literalExpectation("gray", false);
17369
+ const peg$e121 = peg$literalExpectation("darkgray", false);
17370
+ const peg$e122 = peg$literalExpectation("green", false);
17371
+ const peg$e123 = peg$literalExpectation("lime", false);
17372
+ const peg$e124 = peg$literalExpectation("magenta", false);
17373
+ const peg$e125 = peg$literalExpectation("maroon", false);
17374
+ const peg$e126 = peg$literalExpectation("navy", false);
17375
+ const peg$e127 = peg$literalExpectation("olive", false);
17376
+ const peg$e128 = peg$literalExpectation("orange", false);
17377
+ const peg$e129 = peg$literalExpectation("pink", false);
17378
+ const peg$e130 = peg$literalExpectation("purple", false);
17379
+ const peg$e131 = peg$literalExpectation("red", false);
17380
+ const peg$e132 = peg$literalExpectation("silver", false);
17381
+ const peg$e133 = peg$literalExpectation("teal", false);
17382
+ const peg$e134 = peg$literalExpectation("violet", false);
17383
+ const peg$e135 = peg$literalExpectation("white", false);
17384
+ const peg$e136 = peg$literalExpectation("yellow", false);
17385
+ const peg$e137 = peg$literalExpectation("*", false);
17386
+ const peg$e138 = peg$literalExpectation("_", false);
17387
+ const peg$e139 = peg$literalExpectation("`", false);
17388
+ const peg$e140 = peg$literalExpectation("!", false);
17389
+ const peg$e141 = peg$literalExpectation("[!", false);
17390
+ const peg$e142 = peg$literalExpectation("]", false);
17391
+ const peg$e143 = peg$otherExpectation("Line Terminator");
17392
+ const peg$e144 = peg$literalExpectation("\n", false);
17393
+ const peg$e145 = peg$literalExpectation("\r\n", false);
17394
+ const peg$e146 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17395
+ const peg$e147 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17396
+ const peg$e148 = peg$literalExpectation("http", false);
17397
+ const peg$e149 = peg$literalExpectation("s", false);
17398
+ const peg$e150 = peg$literalExpectation("://", false);
17399
+ const peg$e151 = peg$literalExpectation("mailto:", false);
17400
+ const peg$e152 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17293
17401
  function peg$f0() {
17294
17402
  return VERSION;
17295
17403
  }
@@ -17565,7 +17673,7 @@ function peg$parse(input, options) {
17565
17673
  return { attrs: { formula: unbreakscape(t) }, type: "latex" };
17566
17674
  }
17567
17675
  function peg$f57(alt, u, ch) {
17568
- return { attrs: { alt, src: (u.pr + u.t).trim(), ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17676
+ return { attrs: { alt, src: (u.pr + u.t).trim(), "alignmentVertical": "top", size: "line-height", ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17569
17677
  }
17570
17678
  function peg$f58(t, marks) {
17571
17679
  if (!marks) marks = [];
@@ -17644,59 +17752,62 @@ function peg$parse(input, options) {
17644
17752
  function peg$f82(lang) {
17645
17753
  return { type: "code", attrs: { language: lang.trim().toLowerCase() } };
17646
17754
  }
17647
- function peg$f83() {
17648
- return { type: "timer", attrs: { name: "" } };
17755
+ function peg$f83(d) {
17756
+ return { type: "timer", attrs: { name: "", duration: d.trim() } };
17649
17757
  }
17650
- function peg$f84(str) {
17651
- return { type: "timer", attrs: { name: str.trim() } };
17758
+ function peg$f84(str, d) {
17759
+ return { type: "timer", attrs: { name: str.trim(), duration: d.trim() } };
17652
17760
  }
17653
- function peg$f85(str) {
17654
- return { type: "duration", attrs: { duration: str } };
17761
+ function peg$f85(color) {
17762
+ return { type: "highlight", attrs: { color } };
17655
17763
  }
17656
17764
  function peg$f86(color) {
17657
- return { type: "color", attrs: { color } };
17765
+ return { type: "userHighlight", attrs: { color } };
17766
+ }
17767
+ function peg$f87(color) {
17768
+ return { type: "textStyle", attrs: { color } };
17658
17769
  }
17659
- function peg$f87(str) {
17770
+ function peg$f88(str) {
17660
17771
  return { type: "colorPicker", attrs: { propertyRef: str.trim() } };
17661
17772
  }
17662
- function peg$f88(style) {
17773
+ function peg$f89(style) {
17663
17774
  return { type: style };
17664
17775
  }
17665
- function peg$f89(str) {
17776
+ function peg$f90(str) {
17666
17777
  return { type: "comment", comment: str };
17667
17778
  }
17668
- function peg$f90(r) {
17779
+ function peg$f91(r) {
17669
17780
  return r.trim();
17670
17781
  }
17671
- function peg$f91(bs) {
17782
+ function peg$f92(bs) {
17672
17783
  return [{ type: "paragraph", content: bs, attrs: {} }];
17673
17784
  }
17674
- function peg$f92(first, more) {
17785
+ function peg$f93(first, more) {
17675
17786
  const cleaned_ = cleanEmptyTextNodes(first ? [first, ...more.flat()] : more.flat());
17676
17787
  return cleaned_;
17677
17788
  }
17678
- function peg$f93() {
17789
+ function peg$f94() {
17679
17790
  return { "type": "hardBreak" };
17680
17791
  }
17681
- function peg$f94(t) {
17792
+ function peg$f95(t) {
17682
17793
  return { text: unbreakscape(t), type: "text" };
17683
17794
  }
17684
- function peg$f95(t) {
17795
+ function peg$f96(t) {
17685
17796
  return { index: +t, type: "bit" };
17686
17797
  }
17687
- function peg$f96(t) {
17798
+ function peg$f97(t) {
17688
17799
  return { marks: [{ type: "bold" }], text: unbreakscape(t), type: "text" };
17689
17800
  }
17690
- function peg$f97(t) {
17801
+ function peg$f98(t) {
17691
17802
  return { marks: [{ type: "italic" }], text: unbreakscape(t), type: "text" };
17692
17803
  }
17693
- function peg$f98(t) {
17804
+ function peg$f99(t) {
17694
17805
  return { marks: [{ type: "light" }], text: unbreakscape(t), type: "text" };
17695
17806
  }
17696
- function peg$f99(t) {
17807
+ function peg$f100(t) {
17697
17808
  return { marks: [{ type: "highlight" }], text: unbreakscape(t), type: "text" };
17698
17809
  }
17699
- function peg$f100(pr, t) {
17810
+ function peg$f101(pr, t) {
17700
17811
  return { pr, t };
17701
17812
  }
17702
17813
  let peg$currPos = options.peg$currPos | 0;
@@ -22566,7 +22677,7 @@ function peg$parse(input, options) {
22566
22677
  return s0;
22567
22678
  }
22568
22679
  function peg$parseAttrChainItem() {
22569
- let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
22680
+ let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
22570
22681
  s0 = peg$currPos;
22571
22682
  if (input.substr(peg$currPos, 5) === peg$c52) {
22572
22683
  s1 = peg$c52;
@@ -23534,8 +23645,110 @@ function peg$parse(input, options) {
23534
23645
  if (s1 !== peg$FAILED) {
23535
23646
  s2 = peg$parseBlockTag();
23536
23647
  if (s2 !== peg$FAILED) {
23537
- peg$savedPos = s0;
23538
- s0 = peg$f83();
23648
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23649
+ s3 = peg$c63;
23650
+ peg$currPos += 9;
23651
+ } else {
23652
+ s3 = peg$FAILED;
23653
+ if (peg$silentFails === 0) {
23654
+ peg$fail(peg$e67);
23655
+ }
23656
+ }
23657
+ if (s3 !== peg$FAILED) {
23658
+ s4 = peg$currPos;
23659
+ s5 = peg$currPos;
23660
+ if (input.charCodeAt(peg$currPos) === 80) {
23661
+ s6 = peg$c64;
23662
+ peg$currPos++;
23663
+ } else {
23664
+ s6 = peg$FAILED;
23665
+ if (peg$silentFails === 0) {
23666
+ peg$fail(peg$e68);
23667
+ }
23668
+ }
23669
+ if (s6 !== peg$FAILED) {
23670
+ s7 = peg$currPos;
23671
+ s8 = [];
23672
+ s9 = peg$currPos;
23673
+ s10 = peg$currPos;
23674
+ peg$silentFails++;
23675
+ s11 = peg$parseBlockTag();
23676
+ peg$silentFails--;
23677
+ if (s11 === peg$FAILED) {
23678
+ s10 = void 0;
23679
+ } else {
23680
+ peg$currPos = s10;
23681
+ s10 = peg$FAILED;
23682
+ }
23683
+ if (s10 !== peg$FAILED) {
23684
+ s11 = peg$parsechar();
23685
+ if (s11 !== peg$FAILED) {
23686
+ s10 = [s10, s11];
23687
+ s9 = s10;
23688
+ } else {
23689
+ peg$currPos = s9;
23690
+ s9 = peg$FAILED;
23691
+ }
23692
+ } else {
23693
+ peg$currPos = s9;
23694
+ s9 = peg$FAILED;
23695
+ }
23696
+ while (s9 !== peg$FAILED) {
23697
+ s8.push(s9);
23698
+ s9 = peg$currPos;
23699
+ s10 = peg$currPos;
23700
+ peg$silentFails++;
23701
+ s11 = peg$parseBlockTag();
23702
+ peg$silentFails--;
23703
+ if (s11 === peg$FAILED) {
23704
+ s10 = void 0;
23705
+ } else {
23706
+ peg$currPos = s10;
23707
+ s10 = peg$FAILED;
23708
+ }
23709
+ if (s10 !== peg$FAILED) {
23710
+ s11 = peg$parsechar();
23711
+ if (s11 !== peg$FAILED) {
23712
+ s10 = [s10, s11];
23713
+ s9 = s10;
23714
+ } else {
23715
+ peg$currPos = s9;
23716
+ s9 = peg$FAILED;
23717
+ }
23718
+ } else {
23719
+ peg$currPos = s9;
23720
+ s9 = peg$FAILED;
23721
+ }
23722
+ }
23723
+ s7 = input.substring(s7, peg$currPos);
23724
+ s6 = [s6, s7];
23725
+ s5 = s6;
23726
+ } else {
23727
+ peg$currPos = s5;
23728
+ s5 = peg$FAILED;
23729
+ }
23730
+ if (s5 !== peg$FAILED) {
23731
+ s4 = input.substring(s4, peg$currPos);
23732
+ } else {
23733
+ s4 = s5;
23734
+ }
23735
+ if (s4 !== peg$FAILED) {
23736
+ s5 = peg$parseBlockTag();
23737
+ if (s5 !== peg$FAILED) {
23738
+ peg$savedPos = s0;
23739
+ s0 = peg$f83(s4);
23740
+ } else {
23741
+ peg$currPos = s0;
23742
+ s0 = peg$FAILED;
23743
+ }
23744
+ } else {
23745
+ peg$currPos = s0;
23746
+ s0 = peg$FAILED;
23747
+ }
23748
+ } else {
23749
+ peg$currPos = s0;
23750
+ s0 = peg$FAILED;
23751
+ }
23539
23752
  } else {
23540
23753
  peg$currPos = s0;
23541
23754
  s0 = peg$FAILED;
@@ -23546,13 +23759,13 @@ function peg$parse(input, options) {
23546
23759
  }
23547
23760
  if (s0 === peg$FAILED) {
23548
23761
  s0 = peg$currPos;
23549
- if (input.substr(peg$currPos, 6) === peg$c63) {
23550
- s1 = peg$c63;
23762
+ if (input.substr(peg$currPos, 6) === peg$c65) {
23763
+ s1 = peg$c65;
23551
23764
  peg$currPos += 6;
23552
23765
  } else {
23553
23766
  s1 = peg$FAILED;
23554
23767
  if (peg$silentFails === 0) {
23555
- peg$fail(peg$e67);
23768
+ peg$fail(peg$e69);
23556
23769
  }
23557
23770
  }
23558
23771
  if (s1 !== peg$FAILED) {
@@ -23612,110 +23825,156 @@ function peg$parse(input, options) {
23612
23825
  s2 = input.substring(s2, peg$currPos);
23613
23826
  s3 = peg$parseBlockTag();
23614
23827
  if (s3 !== peg$FAILED) {
23615
- peg$savedPos = s0;
23616
- s0 = peg$f84(s2);
23617
- } else {
23618
- peg$currPos = s0;
23619
- s0 = peg$FAILED;
23620
- }
23621
- } else {
23622
- peg$currPos = s0;
23623
- s0 = peg$FAILED;
23624
- }
23625
- if (s0 === peg$FAILED) {
23626
- s0 = peg$currPos;
23627
- if (input.substr(peg$currPos, 9) === peg$c64) {
23628
- s1 = peg$c64;
23629
- peg$currPos += 9;
23630
- } else {
23631
- s1 = peg$FAILED;
23632
- if (peg$silentFails === 0) {
23633
- peg$fail(peg$e68);
23634
- }
23635
- }
23636
- if (s1 !== peg$FAILED) {
23637
- s2 = peg$currPos;
23638
- s3 = peg$currPos;
23639
- if (input.charCodeAt(peg$currPos) === 80) {
23640
- s4 = peg$c65;
23641
- peg$currPos++;
23828
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23829
+ s4 = peg$c63;
23830
+ peg$currPos += 9;
23642
23831
  } else {
23643
23832
  s4 = peg$FAILED;
23644
23833
  if (peg$silentFails === 0) {
23645
- peg$fail(peg$e69);
23834
+ peg$fail(peg$e67);
23646
23835
  }
23647
23836
  }
23648
23837
  if (s4 !== peg$FAILED) {
23649
23838
  s5 = peg$currPos;
23650
- s6 = [];
23651
- s7 = peg$currPos;
23652
- s8 = peg$currPos;
23653
- peg$silentFails++;
23654
- s9 = peg$parseBlockTag();
23655
- peg$silentFails--;
23656
- if (s9 === peg$FAILED) {
23657
- s8 = void 0;
23839
+ s6 = peg$currPos;
23840
+ if (input.charCodeAt(peg$currPos) === 80) {
23841
+ s7 = peg$c64;
23842
+ peg$currPos++;
23658
23843
  } else {
23659
- peg$currPos = s8;
23660
- s8 = peg$FAILED;
23661
- }
23662
- if (s8 !== peg$FAILED) {
23663
- s9 = peg$parsechar();
23664
- if (s9 !== peg$FAILED) {
23665
- s8 = [s8, s9];
23666
- s7 = s8;
23667
- } else {
23668
- peg$currPos = s7;
23669
- s7 = peg$FAILED;
23670
- }
23671
- } else {
23672
- peg$currPos = s7;
23673
23844
  s7 = peg$FAILED;
23845
+ if (peg$silentFails === 0) {
23846
+ peg$fail(peg$e68);
23847
+ }
23674
23848
  }
23675
- while (s7 !== peg$FAILED) {
23676
- s6.push(s7);
23677
- s7 = peg$currPos;
23849
+ if (s7 !== peg$FAILED) {
23678
23850
  s8 = peg$currPos;
23851
+ s9 = [];
23852
+ s10 = peg$currPos;
23853
+ s11 = peg$currPos;
23679
23854
  peg$silentFails++;
23680
- s9 = peg$parseBlockTag();
23855
+ s12 = peg$parseBlockTag();
23681
23856
  peg$silentFails--;
23682
- if (s9 === peg$FAILED) {
23683
- s8 = void 0;
23857
+ if (s12 === peg$FAILED) {
23858
+ s11 = void 0;
23684
23859
  } else {
23685
- peg$currPos = s8;
23686
- s8 = peg$FAILED;
23860
+ peg$currPos = s11;
23861
+ s11 = peg$FAILED;
23687
23862
  }
23688
- if (s8 !== peg$FAILED) {
23689
- s9 = peg$parsechar();
23690
- if (s9 !== peg$FAILED) {
23691
- s8 = [s8, s9];
23692
- s7 = s8;
23863
+ if (s11 !== peg$FAILED) {
23864
+ s12 = peg$parsechar();
23865
+ if (s12 !== peg$FAILED) {
23866
+ s11 = [s11, s12];
23867
+ s10 = s11;
23693
23868
  } else {
23694
- peg$currPos = s7;
23695
- s7 = peg$FAILED;
23869
+ peg$currPos = s10;
23870
+ s10 = peg$FAILED;
23696
23871
  }
23697
23872
  } else {
23698
- peg$currPos = s7;
23699
- s7 = peg$FAILED;
23873
+ peg$currPos = s10;
23874
+ s10 = peg$FAILED;
23875
+ }
23876
+ while (s10 !== peg$FAILED) {
23877
+ s9.push(s10);
23878
+ s10 = peg$currPos;
23879
+ s11 = peg$currPos;
23880
+ peg$silentFails++;
23881
+ s12 = peg$parseBlockTag();
23882
+ peg$silentFails--;
23883
+ if (s12 === peg$FAILED) {
23884
+ s11 = void 0;
23885
+ } else {
23886
+ peg$currPos = s11;
23887
+ s11 = peg$FAILED;
23888
+ }
23889
+ if (s11 !== peg$FAILED) {
23890
+ s12 = peg$parsechar();
23891
+ if (s12 !== peg$FAILED) {
23892
+ s11 = [s11, s12];
23893
+ s10 = s11;
23894
+ } else {
23895
+ peg$currPos = s10;
23896
+ s10 = peg$FAILED;
23897
+ }
23898
+ } else {
23899
+ peg$currPos = s10;
23900
+ s10 = peg$FAILED;
23901
+ }
23700
23902
  }
23903
+ s8 = input.substring(s8, peg$currPos);
23904
+ s7 = [s7, s8];
23905
+ s6 = s7;
23906
+ } else {
23907
+ peg$currPos = s6;
23908
+ s6 = peg$FAILED;
23909
+ }
23910
+ if (s6 !== peg$FAILED) {
23911
+ s5 = input.substring(s5, peg$currPos);
23912
+ } else {
23913
+ s5 = s6;
23914
+ }
23915
+ if (s5 !== peg$FAILED) {
23916
+ s6 = peg$parseBlockTag();
23917
+ if (s6 !== peg$FAILED) {
23918
+ peg$savedPos = s0;
23919
+ s0 = peg$f84(s2, s5);
23920
+ } else {
23921
+ peg$currPos = s0;
23922
+ s0 = peg$FAILED;
23923
+ }
23924
+ } else {
23925
+ peg$currPos = s0;
23926
+ s0 = peg$FAILED;
23701
23927
  }
23702
- s5 = input.substring(s5, peg$currPos);
23703
- s4 = [s4, s5];
23704
- s3 = s4;
23705
23928
  } else {
23706
- peg$currPos = s3;
23707
- s3 = peg$FAILED;
23929
+ peg$currPos = s0;
23930
+ s0 = peg$FAILED;
23708
23931
  }
23709
- if (s3 !== peg$FAILED) {
23710
- s2 = input.substring(s2, peg$currPos);
23711
- } else {
23712
- s2 = s3;
23932
+ } else {
23933
+ peg$currPos = s0;
23934
+ s0 = peg$FAILED;
23935
+ }
23936
+ } else {
23937
+ peg$currPos = s0;
23938
+ s0 = peg$FAILED;
23939
+ }
23940
+ if (s0 === peg$FAILED) {
23941
+ s0 = peg$currPos;
23942
+ if (input.substr(peg$currPos, 9) === peg$c66) {
23943
+ s1 = peg$c66;
23944
+ peg$currPos += 9;
23945
+ } else {
23946
+ s1 = peg$FAILED;
23947
+ if (peg$silentFails === 0) {
23948
+ peg$fail(peg$e70);
23713
23949
  }
23950
+ }
23951
+ if (s1 !== peg$FAILED) {
23952
+ s2 = peg$parseBlockTag();
23714
23953
  if (s2 !== peg$FAILED) {
23715
- s3 = peg$parseBlockTag();
23954
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23955
+ s3 = peg$c67;
23956
+ peg$currPos += 6;
23957
+ } else {
23958
+ s3 = peg$FAILED;
23959
+ if (peg$silentFails === 0) {
23960
+ peg$fail(peg$e71);
23961
+ }
23962
+ }
23716
23963
  if (s3 !== peg$FAILED) {
23717
- peg$savedPos = s0;
23718
- s0 = peg$f85(s2);
23964
+ s4 = peg$parseHighlightColor();
23965
+ if (s4 !== peg$FAILED) {
23966
+ s5 = peg$parseBlockTag();
23967
+ if (s5 !== peg$FAILED) {
23968
+ peg$savedPos = s0;
23969
+ s0 = peg$f85(s4);
23970
+ } else {
23971
+ peg$currPos = s0;
23972
+ s0 = peg$FAILED;
23973
+ }
23974
+ } else {
23975
+ peg$currPos = s0;
23976
+ s0 = peg$FAILED;
23977
+ }
23719
23978
  } else {
23720
23979
  peg$currPos = s0;
23721
23980
  s0 = peg$FAILED;
@@ -23730,22 +23989,42 @@ function peg$parse(input, options) {
23730
23989
  }
23731
23990
  if (s0 === peg$FAILED) {
23732
23991
  s0 = peg$currPos;
23733
- if (input.substr(peg$currPos, 6) === peg$c66) {
23734
- s1 = peg$c66;
23735
- peg$currPos += 6;
23992
+ if (input.substr(peg$currPos, 13) === peg$c68) {
23993
+ s1 = peg$c68;
23994
+ peg$currPos += 13;
23736
23995
  } else {
23737
23996
  s1 = peg$FAILED;
23738
23997
  if (peg$silentFails === 0) {
23739
- peg$fail(peg$e70);
23998
+ peg$fail(peg$e72);
23740
23999
  }
23741
24000
  }
23742
24001
  if (s1 !== peg$FAILED) {
23743
- s2 = peg$parseColor();
24002
+ s2 = peg$parseBlockTag();
23744
24003
  if (s2 !== peg$FAILED) {
23745
- s3 = peg$parseBlockTag();
24004
+ if (input.substr(peg$currPos, 6) === peg$c67) {
24005
+ s3 = peg$c67;
24006
+ peg$currPos += 6;
24007
+ } else {
24008
+ s3 = peg$FAILED;
24009
+ if (peg$silentFails === 0) {
24010
+ peg$fail(peg$e71);
24011
+ }
24012
+ }
23746
24013
  if (s3 !== peg$FAILED) {
23747
- peg$savedPos = s0;
23748
- s0 = peg$f86(s2);
24014
+ s4 = peg$parseHighlightColor();
24015
+ if (s4 !== peg$FAILED) {
24016
+ s5 = peg$parseBlockTag();
24017
+ if (s5 !== peg$FAILED) {
24018
+ peg$savedPos = s0;
24019
+ s0 = peg$f86(s4);
24020
+ } else {
24021
+ peg$currPos = s0;
24022
+ s0 = peg$FAILED;
24023
+ }
24024
+ } else {
24025
+ peg$currPos = s0;
24026
+ s0 = peg$FAILED;
24027
+ }
23749
24028
  } else {
23750
24029
  peg$currPos = s0;
23751
24030
  s0 = peg$FAILED;
@@ -23760,9 +24039,9 @@ function peg$parse(input, options) {
23760
24039
  }
23761
24040
  if (s0 === peg$FAILED) {
23762
24041
  s0 = peg$currPos;
23763
- if (input.substr(peg$currPos, 12) === peg$c67) {
24042
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23764
24043
  s1 = peg$c67;
23765
- peg$currPos += 12;
24044
+ peg$currPos += 6;
23766
24045
  } else {
23767
24046
  s1 = peg$FAILED;
23768
24047
  if (peg$silentFails === 0) {
@@ -23770,34 +24049,38 @@ function peg$parse(input, options) {
23770
24049
  }
23771
24050
  }
23772
24051
  if (s1 !== peg$FAILED) {
23773
- s2 = peg$currPos;
23774
- s3 = [];
23775
- s4 = peg$currPos;
23776
- s5 = peg$currPos;
23777
- peg$silentFails++;
23778
- s6 = peg$parseBlockTag();
23779
- peg$silentFails--;
23780
- if (s6 === peg$FAILED) {
23781
- s5 = void 0;
23782
- } else {
23783
- peg$currPos = s5;
23784
- s5 = peg$FAILED;
23785
- }
23786
- if (s5 !== peg$FAILED) {
23787
- s6 = peg$parsechar();
23788
- if (s6 !== peg$FAILED) {
23789
- s5 = [s5, s6];
23790
- s4 = s5;
24052
+ s2 = peg$parseColor();
24053
+ if (s2 !== peg$FAILED) {
24054
+ s3 = peg$parseBlockTag();
24055
+ if (s3 !== peg$FAILED) {
24056
+ peg$savedPos = s0;
24057
+ s0 = peg$f87(s2);
23791
24058
  } else {
23792
- peg$currPos = s4;
23793
- s4 = peg$FAILED;
24059
+ peg$currPos = s0;
24060
+ s0 = peg$FAILED;
23794
24061
  }
23795
24062
  } else {
23796
- peg$currPos = s4;
23797
- s4 = peg$FAILED;
24063
+ peg$currPos = s0;
24064
+ s0 = peg$FAILED;
24065
+ }
24066
+ } else {
24067
+ peg$currPos = s0;
24068
+ s0 = peg$FAILED;
24069
+ }
24070
+ if (s0 === peg$FAILED) {
24071
+ s0 = peg$currPos;
24072
+ if (input.substr(peg$currPos, 12) === peg$c69) {
24073
+ s1 = peg$c69;
24074
+ peg$currPos += 12;
24075
+ } else {
24076
+ s1 = peg$FAILED;
24077
+ if (peg$silentFails === 0) {
24078
+ peg$fail(peg$e73);
24079
+ }
23798
24080
  }
23799
- while (s4 !== peg$FAILED) {
23800
- s3.push(s4);
24081
+ if (s1 !== peg$FAILED) {
24082
+ s2 = peg$currPos;
24083
+ s3 = [];
23801
24084
  s4 = peg$currPos;
23802
24085
  s5 = peg$currPos;
23803
24086
  peg$silentFails++;
@@ -23822,50 +24105,8 @@ function peg$parse(input, options) {
23822
24105
  peg$currPos = s4;
23823
24106
  s4 = peg$FAILED;
23824
24107
  }
23825
- }
23826
- s2 = input.substring(s2, peg$currPos);
23827
- s3 = peg$parseBlockTag();
23828
- if (s3 !== peg$FAILED) {
23829
- peg$savedPos = s0;
23830
- s0 = peg$f87(s2);
23831
- } else {
23832
- peg$currPos = s0;
23833
- s0 = peg$FAILED;
23834
- }
23835
- } else {
23836
- peg$currPos = s0;
23837
- s0 = peg$FAILED;
23838
- }
23839
- if (s0 === peg$FAILED) {
23840
- s0 = peg$currPos;
23841
- s1 = peg$parseAlternativeStyleTags();
23842
- if (s1 !== peg$FAILED) {
23843
- s2 = peg$parseBlockTag();
23844
- if (s2 !== peg$FAILED) {
23845
- peg$savedPos = s0;
23846
- s0 = peg$f88(s1);
23847
- } else {
23848
- peg$currPos = s0;
23849
- s0 = peg$FAILED;
23850
- }
23851
- } else {
23852
- peg$currPos = s0;
23853
- s0 = peg$FAILED;
23854
- }
23855
- if (s0 === peg$FAILED) {
23856
- s0 = peg$currPos;
23857
- if (input.charCodeAt(peg$currPos) === 35) {
23858
- s1 = peg$c21;
23859
- peg$currPos++;
23860
- } else {
23861
- s1 = peg$FAILED;
23862
- if (peg$silentFails === 0) {
23863
- peg$fail(peg$e25);
23864
- }
23865
- }
23866
- if (s1 !== peg$FAILED) {
23867
- s2 = peg$currPos;
23868
- s3 = [];
24108
+ while (s4 !== peg$FAILED) {
24109
+ s3.push(s4);
23869
24110
  s4 = peg$currPos;
23870
24111
  s5 = peg$currPos;
23871
24112
  peg$silentFails++;
@@ -23890,8 +24131,50 @@ function peg$parse(input, options) {
23890
24131
  peg$currPos = s4;
23891
24132
  s4 = peg$FAILED;
23892
24133
  }
23893
- while (s4 !== peg$FAILED) {
23894
- s3.push(s4);
24134
+ }
24135
+ s2 = input.substring(s2, peg$currPos);
24136
+ s3 = peg$parseBlockTag();
24137
+ if (s3 !== peg$FAILED) {
24138
+ peg$savedPos = s0;
24139
+ s0 = peg$f88(s2);
24140
+ } else {
24141
+ peg$currPos = s0;
24142
+ s0 = peg$FAILED;
24143
+ }
24144
+ } else {
24145
+ peg$currPos = s0;
24146
+ s0 = peg$FAILED;
24147
+ }
24148
+ if (s0 === peg$FAILED) {
24149
+ s0 = peg$currPos;
24150
+ s1 = peg$parseAlternativeStyleTags();
24151
+ if (s1 !== peg$FAILED) {
24152
+ s2 = peg$parseBlockTag();
24153
+ if (s2 !== peg$FAILED) {
24154
+ peg$savedPos = s0;
24155
+ s0 = peg$f89(s1);
24156
+ } else {
24157
+ peg$currPos = s0;
24158
+ s0 = peg$FAILED;
24159
+ }
24160
+ } else {
24161
+ peg$currPos = s0;
24162
+ s0 = peg$FAILED;
24163
+ }
24164
+ if (s0 === peg$FAILED) {
24165
+ s0 = peg$currPos;
24166
+ if (input.charCodeAt(peg$currPos) === 35) {
24167
+ s1 = peg$c21;
24168
+ peg$currPos++;
24169
+ } else {
24170
+ s1 = peg$FAILED;
24171
+ if (peg$silentFails === 0) {
24172
+ peg$fail(peg$e25);
24173
+ }
24174
+ }
24175
+ if (s1 !== peg$FAILED) {
24176
+ s2 = peg$currPos;
24177
+ s3 = [];
23895
24178
  s4 = peg$currPos;
23896
24179
  s5 = peg$currPos;
23897
24180
  peg$silentFails++;
@@ -23916,19 +24199,46 @@ function peg$parse(input, options) {
23916
24199
  peg$currPos = s4;
23917
24200
  s4 = peg$FAILED;
23918
24201
  }
23919
- }
23920
- s2 = input.substring(s2, peg$currPos);
23921
- s3 = peg$parseBlockTag();
23922
- if (s3 !== peg$FAILED) {
23923
- peg$savedPos = s0;
23924
- s0 = peg$f89(s2);
24202
+ while (s4 !== peg$FAILED) {
24203
+ s3.push(s4);
24204
+ s4 = peg$currPos;
24205
+ s5 = peg$currPos;
24206
+ peg$silentFails++;
24207
+ s6 = peg$parseBlockTag();
24208
+ peg$silentFails--;
24209
+ if (s6 === peg$FAILED) {
24210
+ s5 = void 0;
24211
+ } else {
24212
+ peg$currPos = s5;
24213
+ s5 = peg$FAILED;
24214
+ }
24215
+ if (s5 !== peg$FAILED) {
24216
+ s6 = peg$parsechar();
24217
+ if (s6 !== peg$FAILED) {
24218
+ s5 = [s5, s6];
24219
+ s4 = s5;
24220
+ } else {
24221
+ peg$currPos = s4;
24222
+ s4 = peg$FAILED;
24223
+ }
24224
+ } else {
24225
+ peg$currPos = s4;
24226
+ s4 = peg$FAILED;
24227
+ }
24228
+ }
24229
+ s2 = input.substring(s2, peg$currPos);
24230
+ s3 = peg$parseBlockTag();
24231
+ if (s3 !== peg$FAILED) {
24232
+ peg$savedPos = s0;
24233
+ s0 = peg$f90(s2);
24234
+ } else {
24235
+ peg$currPos = s0;
24236
+ s0 = peg$FAILED;
24237
+ }
23925
24238
  } else {
23926
24239
  peg$currPos = s0;
23927
24240
  s0 = peg$FAILED;
23928
24241
  }
23929
- } else {
23930
- peg$currPos = s0;
23931
- s0 = peg$FAILED;
23932
24242
  }
23933
24243
  }
23934
24244
  }
@@ -23962,13 +24272,13 @@ function peg$parse(input, options) {
23962
24272
  function peg$parseRef() {
23963
24273
  let s0, s1, s2, s3, s4, s5, s6;
23964
24274
  s0 = peg$currPos;
23965
- if (input.substr(peg$currPos, 2) === peg$c68) {
23966
- s1 = peg$c68;
24275
+ if (input.substr(peg$currPos, 2) === peg$c70) {
24276
+ s1 = peg$c70;
23967
24277
  peg$currPos += 2;
23968
24278
  } else {
23969
24279
  s1 = peg$FAILED;
23970
24280
  if (peg$silentFails === 0) {
23971
- peg$fail(peg$e72);
24281
+ peg$fail(peg$e74);
23972
24282
  }
23973
24283
  }
23974
24284
  if (s1 !== peg$FAILED) {
@@ -24027,7 +24337,7 @@ function peg$parse(input, options) {
24027
24337
  }
24028
24338
  s2 = input.substring(s2, peg$currPos);
24029
24339
  peg$savedPos = s0;
24030
- s0 = peg$f90(s2);
24340
+ s0 = peg$f91(s2);
24031
24341
  } else {
24032
24342
  peg$currPos = s0;
24033
24343
  s0 = peg$FAILED;
@@ -24036,403 +24346,414 @@ function peg$parse(input, options) {
24036
24346
  }
24037
24347
  function peg$parseAlternativeStyleTags() {
24038
24348
  let s0;
24039
- if (input.substr(peg$currPos, 4) === peg$c69) {
24040
- s0 = peg$c69;
24349
+ if (input.substr(peg$currPos, 4) === peg$c71) {
24350
+ s0 = peg$c71;
24041
24351
  peg$currPos += 4;
24042
24352
  } else {
24043
24353
  s0 = peg$FAILED;
24044
24354
  if (peg$silentFails === 0) {
24045
- peg$fail(peg$e73);
24355
+ peg$fail(peg$e75);
24046
24356
  }
24047
24357
  }
24048
24358
  if (s0 === peg$FAILED) {
24049
- if (input.substr(peg$currPos, 6) === peg$c70) {
24050
- s0 = peg$c70;
24359
+ if (input.substr(peg$currPos, 6) === peg$c72) {
24360
+ s0 = peg$c72;
24051
24361
  peg$currPos += 6;
24052
24362
  } else {
24053
24363
  s0 = peg$FAILED;
24054
24364
  if (peg$silentFails === 0) {
24055
- peg$fail(peg$e74);
24365
+ peg$fail(peg$e76);
24056
24366
  }
24057
24367
  }
24058
24368
  if (s0 === peg$FAILED) {
24059
- if (input.substr(peg$currPos, 5) === peg$c71) {
24060
- s0 = peg$c71;
24369
+ if (input.substr(peg$currPos, 5) === peg$c73) {
24370
+ s0 = peg$c73;
24061
24371
  peg$currPos += 5;
24062
24372
  } else {
24063
24373
  s0 = peg$FAILED;
24064
24374
  if (peg$silentFails === 0) {
24065
- peg$fail(peg$e75);
24375
+ peg$fail(peg$e77);
24066
24376
  }
24067
24377
  }
24068
24378
  if (s0 === peg$FAILED) {
24069
- if (input.substr(peg$currPos, 15) === peg$c72) {
24070
- s0 = peg$c72;
24379
+ if (input.substr(peg$currPos, 15) === peg$c74) {
24380
+ s0 = peg$c74;
24071
24381
  peg$currPos += 15;
24072
24382
  } else {
24073
24383
  s0 = peg$FAILED;
24074
24384
  if (peg$silentFails === 0) {
24075
- peg$fail(peg$e76);
24385
+ peg$fail(peg$e78);
24076
24386
  }
24077
24387
  }
24078
24388
  if (s0 === peg$FAILED) {
24079
- if (input.substr(peg$currPos, 15) === peg$c73) {
24080
- s0 = peg$c73;
24389
+ if (input.substr(peg$currPos, 15) === peg$c75) {
24390
+ s0 = peg$c75;
24081
24391
  peg$currPos += 15;
24082
24392
  } else {
24083
24393
  s0 = peg$FAILED;
24084
24394
  if (peg$silentFails === 0) {
24085
- peg$fail(peg$e77);
24395
+ peg$fail(peg$e79);
24086
24396
  }
24087
24397
  }
24088
24398
  if (s0 === peg$FAILED) {
24089
- if (input.substr(peg$currPos, 14) === peg$c74) {
24090
- s0 = peg$c74;
24399
+ if (input.substr(peg$currPos, 14) === peg$c76) {
24400
+ s0 = peg$c76;
24091
24401
  peg$currPos += 14;
24092
24402
  } else {
24093
24403
  s0 = peg$FAILED;
24094
24404
  if (peg$silentFails === 0) {
24095
- peg$fail(peg$e78);
24405
+ peg$fail(peg$e80);
24096
24406
  }
24097
24407
  }
24098
24408
  if (s0 === peg$FAILED) {
24099
- if (input.substr(peg$currPos, 13) === peg$c75) {
24100
- s0 = peg$c75;
24409
+ if (input.substr(peg$currPos, 13) === peg$c77) {
24410
+ s0 = peg$c77;
24101
24411
  peg$currPos += 13;
24102
24412
  } else {
24103
24413
  s0 = peg$FAILED;
24104
24414
  if (peg$silentFails === 0) {
24105
- peg$fail(peg$e79);
24415
+ peg$fail(peg$e81);
24106
24416
  }
24107
24417
  }
24108
24418
  if (s0 === peg$FAILED) {
24109
- if (input.substr(peg$currPos, 15) === peg$c76) {
24110
- s0 = peg$c76;
24419
+ if (input.substr(peg$currPos, 15) === peg$c78) {
24420
+ s0 = peg$c78;
24111
24421
  peg$currPos += 15;
24112
24422
  } else {
24113
24423
  s0 = peg$FAILED;
24114
24424
  if (peg$silentFails === 0) {
24115
- peg$fail(peg$e80);
24425
+ peg$fail(peg$e82);
24116
24426
  }
24117
24427
  }
24118
24428
  if (s0 === peg$FAILED) {
24119
- if (input.substr(peg$currPos, 13) === peg$c77) {
24120
- s0 = peg$c77;
24429
+ if (input.substr(peg$currPos, 13) === peg$c79) {
24430
+ s0 = peg$c79;
24121
24431
  peg$currPos += 13;
24122
24432
  } else {
24123
24433
  s0 = peg$FAILED;
24124
24434
  if (peg$silentFails === 0) {
24125
- peg$fail(peg$e81);
24435
+ peg$fail(peg$e83);
24126
24436
  }
24127
24437
  }
24128
24438
  if (s0 === peg$FAILED) {
24129
- if (input.substr(peg$currPos, 14) === peg$c78) {
24130
- s0 = peg$c78;
24439
+ if (input.substr(peg$currPos, 14) === peg$c80) {
24440
+ s0 = peg$c80;
24131
24441
  peg$currPos += 14;
24132
24442
  } else {
24133
24443
  s0 = peg$FAILED;
24134
24444
  if (peg$silentFails === 0) {
24135
- peg$fail(peg$e82);
24445
+ peg$fail(peg$e84);
24136
24446
  }
24137
24447
  }
24138
24448
  if (s0 === peg$FAILED) {
24139
- if (input.substr(peg$currPos, 14) === peg$c79) {
24140
- s0 = peg$c79;
24449
+ if (input.substr(peg$currPos, 14) === peg$c81) {
24450
+ s0 = peg$c81;
24141
24451
  peg$currPos += 14;
24142
24452
  } else {
24143
24453
  s0 = peg$FAILED;
24144
24454
  if (peg$silentFails === 0) {
24145
- peg$fail(peg$e83);
24455
+ peg$fail(peg$e85);
24146
24456
  }
24147
24457
  }
24148
24458
  if (s0 === peg$FAILED) {
24149
- if (input.substr(peg$currPos, 14) === peg$c80) {
24150
- s0 = peg$c80;
24459
+ if (input.substr(peg$currPos, 14) === peg$c82) {
24460
+ s0 = peg$c82;
24151
24461
  peg$currPos += 14;
24152
24462
  } else {
24153
24463
  s0 = peg$FAILED;
24154
24464
  if (peg$silentFails === 0) {
24155
- peg$fail(peg$e84);
24465
+ peg$fail(peg$e86);
24156
24466
  }
24157
24467
  }
24158
24468
  if (s0 === peg$FAILED) {
24159
- if (input.substr(peg$currPos, 13) === peg$c81) {
24160
- s0 = peg$c81;
24469
+ if (input.substr(peg$currPos, 13) === peg$c83) {
24470
+ s0 = peg$c83;
24161
24471
  peg$currPos += 13;
24162
24472
  } else {
24163
24473
  s0 = peg$FAILED;
24164
24474
  if (peg$silentFails === 0) {
24165
- peg$fail(peg$e85);
24475
+ peg$fail(peg$e87);
24166
24476
  }
24167
24477
  }
24168
24478
  if (s0 === peg$FAILED) {
24169
- if (input.substr(peg$currPos, 9) === peg$c82) {
24170
- s0 = peg$c82;
24479
+ if (input.substr(peg$currPos, 9) === peg$c66) {
24480
+ s0 = peg$c66;
24171
24481
  peg$currPos += 9;
24172
24482
  } else {
24173
24483
  s0 = peg$FAILED;
24174
24484
  if (peg$silentFails === 0) {
24175
- peg$fail(peg$e86);
24485
+ peg$fail(peg$e70);
24176
24486
  }
24177
24487
  }
24178
24488
  if (s0 === peg$FAILED) {
24179
- if (input.substr(peg$currPos, 6) === peg$c83) {
24180
- s0 = peg$c83;
24489
+ if (input.substr(peg$currPos, 6) === peg$c84) {
24490
+ s0 = peg$c84;
24181
24491
  peg$currPos += 6;
24182
24492
  } else {
24183
24493
  s0 = peg$FAILED;
24184
24494
  if (peg$silentFails === 0) {
24185
- peg$fail(peg$e87);
24495
+ peg$fail(peg$e88);
24186
24496
  }
24187
24497
  }
24188
24498
  if (s0 === peg$FAILED) {
24189
- if (input.substr(peg$currPos, 9) === peg$c84) {
24190
- s0 = peg$c84;
24499
+ if (input.substr(peg$currPos, 9) === peg$c85) {
24500
+ s0 = peg$c85;
24191
24501
  peg$currPos += 9;
24192
24502
  } else {
24193
24503
  s0 = peg$FAILED;
24194
24504
  if (peg$silentFails === 0) {
24195
- peg$fail(peg$e88);
24505
+ peg$fail(peg$e89);
24196
24506
  }
24197
24507
  }
24198
24508
  if (s0 === peg$FAILED) {
24199
- if (input.substr(peg$currPos, 11) === peg$c85) {
24200
- s0 = peg$c85;
24509
+ if (input.substr(peg$currPos, 11) === peg$c86) {
24510
+ s0 = peg$c86;
24201
24511
  peg$currPos += 11;
24202
24512
  } else {
24203
24513
  s0 = peg$FAILED;
24204
24514
  if (peg$silentFails === 0) {
24205
- peg$fail(peg$e89);
24515
+ peg$fail(peg$e90);
24206
24516
  }
24207
24517
  }
24208
24518
  if (s0 === peg$FAILED) {
24209
- if (input.substr(peg$currPos, 3) === peg$c86) {
24210
- s0 = peg$c86;
24519
+ if (input.substr(peg$currPos, 3) === peg$c87) {
24520
+ s0 = peg$c87;
24211
24521
  peg$currPos += 3;
24212
24522
  } else {
24213
24523
  s0 = peg$FAILED;
24214
24524
  if (peg$silentFails === 0) {
24215
- peg$fail(peg$e90);
24525
+ peg$fail(peg$e91);
24216
24526
  }
24217
24527
  }
24218
24528
  if (s0 === peg$FAILED) {
24219
- if (input.substr(peg$currPos, 3) === peg$c87) {
24220
- s0 = peg$c87;
24529
+ if (input.substr(peg$currPos, 3) === peg$c88) {
24530
+ s0 = peg$c88;
24221
24531
  peg$currPos += 3;
24222
24532
  } else {
24223
24533
  s0 = peg$FAILED;
24224
24534
  if (peg$silentFails === 0) {
24225
- peg$fail(peg$e91);
24535
+ peg$fail(peg$e92);
24226
24536
  }
24227
24537
  }
24228
24538
  if (s0 === peg$FAILED) {
24229
- if (input.substr(peg$currPos, 9) === peg$c88) {
24230
- s0 = peg$c88;
24539
+ if (input.substr(peg$currPos, 9) === peg$c89) {
24540
+ s0 = peg$c89;
24231
24541
  peg$currPos += 9;
24232
24542
  } else {
24233
24543
  s0 = peg$FAILED;
24234
24544
  if (peg$silentFails === 0) {
24235
- peg$fail(peg$e92);
24545
+ peg$fail(peg$e93);
24236
24546
  }
24237
24547
  }
24238
24548
  if (s0 === peg$FAILED) {
24239
- if (input.substr(peg$currPos, 15) === peg$c89) {
24240
- s0 = peg$c89;
24549
+ if (input.substr(peg$currPos, 15) === peg$c90) {
24550
+ s0 = peg$c90;
24241
24551
  peg$currPos += 15;
24242
24552
  } else {
24243
24553
  s0 = peg$FAILED;
24244
24554
  if (peg$silentFails === 0) {
24245
- peg$fail(peg$e93);
24555
+ peg$fail(peg$e94);
24246
24556
  }
24247
24557
  }
24248
24558
  if (s0 === peg$FAILED) {
24249
- if (input.substr(peg$currPos, 6) === peg$c90) {
24250
- s0 = peg$c90;
24251
- peg$currPos += 6;
24559
+ if (input.substr(peg$currPos, 9) === peg$c91) {
24560
+ s0 = peg$c91;
24561
+ peg$currPos += 9;
24252
24562
  } else {
24253
24563
  s0 = peg$FAILED;
24254
24564
  if (peg$silentFails === 0) {
24255
- peg$fail(peg$e94);
24565
+ peg$fail(peg$e95);
24256
24566
  }
24257
24567
  }
24258
24568
  if (s0 === peg$FAILED) {
24259
- if (input.substr(peg$currPos, 13) === peg$c91) {
24260
- s0 = peg$c91;
24261
- peg$currPos += 13;
24569
+ if (input.substr(peg$currPos, 6) === peg$c92) {
24570
+ s0 = peg$c92;
24571
+ peg$currPos += 6;
24262
24572
  } else {
24263
24573
  s0 = peg$FAILED;
24264
24574
  if (peg$silentFails === 0) {
24265
- peg$fail(peg$e95);
24575
+ peg$fail(peg$e96);
24266
24576
  }
24267
24577
  }
24268
24578
  if (s0 === peg$FAILED) {
24269
- if (input.substr(peg$currPos, 16) === peg$c92) {
24270
- s0 = peg$c92;
24271
- peg$currPos += 16;
24579
+ if (input.substr(peg$currPos, 13) === peg$c93) {
24580
+ s0 = peg$c93;
24581
+ peg$currPos += 13;
24272
24582
  } else {
24273
24583
  s0 = peg$FAILED;
24274
24584
  if (peg$silentFails === 0) {
24275
- peg$fail(peg$e96);
24585
+ peg$fail(peg$e97);
24276
24586
  }
24277
24587
  }
24278
24588
  if (s0 === peg$FAILED) {
24279
- if (input.substr(peg$currPos, 16) === peg$c93) {
24280
- s0 = peg$c93;
24589
+ if (input.substr(peg$currPos, 16) === peg$c94) {
24590
+ s0 = peg$c94;
24281
24591
  peg$currPos += 16;
24282
24592
  } else {
24283
24593
  s0 = peg$FAILED;
24284
24594
  if (peg$silentFails === 0) {
24285
- peg$fail(peg$e97);
24595
+ peg$fail(peg$e98);
24286
24596
  }
24287
24597
  }
24288
24598
  if (s0 === peg$FAILED) {
24289
- if (input.substr(peg$currPos, 15) === peg$c94) {
24290
- s0 = peg$c94;
24291
- peg$currPos += 15;
24599
+ if (input.substr(peg$currPos, 16) === peg$c95) {
24600
+ s0 = peg$c95;
24601
+ peg$currPos += 16;
24292
24602
  } else {
24293
24603
  s0 = peg$FAILED;
24294
24604
  if (peg$silentFails === 0) {
24295
- peg$fail(peg$e98);
24605
+ peg$fail(peg$e99);
24296
24606
  }
24297
24607
  }
24298
24608
  if (s0 === peg$FAILED) {
24299
- if (input.substr(peg$currPos, 14) === peg$c95) {
24300
- s0 = peg$c95;
24301
- peg$currPos += 14;
24609
+ if (input.substr(peg$currPos, 15) === peg$c96) {
24610
+ s0 = peg$c96;
24611
+ peg$currPos += 15;
24302
24612
  } else {
24303
24613
  s0 = peg$FAILED;
24304
24614
  if (peg$silentFails === 0) {
24305
- peg$fail(peg$e99);
24615
+ peg$fail(peg$e100);
24306
24616
  }
24307
24617
  }
24308
24618
  if (s0 === peg$FAILED) {
24309
- if (input.substr(peg$currPos, 16) === peg$c96) {
24310
- s0 = peg$c96;
24311
- peg$currPos += 16;
24619
+ if (input.substr(peg$currPos, 14) === peg$c97) {
24620
+ s0 = peg$c97;
24621
+ peg$currPos += 14;
24312
24622
  } else {
24313
24623
  s0 = peg$FAILED;
24314
24624
  if (peg$silentFails === 0) {
24315
- peg$fail(peg$e100);
24625
+ peg$fail(peg$e101);
24316
24626
  }
24317
24627
  }
24318
24628
  if (s0 === peg$FAILED) {
24319
- if (input.substr(peg$currPos, 14) === peg$c97) {
24320
- s0 = peg$c97;
24321
- peg$currPos += 14;
24629
+ if (input.substr(peg$currPos, 16) === peg$c98) {
24630
+ s0 = peg$c98;
24631
+ peg$currPos += 16;
24322
24632
  } else {
24323
24633
  s0 = peg$FAILED;
24324
24634
  if (peg$silentFails === 0) {
24325
- peg$fail(peg$e101);
24635
+ peg$fail(peg$e102);
24326
24636
  }
24327
24637
  }
24328
24638
  if (s0 === peg$FAILED) {
24329
- if (input.substr(peg$currPos, 15) === peg$c98) {
24330
- s0 = peg$c98;
24331
- peg$currPos += 15;
24639
+ if (input.substr(peg$currPos, 14) === peg$c99) {
24640
+ s0 = peg$c99;
24641
+ peg$currPos += 14;
24332
24642
  } else {
24333
24643
  s0 = peg$FAILED;
24334
24644
  if (peg$silentFails === 0) {
24335
- peg$fail(peg$e102);
24645
+ peg$fail(peg$e103);
24336
24646
  }
24337
24647
  }
24338
24648
  if (s0 === peg$FAILED) {
24339
- if (input.substr(peg$currPos, 15) === peg$c99) {
24340
- s0 = peg$c99;
24649
+ if (input.substr(peg$currPos, 15) === peg$c100) {
24650
+ s0 = peg$c100;
24341
24651
  peg$currPos += 15;
24342
24652
  } else {
24343
24653
  s0 = peg$FAILED;
24344
24654
  if (peg$silentFails === 0) {
24345
- peg$fail(peg$e103);
24655
+ peg$fail(peg$e104);
24346
24656
  }
24347
24657
  }
24348
24658
  if (s0 === peg$FAILED) {
24349
- if (input.substr(peg$currPos, 15) === peg$c100) {
24350
- s0 = peg$c100;
24659
+ if (input.substr(peg$currPos, 15) === peg$c101) {
24660
+ s0 = peg$c101;
24351
24661
  peg$currPos += 15;
24352
24662
  } else {
24353
24663
  s0 = peg$FAILED;
24354
24664
  if (peg$silentFails === 0) {
24355
- peg$fail(peg$e104);
24665
+ peg$fail(peg$e105);
24356
24666
  }
24357
24667
  }
24358
24668
  if (s0 === peg$FAILED) {
24359
- if (input.substr(peg$currPos, 14) === peg$c101) {
24360
- s0 = peg$c101;
24361
- peg$currPos += 14;
24669
+ if (input.substr(peg$currPos, 15) === peg$c102) {
24670
+ s0 = peg$c102;
24671
+ peg$currPos += 15;
24362
24672
  } else {
24363
24673
  s0 = peg$FAILED;
24364
24674
  if (peg$silentFails === 0) {
24365
- peg$fail(peg$e105);
24675
+ peg$fail(peg$e106);
24366
24676
  }
24367
24677
  }
24368
24678
  if (s0 === peg$FAILED) {
24369
- if (input.substr(peg$currPos, 10) === peg$c102) {
24370
- s0 = peg$c102;
24371
- peg$currPos += 10;
24679
+ if (input.substr(peg$currPos, 14) === peg$c103) {
24680
+ s0 = peg$c103;
24681
+ peg$currPos += 14;
24372
24682
  } else {
24373
24683
  s0 = peg$FAILED;
24374
24684
  if (peg$silentFails === 0) {
24375
- peg$fail(peg$e106);
24685
+ peg$fail(peg$e107);
24376
24686
  }
24377
24687
  }
24378
24688
  if (s0 === peg$FAILED) {
24379
- if (input.substr(peg$currPos, 13) === peg$c103) {
24380
- s0 = peg$c103;
24381
- peg$currPos += 13;
24689
+ if (input.substr(peg$currPos, 10) === peg$c104) {
24690
+ s0 = peg$c104;
24691
+ peg$currPos += 10;
24382
24692
  } else {
24383
24693
  s0 = peg$FAILED;
24384
24694
  if (peg$silentFails === 0) {
24385
- peg$fail(peg$e107);
24695
+ peg$fail(peg$e108);
24386
24696
  }
24387
24697
  }
24388
24698
  if (s0 === peg$FAILED) {
24389
- if (input.substr(peg$currPos, 19) === peg$c104) {
24390
- s0 = peg$c104;
24391
- peg$currPos += 19;
24699
+ if (input.substr(peg$currPos, 13) === peg$c105) {
24700
+ s0 = peg$c105;
24701
+ peg$currPos += 13;
24392
24702
  } else {
24393
24703
  s0 = peg$FAILED;
24394
24704
  if (peg$silentFails === 0) {
24395
- peg$fail(peg$e108);
24705
+ peg$fail(peg$e109);
24396
24706
  }
24397
24707
  }
24398
24708
  if (s0 === peg$FAILED) {
24399
- if (input.substr(peg$currPos, 10) === peg$c105) {
24400
- s0 = peg$c105;
24401
- peg$currPos += 10;
24709
+ if (input.substr(peg$currPos, 19) === peg$c106) {
24710
+ s0 = peg$c106;
24711
+ peg$currPos += 19;
24402
24712
  } else {
24403
24713
  s0 = peg$FAILED;
24404
24714
  if (peg$silentFails === 0) {
24405
- peg$fail(peg$e109);
24715
+ peg$fail(peg$e110);
24406
24716
  }
24407
24717
  }
24408
24718
  if (s0 === peg$FAILED) {
24409
- if (input.substr(peg$currPos, 10) === peg$c106) {
24410
- s0 = peg$c106;
24719
+ if (input.substr(peg$currPos, 10) === peg$c107) {
24720
+ s0 = peg$c107;
24411
24721
  peg$currPos += 10;
24412
24722
  } else {
24413
24723
  s0 = peg$FAILED;
24414
24724
  if (peg$silentFails === 0) {
24415
- peg$fail(peg$e110);
24725
+ peg$fail(peg$e111);
24416
24726
  }
24417
24727
  }
24418
24728
  if (s0 === peg$FAILED) {
24419
- if (input.substr(peg$currPos, 13) === peg$c107) {
24420
- s0 = peg$c107;
24421
- peg$currPos += 13;
24729
+ if (input.substr(peg$currPos, 10) === peg$c108) {
24730
+ s0 = peg$c108;
24731
+ peg$currPos += 10;
24422
24732
  } else {
24423
24733
  s0 = peg$FAILED;
24424
24734
  if (peg$silentFails === 0) {
24425
- peg$fail(peg$e111);
24735
+ peg$fail(peg$e112);
24426
24736
  }
24427
24737
  }
24428
24738
  if (s0 === peg$FAILED) {
24429
- if (input.substr(peg$currPos, 11) === peg$c108) {
24430
- s0 = peg$c108;
24431
- peg$currPos += 11;
24739
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24740
+ s0 = peg$c68;
24741
+ peg$currPos += 13;
24432
24742
  } else {
24433
24743
  s0 = peg$FAILED;
24434
24744
  if (peg$silentFails === 0) {
24435
- peg$fail(peg$e112);
24745
+ peg$fail(peg$e72);
24746
+ }
24747
+ }
24748
+ if (s0 === peg$FAILED) {
24749
+ if (input.substr(peg$currPos, 11) === peg$c109) {
24750
+ s0 = peg$c109;
24751
+ peg$currPos += 11;
24752
+ } else {
24753
+ s0 = peg$FAILED;
24754
+ if (peg$silentFails === 0) {
24755
+ peg$fail(peg$e113);
24756
+ }
24436
24757
  }
24437
24758
  }
24438
24759
  }
@@ -24478,233 +24799,233 @@ function peg$parse(input, options) {
24478
24799
  }
24479
24800
  function peg$parseColor() {
24480
24801
  let s0;
24481
- if (input.substr(peg$currPos, 4) === peg$c109) {
24482
- s0 = peg$c109;
24802
+ if (input.substr(peg$currPos, 4) === peg$c110) {
24803
+ s0 = peg$c110;
24483
24804
  peg$currPos += 4;
24484
24805
  } else {
24485
24806
  s0 = peg$FAILED;
24486
24807
  if (peg$silentFails === 0) {
24487
- peg$fail(peg$e113);
24808
+ peg$fail(peg$e114);
24488
24809
  }
24489
24810
  }
24490
24811
  if (s0 === peg$FAILED) {
24491
- if (input.substr(peg$currPos, 5) === peg$c110) {
24492
- s0 = peg$c110;
24812
+ if (input.substr(peg$currPos, 5) === peg$c111) {
24813
+ s0 = peg$c111;
24493
24814
  peg$currPos += 5;
24494
24815
  } else {
24495
24816
  s0 = peg$FAILED;
24496
24817
  if (peg$silentFails === 0) {
24497
- peg$fail(peg$e114);
24818
+ peg$fail(peg$e115);
24498
24819
  }
24499
24820
  }
24500
24821
  if (s0 === peg$FAILED) {
24501
- if (input.substr(peg$currPos, 4) === peg$c111) {
24502
- s0 = peg$c111;
24822
+ if (input.substr(peg$currPos, 4) === peg$c112) {
24823
+ s0 = peg$c112;
24503
24824
  peg$currPos += 4;
24504
24825
  } else {
24505
24826
  s0 = peg$FAILED;
24506
24827
  if (peg$silentFails === 0) {
24507
- peg$fail(peg$e115);
24828
+ peg$fail(peg$e116);
24508
24829
  }
24509
24830
  }
24510
24831
  if (s0 === peg$FAILED) {
24511
- if (input.substr(peg$currPos, 5) === peg$c112) {
24512
- s0 = peg$c112;
24832
+ if (input.substr(peg$currPos, 5) === peg$c113) {
24833
+ s0 = peg$c113;
24513
24834
  peg$currPos += 5;
24514
24835
  } else {
24515
24836
  s0 = peg$FAILED;
24516
24837
  if (peg$silentFails === 0) {
24517
- peg$fail(peg$e116);
24838
+ peg$fail(peg$e117);
24518
24839
  }
24519
24840
  }
24520
24841
  if (s0 === peg$FAILED) {
24521
- if (input.substr(peg$currPos, 7) === peg$c113) {
24522
- s0 = peg$c113;
24842
+ if (input.substr(peg$currPos, 7) === peg$c114) {
24843
+ s0 = peg$c114;
24523
24844
  peg$currPos += 7;
24524
24845
  } else {
24525
24846
  s0 = peg$FAILED;
24526
24847
  if (peg$silentFails === 0) {
24527
- peg$fail(peg$e117);
24848
+ peg$fail(peg$e118);
24528
24849
  }
24529
24850
  }
24530
24851
  if (s0 === peg$FAILED) {
24531
- if (input.substr(peg$currPos, 9) === peg$c114) {
24532
- s0 = peg$c114;
24852
+ if (input.substr(peg$currPos, 9) === peg$c115) {
24853
+ s0 = peg$c115;
24533
24854
  peg$currPos += 9;
24534
24855
  } else {
24535
24856
  s0 = peg$FAILED;
24536
24857
  if (peg$silentFails === 0) {
24537
- peg$fail(peg$e118);
24858
+ peg$fail(peg$e119);
24538
24859
  }
24539
24860
  }
24540
24861
  if (s0 === peg$FAILED) {
24541
- if (input.substr(peg$currPos, 4) === peg$c115) {
24542
- s0 = peg$c115;
24862
+ if (input.substr(peg$currPos, 4) === peg$c116) {
24863
+ s0 = peg$c116;
24543
24864
  peg$currPos += 4;
24544
24865
  } else {
24545
24866
  s0 = peg$FAILED;
24546
24867
  if (peg$silentFails === 0) {
24547
- peg$fail(peg$e119);
24868
+ peg$fail(peg$e120);
24548
24869
  }
24549
24870
  }
24550
24871
  if (s0 === peg$FAILED) {
24551
- if (input.substr(peg$currPos, 8) === peg$c116) {
24552
- s0 = peg$c116;
24872
+ if (input.substr(peg$currPos, 8) === peg$c117) {
24873
+ s0 = peg$c117;
24553
24874
  peg$currPos += 8;
24554
24875
  } else {
24555
24876
  s0 = peg$FAILED;
24556
24877
  if (peg$silentFails === 0) {
24557
- peg$fail(peg$e120);
24878
+ peg$fail(peg$e121);
24558
24879
  }
24559
24880
  }
24560
24881
  if (s0 === peg$FAILED) {
24561
- if (input.substr(peg$currPos, 5) === peg$c117) {
24562
- s0 = peg$c117;
24882
+ if (input.substr(peg$currPos, 5) === peg$c118) {
24883
+ s0 = peg$c118;
24563
24884
  peg$currPos += 5;
24564
24885
  } else {
24565
24886
  s0 = peg$FAILED;
24566
24887
  if (peg$silentFails === 0) {
24567
- peg$fail(peg$e121);
24888
+ peg$fail(peg$e122);
24568
24889
  }
24569
24890
  }
24570
24891
  if (s0 === peg$FAILED) {
24571
- if (input.substr(peg$currPos, 4) === peg$c118) {
24572
- s0 = peg$c118;
24892
+ if (input.substr(peg$currPos, 4) === peg$c119) {
24893
+ s0 = peg$c119;
24573
24894
  peg$currPos += 4;
24574
24895
  } else {
24575
24896
  s0 = peg$FAILED;
24576
24897
  if (peg$silentFails === 0) {
24577
- peg$fail(peg$e122);
24898
+ peg$fail(peg$e123);
24578
24899
  }
24579
24900
  }
24580
24901
  if (s0 === peg$FAILED) {
24581
- if (input.substr(peg$currPos, 7) === peg$c119) {
24582
- s0 = peg$c119;
24902
+ if (input.substr(peg$currPos, 7) === peg$c120) {
24903
+ s0 = peg$c120;
24583
24904
  peg$currPos += 7;
24584
24905
  } else {
24585
24906
  s0 = peg$FAILED;
24586
24907
  if (peg$silentFails === 0) {
24587
- peg$fail(peg$e123);
24908
+ peg$fail(peg$e124);
24588
24909
  }
24589
24910
  }
24590
24911
  if (s0 === peg$FAILED) {
24591
- if (input.substr(peg$currPos, 6) === peg$c120) {
24592
- s0 = peg$c120;
24912
+ if (input.substr(peg$currPos, 6) === peg$c121) {
24913
+ s0 = peg$c121;
24593
24914
  peg$currPos += 6;
24594
24915
  } else {
24595
24916
  s0 = peg$FAILED;
24596
24917
  if (peg$silentFails === 0) {
24597
- peg$fail(peg$e124);
24918
+ peg$fail(peg$e125);
24598
24919
  }
24599
24920
  }
24600
24921
  if (s0 === peg$FAILED) {
24601
- if (input.substr(peg$currPos, 4) === peg$c121) {
24602
- s0 = peg$c121;
24922
+ if (input.substr(peg$currPos, 4) === peg$c122) {
24923
+ s0 = peg$c122;
24603
24924
  peg$currPos += 4;
24604
24925
  } else {
24605
24926
  s0 = peg$FAILED;
24606
24927
  if (peg$silentFails === 0) {
24607
- peg$fail(peg$e125);
24928
+ peg$fail(peg$e126);
24608
24929
  }
24609
24930
  }
24610
24931
  if (s0 === peg$FAILED) {
24611
- if (input.substr(peg$currPos, 5) === peg$c122) {
24612
- s0 = peg$c122;
24932
+ if (input.substr(peg$currPos, 5) === peg$c123) {
24933
+ s0 = peg$c123;
24613
24934
  peg$currPos += 5;
24614
24935
  } else {
24615
24936
  s0 = peg$FAILED;
24616
24937
  if (peg$silentFails === 0) {
24617
- peg$fail(peg$e126);
24938
+ peg$fail(peg$e127);
24618
24939
  }
24619
24940
  }
24620
24941
  if (s0 === peg$FAILED) {
24621
- if (input.substr(peg$currPos, 6) === peg$c123) {
24622
- s0 = peg$c123;
24942
+ if (input.substr(peg$currPos, 6) === peg$c124) {
24943
+ s0 = peg$c124;
24623
24944
  peg$currPos += 6;
24624
24945
  } else {
24625
24946
  s0 = peg$FAILED;
24626
24947
  if (peg$silentFails === 0) {
24627
- peg$fail(peg$e127);
24948
+ peg$fail(peg$e128);
24628
24949
  }
24629
24950
  }
24630
24951
  if (s0 === peg$FAILED) {
24631
- if (input.substr(peg$currPos, 4) === peg$c124) {
24632
- s0 = peg$c124;
24952
+ if (input.substr(peg$currPos, 4) === peg$c125) {
24953
+ s0 = peg$c125;
24633
24954
  peg$currPos += 4;
24634
24955
  } else {
24635
24956
  s0 = peg$FAILED;
24636
24957
  if (peg$silentFails === 0) {
24637
- peg$fail(peg$e128);
24958
+ peg$fail(peg$e129);
24638
24959
  }
24639
24960
  }
24640
24961
  if (s0 === peg$FAILED) {
24641
- if (input.substr(peg$currPos, 6) === peg$c125) {
24642
- s0 = peg$c125;
24962
+ if (input.substr(peg$currPos, 6) === peg$c126) {
24963
+ s0 = peg$c126;
24643
24964
  peg$currPos += 6;
24644
24965
  } else {
24645
24966
  s0 = peg$FAILED;
24646
24967
  if (peg$silentFails === 0) {
24647
- peg$fail(peg$e129);
24968
+ peg$fail(peg$e130);
24648
24969
  }
24649
24970
  }
24650
24971
  if (s0 === peg$FAILED) {
24651
- if (input.substr(peg$currPos, 3) === peg$c126) {
24652
- s0 = peg$c126;
24972
+ if (input.substr(peg$currPos, 3) === peg$c127) {
24973
+ s0 = peg$c127;
24653
24974
  peg$currPos += 3;
24654
24975
  } else {
24655
24976
  s0 = peg$FAILED;
24656
24977
  if (peg$silentFails === 0) {
24657
- peg$fail(peg$e130);
24978
+ peg$fail(peg$e131);
24658
24979
  }
24659
24980
  }
24660
24981
  if (s0 === peg$FAILED) {
24661
- if (input.substr(peg$currPos, 6) === peg$c127) {
24662
- s0 = peg$c127;
24982
+ if (input.substr(peg$currPos, 6) === peg$c128) {
24983
+ s0 = peg$c128;
24663
24984
  peg$currPos += 6;
24664
24985
  } else {
24665
24986
  s0 = peg$FAILED;
24666
24987
  if (peg$silentFails === 0) {
24667
- peg$fail(peg$e131);
24988
+ peg$fail(peg$e132);
24668
24989
  }
24669
24990
  }
24670
24991
  if (s0 === peg$FAILED) {
24671
- if (input.substr(peg$currPos, 4) === peg$c128) {
24672
- s0 = peg$c128;
24992
+ if (input.substr(peg$currPos, 4) === peg$c129) {
24993
+ s0 = peg$c129;
24673
24994
  peg$currPos += 4;
24674
24995
  } else {
24675
24996
  s0 = peg$FAILED;
24676
24997
  if (peg$silentFails === 0) {
24677
- peg$fail(peg$e132);
24998
+ peg$fail(peg$e133);
24678
24999
  }
24679
25000
  }
24680
25001
  if (s0 === peg$FAILED) {
24681
- if (input.substr(peg$currPos, 6) === peg$c129) {
24682
- s0 = peg$c129;
25002
+ if (input.substr(peg$currPos, 6) === peg$c130) {
25003
+ s0 = peg$c130;
24683
25004
  peg$currPos += 6;
24684
25005
  } else {
24685
25006
  s0 = peg$FAILED;
24686
25007
  if (peg$silentFails === 0) {
24687
- peg$fail(peg$e133);
25008
+ peg$fail(peg$e134);
24688
25009
  }
24689
25010
  }
24690
25011
  if (s0 === peg$FAILED) {
24691
- if (input.substr(peg$currPos, 5) === peg$c130) {
24692
- s0 = peg$c130;
25012
+ if (input.substr(peg$currPos, 5) === peg$c131) {
25013
+ s0 = peg$c131;
24693
25014
  peg$currPos += 5;
24694
25015
  } else {
24695
25016
  s0 = peg$FAILED;
24696
25017
  if (peg$silentFails === 0) {
24697
- peg$fail(peg$e134);
25018
+ peg$fail(peg$e135);
24698
25019
  }
24699
25020
  }
24700
25021
  if (s0 === peg$FAILED) {
24701
- if (input.substr(peg$currPos, 6) === peg$c131) {
24702
- s0 = peg$c131;
25022
+ if (input.substr(peg$currPos, 6) === peg$c132) {
25023
+ s0 = peg$c132;
24703
25024
  peg$currPos += 6;
24704
25025
  } else {
24705
25026
  s0 = peg$FAILED;
24706
25027
  if (peg$silentFails === 0) {
24707
- peg$fail(peg$e135);
25028
+ peg$fail(peg$e136);
24708
25029
  }
24709
25030
  }
24710
25031
  }
@@ -24731,13 +25052,125 @@ function peg$parse(input, options) {
24731
25052
  }
24732
25053
  return s0;
24733
25054
  }
25055
+ function peg$parseHighlightColor() {
25056
+ let s0;
25057
+ if (input.substr(peg$currPos, 6) === peg$c124) {
25058
+ s0 = peg$c124;
25059
+ peg$currPos += 6;
25060
+ } else {
25061
+ s0 = peg$FAILED;
25062
+ if (peg$silentFails === 0) {
25063
+ peg$fail(peg$e128);
25064
+ }
25065
+ }
25066
+ if (s0 === peg$FAILED) {
25067
+ if (input.substr(peg$currPos, 6) === peg$c132) {
25068
+ s0 = peg$c132;
25069
+ peg$currPos += 6;
25070
+ } else {
25071
+ s0 = peg$FAILED;
25072
+ if (peg$silentFails === 0) {
25073
+ peg$fail(peg$e136);
25074
+ }
25075
+ }
25076
+ if (s0 === peg$FAILED) {
25077
+ if (input.substr(peg$currPos, 5) === peg$c118) {
25078
+ s0 = peg$c118;
25079
+ peg$currPos += 5;
25080
+ } else {
25081
+ s0 = peg$FAILED;
25082
+ if (peg$silentFails === 0) {
25083
+ peg$fail(peg$e122);
25084
+ }
25085
+ }
25086
+ if (s0 === peg$FAILED) {
25087
+ if (input.substr(peg$currPos, 4) === peg$c112) {
25088
+ s0 = peg$c112;
25089
+ peg$currPos += 4;
25090
+ } else {
25091
+ s0 = peg$FAILED;
25092
+ if (peg$silentFails === 0) {
25093
+ peg$fail(peg$e116);
25094
+ }
25095
+ }
25096
+ if (s0 === peg$FAILED) {
25097
+ if (input.substr(peg$currPos, 6) === peg$c126) {
25098
+ s0 = peg$c126;
25099
+ peg$currPos += 6;
25100
+ } else {
25101
+ s0 = peg$FAILED;
25102
+ if (peg$silentFails === 0) {
25103
+ peg$fail(peg$e130);
25104
+ }
25105
+ }
25106
+ if (s0 === peg$FAILED) {
25107
+ if (input.substr(peg$currPos, 4) === peg$c125) {
25108
+ s0 = peg$c125;
25109
+ peg$currPos += 4;
25110
+ } else {
25111
+ s0 = peg$FAILED;
25112
+ if (peg$silentFails === 0) {
25113
+ peg$fail(peg$e129);
25114
+ }
25115
+ }
25116
+ if (s0 === peg$FAILED) {
25117
+ if (input.substr(peg$currPos, 5) === peg$c113) {
25118
+ s0 = peg$c113;
25119
+ peg$currPos += 5;
25120
+ } else {
25121
+ s0 = peg$FAILED;
25122
+ if (peg$silentFails === 0) {
25123
+ peg$fail(peg$e117);
25124
+ }
25125
+ }
25126
+ if (s0 === peg$FAILED) {
25127
+ if (input.substr(peg$currPos, 5) === peg$c131) {
25128
+ s0 = peg$c131;
25129
+ peg$currPos += 5;
25130
+ } else {
25131
+ s0 = peg$FAILED;
25132
+ if (peg$silentFails === 0) {
25133
+ peg$fail(peg$e135);
25134
+ }
25135
+ }
25136
+ if (s0 === peg$FAILED) {
25137
+ if (input.substr(peg$currPos, 5) === peg$c111) {
25138
+ s0 = peg$c111;
25139
+ peg$currPos += 5;
25140
+ } else {
25141
+ s0 = peg$FAILED;
25142
+ if (peg$silentFails === 0) {
25143
+ peg$fail(peg$e115);
25144
+ }
25145
+ }
25146
+ if (s0 === peg$FAILED) {
25147
+ if (input.substr(peg$currPos, 4) === peg$c116) {
25148
+ s0 = peg$c116;
25149
+ peg$currPos += 4;
25150
+ } else {
25151
+ s0 = peg$FAILED;
25152
+ if (peg$silentFails === 0) {
25153
+ peg$fail(peg$e120);
25154
+ }
25155
+ }
25156
+ }
25157
+ }
25158
+ }
25159
+ }
25160
+ }
25161
+ }
25162
+ }
25163
+ }
25164
+ }
25165
+ return s0;
25166
+ }
24734
25167
  function peg$parsebitmarkMinusMinus() {
24735
25168
  let s0, s1;
24736
25169
  peg$silentFails++;
24737
25170
  s0 = peg$currPos;
24738
25171
  s1 = peg$parsebitmarkMinusMinusString();
24739
25172
  peg$savedPos = s0;
24740
- s1 = peg$f91(s1);
25173
+ s1 = peg$f92(s1);
24741
25174
  s0 = s1;
24742
25175
  peg$silentFails--;
24743
25176
  return s0;
@@ -24763,7 +25196,7 @@ function peg$parse(input, options) {
24763
25196
  }
24764
25197
  }
24765
25198
  peg$savedPos = s0;
24766
- s0 = peg$f92(s1, s2);
25199
+ s0 = peg$f93(s1, s2);
24767
25200
  peg$silentFails--;
24768
25201
  return s0;
24769
25202
  }
@@ -24773,7 +25206,7 @@ function peg$parse(input, options) {
24773
25206
  s1 = peg$parseNL();
24774
25207
  if (s1 !== peg$FAILED) {
24775
25208
  peg$savedPos = s0;
24776
- s1 = peg$f93();
25209
+ s1 = peg$f94();
24777
25210
  }
24778
25211
  s0 = s1;
24779
25212
  if (s0 === peg$FAILED) {
@@ -24902,7 +25335,7 @@ function peg$parse(input, options) {
24902
25335
  }
24903
25336
  if (s1 !== peg$FAILED) {
24904
25337
  peg$savedPos = s0;
24905
- s1 = peg$f94(s1);
25338
+ s1 = peg$f95(s1);
24906
25339
  }
24907
25340
  s0 = s1;
24908
25341
  }
@@ -24911,12 +25344,12 @@ function peg$parse(input, options) {
24911
25344
  function peg$parseBoldHalfTag() {
24912
25345
  let s0;
24913
25346
  if (input.charCodeAt(peg$currPos) === 42) {
24914
- s0 = peg$c132;
25347
+ s0 = peg$c133;
24915
25348
  peg$currPos++;
24916
25349
  } else {
24917
25350
  s0 = peg$FAILED;
24918
25351
  if (peg$silentFails === 0) {
24919
- peg$fail(peg$e136);
25352
+ peg$fail(peg$e137);
24920
25353
  }
24921
25354
  }
24922
25355
  return s0;
@@ -24924,12 +25357,12 @@ function peg$parse(input, options) {
24924
25357
  function peg$parseItalicHalfTag() {
24925
25358
  let s0;
24926
25359
  if (input.charCodeAt(peg$currPos) === 95) {
24927
- s0 = peg$c133;
25360
+ s0 = peg$c134;
24928
25361
  peg$currPos++;
24929
25362
  } else {
24930
25363
  s0 = peg$FAILED;
24931
25364
  if (peg$silentFails === 0) {
24932
- peg$fail(peg$e137);
25365
+ peg$fail(peg$e138);
24933
25366
  }
24934
25367
  }
24935
25368
  return s0;
@@ -24937,12 +25370,12 @@ function peg$parse(input, options) {
24937
25370
  function peg$parseLightHalfTag() {
24938
25371
  let s0;
24939
25372
  if (input.charCodeAt(peg$currPos) === 96) {
24940
- s0 = peg$c134;
25373
+ s0 = peg$c135;
24941
25374
  peg$currPos++;
24942
25375
  } else {
24943
25376
  s0 = peg$FAILED;
24944
25377
  if (peg$silentFails === 0) {
24945
- peg$fail(peg$e138);
25378
+ peg$fail(peg$e139);
24946
25379
  }
24947
25380
  }
24948
25381
  return s0;
@@ -24950,12 +25383,12 @@ function peg$parse(input, options) {
24950
25383
  function peg$parseHighlightHalfTag() {
24951
25384
  let s0;
24952
25385
  if (input.charCodeAt(peg$currPos) === 33) {
24953
- s0 = peg$c135;
25386
+ s0 = peg$c136;
24954
25387
  peg$currPos++;
24955
25388
  } else {
24956
25389
  s0 = peg$FAILED;
24957
25390
  if (peg$silentFails === 0) {
24958
- peg$fail(peg$e139);
25391
+ peg$fail(peg$e140);
24959
25392
  }
24960
25393
  }
24961
25394
  return s0;
@@ -25038,13 +25471,13 @@ function peg$parse(input, options) {
25038
25471
  }
25039
25472
  function peg$parseBodyBitOpenTag() {
25040
25473
  let s0;
25041
- if (input.substr(peg$currPos, 2) === peg$c136) {
25042
- s0 = peg$c136;
25474
+ if (input.substr(peg$currPos, 2) === peg$c137) {
25475
+ s0 = peg$c137;
25043
25476
  peg$currPos += 2;
25044
25477
  } else {
25045
25478
  s0 = peg$FAILED;
25046
25479
  if (peg$silentFails === 0) {
25047
- peg$fail(peg$e140);
25480
+ peg$fail(peg$e141);
25048
25481
  }
25049
25482
  }
25050
25483
  return s0;
@@ -25052,12 +25485,12 @@ function peg$parse(input, options) {
25052
25485
  function peg$parseBodyBitCloseTag() {
25053
25486
  let s0;
25054
25487
  if (input.charCodeAt(peg$currPos) === 93) {
25055
- s0 = peg$c137;
25488
+ s0 = peg$c138;
25056
25489
  peg$currPos++;
25057
25490
  } else {
25058
25491
  s0 = peg$FAILED;
25059
25492
  if (peg$silentFails === 0) {
25060
- peg$fail(peg$e141);
25493
+ peg$fail(peg$e142);
25061
25494
  }
25062
25495
  }
25063
25496
  return s0;
@@ -25103,7 +25536,7 @@ function peg$parse(input, options) {
25103
25536
  s3 = peg$parseBodyBitCloseTag();
25104
25537
  if (s3 !== peg$FAILED) {
25105
25538
  peg$savedPos = s0;
25106
- s0 = peg$f95(s2);
25539
+ s0 = peg$f96(s2);
25107
25540
  } else {
25108
25541
  peg$currPos = s0;
25109
25542
  s0 = peg$FAILED;
@@ -25193,7 +25626,7 @@ function peg$parse(input, options) {
25193
25626
  s3 = peg$parseBoldTag();
25194
25627
  if (s3 !== peg$FAILED) {
25195
25628
  peg$savedPos = s0;
25196
- s0 = peg$f96(s2);
25629
+ s0 = peg$f97(s2);
25197
25630
  } else {
25198
25631
  peg$currPos = s0;
25199
25632
  s0 = peg$FAILED;
@@ -25279,7 +25712,7 @@ function peg$parse(input, options) {
25279
25712
  s3 = peg$parseItalicTag();
25280
25713
  if (s3 !== peg$FAILED) {
25281
25714
  peg$savedPos = s0;
25282
- s0 = peg$f97(s2);
25715
+ s0 = peg$f98(s2);
25283
25716
  } else {
25284
25717
  peg$currPos = s0;
25285
25718
  s0 = peg$FAILED;
@@ -25365,7 +25798,7 @@ function peg$parse(input, options) {
25365
25798
  s3 = peg$parseLightTag();
25366
25799
  if (s3 !== peg$FAILED) {
25367
25800
  peg$savedPos = s0;
25368
- s0 = peg$f98(s2);
25801
+ s0 = peg$f99(s2);
25369
25802
  } else {
25370
25803
  peg$currPos = s0;
25371
25804
  s0 = peg$FAILED;
@@ -25451,7 +25884,7 @@ function peg$parse(input, options) {
25451
25884
  s3 = peg$parseHighlightTag();
25452
25885
  if (s3 !== peg$FAILED) {
25453
25886
  peg$savedPos = s0;
25454
- s0 = peg$f99(s2);
25887
+ s0 = peg$f100(s2);
25455
25888
  } else {
25456
25889
  peg$currPos = s0;
25457
25890
  s0 = peg$FAILED;
@@ -25536,22 +25969,22 @@ function peg$parse(input, options) {
25536
25969
  let s0, s1;
25537
25970
  peg$silentFails++;
25538
25971
  if (input.charCodeAt(peg$currPos) === 10) {
25539
- s0 = peg$c138;
25972
+ s0 = peg$c139;
25540
25973
  peg$currPos++;
25541
25974
  } else {
25542
25975
  s0 = peg$FAILED;
25543
25976
  if (peg$silentFails === 0) {
25544
- peg$fail(peg$e143);
25977
+ peg$fail(peg$e144);
25545
25978
  }
25546
25979
  }
25547
25980
  if (s0 === peg$FAILED) {
25548
- if (input.substr(peg$currPos, 2) === peg$c139) {
25549
- s0 = peg$c139;
25981
+ if (input.substr(peg$currPos, 2) === peg$c140) {
25982
+ s0 = peg$c140;
25550
25983
  peg$currPos += 2;
25551
25984
  } else {
25552
25985
  s0 = peg$FAILED;
25553
25986
  if (peg$silentFails === 0) {
25554
- peg$fail(peg$e144);
25987
+ peg$fail(peg$e145);
25555
25988
  }
25556
25989
  }
25557
25990
  if (s0 === peg$FAILED) {
@@ -25561,7 +25994,7 @@ function peg$parse(input, options) {
25561
25994
  } else {
25562
25995
  s0 = peg$FAILED;
25563
25996
  if (peg$silentFails === 0) {
25564
- peg$fail(peg$e145);
25997
+ peg$fail(peg$e146);
25565
25998
  }
25566
25999
  }
25567
26000
  }
@@ -25570,7 +26003,7 @@ function peg$parse(input, options) {
25570
26003
  if (s0 === peg$FAILED) {
25571
26004
  s1 = peg$FAILED;
25572
26005
  if (peg$silentFails === 0) {
25573
- peg$fail(peg$e142);
26006
+ peg$fail(peg$e143);
25574
26007
  }
25575
26008
  }
25576
26009
  return s0;
@@ -25583,7 +26016,7 @@ function peg$parse(input, options) {
25583
26016
  } else {
25584
26017
  s0 = peg$FAILED;
25585
26018
  if (peg$silentFails === 0) {
25586
- peg$fail(peg$e146);
26019
+ peg$fail(peg$e147);
25587
26020
  }
25588
26021
  }
25589
26022
  return s0;
@@ -25617,35 +26050,35 @@ function peg$parse(input, options) {
25617
26050
  let s0, s1, s2, s3, s4, s5, s6, s7, s8;
25618
26051
  s0 = peg$currPos;
25619
26052
  s1 = peg$currPos;
25620
- if (input.substr(peg$currPos, 4) === peg$c140) {
25621
- s2 = peg$c140;
26053
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26054
+ s2 = peg$c141;
25622
26055
  peg$currPos += 4;
25623
26056
  } else {
25624
26057
  s2 = peg$FAILED;
25625
26058
  if (peg$silentFails === 0) {
25626
- peg$fail(peg$e147);
26059
+ peg$fail(peg$e148);
25627
26060
  }
25628
26061
  }
25629
26062
  if (s2 !== peg$FAILED) {
25630
26063
  if (input.charCodeAt(peg$currPos) === 115) {
25631
- s3 = peg$c141;
26064
+ s3 = peg$c142;
25632
26065
  peg$currPos++;
25633
26066
  } else {
25634
26067
  s3 = peg$FAILED;
25635
26068
  if (peg$silentFails === 0) {
25636
- peg$fail(peg$e148);
26069
+ peg$fail(peg$e149);
25637
26070
  }
25638
26071
  }
25639
26072
  if (s3 === peg$FAILED) {
25640
26073
  s3 = null;
25641
26074
  }
25642
- if (input.substr(peg$currPos, 3) === peg$c142) {
25643
- s4 = peg$c142;
26075
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26076
+ s4 = peg$c143;
25644
26077
  peg$currPos += 3;
25645
26078
  } else {
25646
26079
  s4 = peg$FAILED;
25647
26080
  if (peg$silentFails === 0) {
25648
- peg$fail(peg$e149);
26081
+ peg$fail(peg$e150);
25649
26082
  }
25650
26083
  }
25651
26084
  if (s4 !== peg$FAILED) {
@@ -25723,35 +26156,35 @@ function peg$parse(input, options) {
25723
26156
  s0 = peg$currPos;
25724
26157
  s1 = peg$currPos;
25725
26158
  s2 = peg$currPos;
25726
- if (input.substr(peg$currPos, 4) === peg$c140) {
25727
- s3 = peg$c140;
26159
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26160
+ s3 = peg$c141;
25728
26161
  peg$currPos += 4;
25729
26162
  } else {
25730
26163
  s3 = peg$FAILED;
25731
26164
  if (peg$silentFails === 0) {
25732
- peg$fail(peg$e147);
26165
+ peg$fail(peg$e148);
25733
26166
  }
25734
26167
  }
25735
26168
  if (s3 !== peg$FAILED) {
25736
26169
  if (input.charCodeAt(peg$currPos) === 115) {
25737
- s4 = peg$c141;
26170
+ s4 = peg$c142;
25738
26171
  peg$currPos++;
25739
26172
  } else {
25740
26173
  s4 = peg$FAILED;
25741
26174
  if (peg$silentFails === 0) {
25742
- peg$fail(peg$e148);
26175
+ peg$fail(peg$e149);
25743
26176
  }
25744
26177
  }
25745
26178
  if (s4 === peg$FAILED) {
25746
26179
  s4 = null;
25747
26180
  }
25748
- if (input.substr(peg$currPos, 3) === peg$c142) {
25749
- s5 = peg$c142;
26181
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26182
+ s5 = peg$c143;
25750
26183
  peg$currPos += 3;
25751
26184
  } else {
25752
26185
  s5 = peg$FAILED;
25753
26186
  if (peg$silentFails === 0) {
25754
- peg$fail(peg$e149);
26187
+ peg$fail(peg$e150);
25755
26188
  }
25756
26189
  }
25757
26190
  if (s5 !== peg$FAILED) {
@@ -25766,13 +26199,13 @@ function peg$parse(input, options) {
25766
26199
  s2 = peg$FAILED;
25767
26200
  }
25768
26201
  if (s2 === peg$FAILED) {
25769
- if (input.substr(peg$currPos, 7) === peg$c143) {
25770
- s2 = peg$c143;
26202
+ if (input.substr(peg$currPos, 7) === peg$c144) {
26203
+ s2 = peg$c144;
25771
26204
  peg$currPos += 7;
25772
26205
  } else {
25773
26206
  s2 = peg$FAILED;
25774
26207
  if (peg$silentFails === 0) {
25775
- peg$fail(peg$e150);
26208
+ peg$fail(peg$e151);
25776
26209
  }
25777
26210
  }
25778
26211
  }
@@ -25837,7 +26270,7 @@ function peg$parse(input, options) {
25837
26270
  }
25838
26271
  s2 = input.substring(s2, peg$currPos);
25839
26272
  peg$savedPos = s0;
25840
- s0 = peg$f100(s1, s2);
26273
+ s0 = peg$f101(s1, s2);
25841
26274
  } else {
25842
26275
  peg$currPos = s0;
25843
26276
  s0 = peg$FAILED;
@@ -25852,12 +26285,13 @@ function peg$parse(input, options) {
25852
26285
  } else {
25853
26286
  s0 = peg$FAILED;
25854
26287
  if (peg$silentFails === 0) {
25855
- peg$fail(peg$e151);
26288
+ peg$fail(peg$e152);
25856
26289
  }
25857
26290
  }
25858
26291
  return s0;
25859
26292
  }
25860
26293
  var indentStack = [], indent = "";
26294
+ input = input.replace(/\s+$/, "");
25861
26295
  input = input.trimStart();
25862
26296
  peg$result = peg$startRuleFunction();
25863
26297
  const peg$success = peg$result !== peg$FAILED && peg$currPos === input.length;