@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.
package/dist/index.cjs CHANGED
@@ -3200,11 +3200,16 @@ var CARDSETS = {
3200
3200
  exportJsonKey: { "@bit": { heading: { forKeys: "$" } } }
3201
3201
  },
3202
3202
  {
3203
+ // Axis-side `[@isCaseSensitive]` is a cascade SOURCE
3204
+ // only: it must fire (so value-side cells inherit via
3205
+ // `$ancestor`) but emit nothing itself — emission is
3206
+ // owned by the value-side's cell-nested rule
3207
+ // (`cells[$s].isCaseSensitive`, PLAN-122). The earlier
3208
+ // flat `$ancestor` rule here double-emitted at bit
3209
+ // scope and broke the `optimize(fullize(x)) ==
3210
+ // optimize(x)` law on match-matrix.
3203
3211
  key: ConfigKey.property_isCaseSensitive,
3204
- exportJsonKey: [
3205
- { "@absent": { isCaseSensitive: "$ancestor" } },
3206
- { isCaseSensitive: "$" }
3207
- ],
3212
+ exportJsonKey: {},
3208
3213
  description: "Property to indicate if the match is case sensitive.",
3209
3214
  format: TagFormat.boolean
3210
3215
  }
@@ -3310,10 +3315,17 @@ var CARDSETS = {
3310
3315
  ]
3311
3316
  },
3312
3317
  {
3318
+ // matchMatrix cells are NESTED (`cells[$s]`), unlike matchPairs'
3319
+ // flat pair object — so `isCaseSensitive` must be written INTO the
3320
+ // cell, mirroring the sibling `example` rule above (`cells: { $s:
3321
+ // {...} }`). The earlier flat `{ isCaseSensitive: '$' }` (copied
3322
+ // from matchPairs) wrote at bit scope, so an authored cell-side
3323
+ // `[@isCaseSensitive:false]` (e.g. on a `++` value) was dropped
3324
+ // instead of landing on the cell. PLAN-122.
3313
3325
  key: ConfigKey.property_isCaseSensitive,
3314
3326
  exportJsonKey: [
3315
- { "@absent": { isCaseSensitive: "$ancestor" } },
3316
- { isCaseSensitive: "$" }
3327
+ { "@absent": { cells: { $s: { isCaseSensitive: "$ancestor" } } } },
3328
+ { cells: { $s: { isCaseSensitive: "$" } } }
3317
3329
  ],
3318
3330
  description: "Property to indicate if the match is case sensitive.",
3319
3331
  format: TagFormat.boolean
@@ -5077,18 +5089,16 @@ var GROUPS = {
5077
5089
  description: "Item, lead, page number, margin number, instruction and hint tags"
5078
5090
  },
5079
5091
  {
5080
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5081
- // `@example` from the bit header marks EVERY choice with
5082
- // `isExample: true` (matches BPG output), but only the
5083
- // FIRST correct choice gets `example: true` (BPG
5084
- // `fillBooleanExample(..., firstCorrectOnly=true)`).
5085
- //
5086
- // Two `@absent` rules, picked first-match-wins:
5087
- // 1. Verbose form gated on `@parent.isCorrect=true` with
5088
- // `maxEmits:1` fires once for the first correct.
5089
- // 2. Plain `@absent` fires on every remaining entry
5090
- // (subsequent corrects and all incorrects), emitting
5091
- // `isExample` only.
5092
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5093
+ // bpg 5.31 probing: cascade-fired `@example` decorates only
5094
+ // the FIRST correct choice (`example: true` via the
5095
+ // `@parent.isCorrect`-gated `@absent` rule, `maxEmits:1`
5096
+ // BPG `fillBooleanExample(..., firstCorrectOnly=true)`).
5097
+ // There is deliberately NO plain `@absent` rule: an ancestor
5098
+ // bare example must leave the remaining choices untouched
5099
+ // (a plain `@absent` decoration broke the
5100
+ // `optimize(fullize(x)) == optimize(x)` law the
5101
+ // synthesized `isExample` keys survived re-optimization).
5092
5102
  // The `serialize_cards` cascade-counter scope holds the cap
5093
5103
  // across the whole cardset.
5094
5104
  // @card scope-shift writes choice-container isExample (e.g.
@@ -5116,13 +5126,6 @@ var GROUPS = {
5116
5126
  "@card": { isExample: true }
5117
5127
  }
5118
5128
  },
5119
- {
5120
- "@absent": {
5121
- isExample: true,
5122
- "@bit": { isExample: true },
5123
- "@card": { isExample: true }
5124
- }
5125
- },
5126
5129
  {
5127
5130
  isExample: true,
5128
5131
  example: "$",
@@ -5164,11 +5167,13 @@ var GROUPS = {
5164
5167
  description: "Item, lead, page number, margin number, instruction and hint tags"
5165
5168
  },
5166
5169
  {
5167
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5168
- // `@example` on a `-` (incorrect choice) emits
5169
- // `isExample: true` only — no `example` (BPG fixtures show
5170
- // `isExample` on every choice, but `example` only on the
5171
- // first correct via firstCorrectOnly cascade).
5170
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5171
+ // bpg 5.31 probing: an ancestor bare `@example` leaves
5172
+ // incorrect choices UNTOUCHED — no cascade decoration at
5173
+ // all (no `@absent` rule; a plain `@absent isExample`
5174
+ // decoration broke the `optimize(fullize(x)) ==
5175
+ // optimize(x)` law). Only an explicit `[@example]` on the
5176
+ // choice itself emits.
5172
5177
  // @card scope-shift writes choice-container isExample.
5173
5178
  key: ConfigKey.property_example,
5174
5179
  jsonKey: "example",
@@ -5181,13 +5186,6 @@ var GROUPS = {
5181
5186
  "@card": { isExample: true }
5182
5187
  }
5183
5188
  },
5184
- {
5185
- "@absent": {
5186
- isExample: true,
5187
- "@bit": { isExample: true },
5188
- "@card": { isExample: true }
5189
- }
5190
- },
5191
5189
  {
5192
5190
  isExample: true,
5193
5191
  example: "$",
@@ -5195,7 +5193,7 @@ var GROUPS = {
5195
5193
  "@card": { isExample: true }
5196
5194
  }
5197
5195
  ],
5198
- description: "An example for the true/false statement/question (incorrect entry \u2014 isExample only on cascade)",
5196
+ 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)",
5199
5197
  format: TagFormat.boolean,
5200
5198
  nullable: true
5201
5199
  }
@@ -7254,7 +7252,9 @@ var BITS = {
7254
7252
  description: "Common tags for quiz bits"
7255
7253
  },
7256
7254
  {
7257
- exportJsonKey: { title: "$" },
7255
+ maxCount: 2,
7256
+ jsonKey: "title|multi(count=2, key=subtitle)",
7257
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7258
7258
  key: ConfigKey.tag_title,
7259
7259
  description: "The title of the flashcard quiz"
7260
7260
  },
@@ -7359,7 +7359,9 @@ var BITS = {
7359
7359
  description: "Article bit, used for articles / paragraphs",
7360
7360
  tags: [
7361
7361
  {
7362
- exportJsonKey: { title: "$" },
7362
+ maxCount: 2,
7363
+ jsonKey: "title|multi(count=2, key=subtitle)",
7364
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7363
7365
  key: ConfigKey.tag_title,
7364
7366
  description: "The title of the article"
7365
7367
  }
@@ -9325,7 +9327,9 @@ var BITS = {
9325
9327
  description: "Example bit, used to provide examples in articles or books",
9326
9328
  tags: [
9327
9329
  {
9328
- exportJsonKey: { title: "$" },
9330
+ maxCount: 2,
9331
+ jsonKey: "title|multi(count=2, key=subtitle)",
9332
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
9329
9333
  key: ConfigKey.tag_title,
9330
9334
  description: "The title of the example"
9331
9335
  },
@@ -11926,7 +11930,9 @@ var BITS = {
11926
11930
  description: "Page bit, used to create pages in articles or books",
11927
11931
  tags: [
11928
11932
  {
11929
- exportJsonKey: { title: "$" },
11933
+ maxCount: 2,
11934
+ jsonKey: "title|multi(count=2, key=subtitle)",
11935
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
11930
11936
  key: ConfigKey.tag_title,
11931
11937
  description: "Title of the page, used to display the page title"
11932
11938
  },
@@ -12384,7 +12390,9 @@ var BITS = {
12384
12390
  description: "Review note bit, used to create review notes in articles or books",
12385
12391
  tags: [
12386
12392
  {
12387
- exportJsonKey: { title: "$" },
12393
+ maxCount: 2,
12394
+ jsonKey: "title|multi(count=2, key=subtitle)",
12395
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
12388
12396
  key: ConfigKey.tag_title,
12389
12397
  description: "Title of the review note, used to display the note title"
12390
12398
  },
@@ -13970,7 +13978,7 @@ var instance2 = new Config();
13970
13978
  // src/generated/package_info.ts
13971
13979
  var PACKAGE_INFO = {
13972
13980
  "name": "@gmb/bitmark-parser-generator",
13973
- "version": "5.31.0",
13981
+ "version": "5.32.0",
13974
13982
  "author": "Get More Brain Ltd",
13975
13983
  "license": "ISC",
13976
13984
  "description": "A bitmark parser and generator using Peggy.js"
@@ -14245,6 +14253,7 @@ var TextMarkType = {
14245
14253
  del: "del",
14246
14254
  underline: "underline",
14247
14255
  doubleUnderline: "doubleUnderline",
14256
+ smallcaps: "smallcaps",
14248
14257
  circle: "circle",
14249
14258
  languageEmRed: "languageEmRed",
14250
14259
  languageEmOrange: "languageEmOrange",
@@ -14276,7 +14285,10 @@ var TextMarkType = {
14276
14285
  code: "code",
14277
14286
  timer: "timer",
14278
14287
  duration: "duration",
14288
+ // legacy: no longer produced by the parser (>= 8.41.1), accepted as generator input
14279
14289
  color: "color",
14290
+ // legacy: no longer produced by the parser (>= 8.41.1, now textStyle), accepted as generator input
14291
+ textStyle: "textStyle",
14280
14292
  colorPicker: "colorPicker",
14281
14293
  comment: "comment"
14282
14294
  };
@@ -15861,6 +15873,7 @@ var INLINE_MARK_TYPES = [
15861
15873
  TextMarkType.del,
15862
15874
  TextMarkType.underline,
15863
15875
  TextMarkType.doubleUnderline,
15876
+ TextMarkType.smallcaps,
15864
15877
  TextMarkType.circle,
15865
15878
  TextMarkType.languageEmRed,
15866
15879
  TextMarkType.languageEmOrange,
@@ -15891,11 +15904,24 @@ var INLINE_MARK_TYPES = [
15891
15904
  TextMarkType.var,
15892
15905
  TextMarkType.code,
15893
15906
  TextMarkType.timer,
15894
- TextMarkType.duration,
15895
15907
  TextMarkType.color,
15908
+ // legacy input, written as color: (same as textStyle)
15909
+ TextMarkType.textStyle,
15896
15910
  TextMarkType.colorPicker,
15897
15911
  TextMarkType.comment
15898
15912
  ];
15913
+ var HIGHLIGHT_COLORS = [
15914
+ "orange",
15915
+ "yellow",
15916
+ "green",
15917
+ "blue",
15918
+ "purple",
15919
+ "pink",
15920
+ "brown",
15921
+ "white",
15922
+ "black",
15923
+ "gray"
15924
+ ];
15899
15925
  var INDENTATION_REGEX = new RegExp(/(\n|\r\n)/, "g");
15900
15926
  var LINK_REGEX = new RegExp(/https?:\/\/|mailto:(.*)/, "g");
15901
15927
  var LINK_BREAKSCAPE_REGEX = new RegExp(/\]/, "g");
@@ -16459,14 +16485,16 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16459
16485
  this.writeMarkTextWrapper(INLINE_MARK);
16460
16486
  return;
16461
16487
  }
16462
- const singleMark = node.marks.length === 1 && forceSingleMark;
16463
- const markStartEnd = node.marks.reduce(
16488
+ const marks = this.getWritableMarks(node.marks);
16489
+ if (marks.length === 0) return;
16490
+ const singleMark = marks.length === 1 && forceSingleMark;
16491
+ const markStartEnd = marks.reduce(
16464
16492
  (acc, mark) => {
16465
16493
  if (acc) return acc;
16466
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16494
+ if (this.isStandardMark(mark)) {
16467
16495
  if (singleMark) return STANDARD_MARKS[mark.type];
16468
16496
  return INLINE_MARK;
16469
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16497
+ } else if (this.isInlineMark(mark)) {
16470
16498
  return INLINE_MARK;
16471
16499
  } else {
16472
16500
  }
@@ -16481,8 +16509,8 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16481
16509
  this.writeMarkTextWrapper(markStartEnd);
16482
16510
  }
16483
16511
  if (stage == Stage.between) {
16484
- for (const mark of node.marks) {
16485
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16512
+ for (const mark of marks) {
16513
+ if (this.isStandardMark(mark)) {
16486
16514
  if (!singleMark) {
16487
16515
  this.writeInlineMarkStartEnd();
16488
16516
  this.writeInlineMark(mark);
@@ -16511,7 +16539,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16511
16539
  } else if (TextMarkType.symbol === mark.type) {
16512
16540
  this.writeInlineMarkStartEnd();
16513
16541
  this.writeSymbolMark(mark);
16514
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16542
+ } else if (this.isInlineMark(mark)) {
16515
16543
  this.writeInlineMarkStartEnd();
16516
16544
  this.writeInlineMark(mark);
16517
16545
  } else {
@@ -16520,12 +16548,12 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16520
16548
  }
16521
16549
  if (stage == Stage.exit) {
16522
16550
  let inlineMarkWritten = false;
16523
- for (const mark of node.marks) {
16524
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16551
+ for (const mark of marks) {
16552
+ if (this.isStandardMark(mark)) {
16525
16553
  if (!singleMark) {
16526
16554
  inlineMarkWritten = true;
16527
16555
  }
16528
- } 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) {
16556
+ } 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)) {
16529
16557
  inlineMarkWritten = true;
16530
16558
  } else {
16531
16559
  }
@@ -16606,8 +16634,15 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16606
16634
  if (node.attrs == null || !node.attrs.src) return;
16607
16635
  const attrs = node.attrs;
16608
16636
  const inlineImage = node.type === TextNodeType.imageInline;
16637
+ let ignoreAttributes;
16638
+ if (inlineImage) {
16639
+ ignoreAttributes = /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]);
16640
+ const a = attrs;
16641
+ if (a.alignmentVertical === "top") ignoreAttributes.add("alignmentVertical");
16642
+ if (a.size === "line-height") ignoreAttributes.add("size");
16643
+ }
16609
16644
  const mediaAttrs = this.getMediaAttrs(inlineImage ? "imageInline" : "image", attrs, {
16610
- ignoreAttributes: inlineImage ? /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]) : void 0
16645
+ ignoreAttributes
16611
16646
  });
16612
16647
  let s = "";
16613
16648
  if (inlineImage) {
@@ -16637,16 +16672,87 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16637
16672
  if (s) this.write(s);
16638
16673
  }
16639
16674
  writeInlineMark(mark) {
16640
- let s = `${mark.type}`;
16641
- if (mark.attrs) {
16642
- for (const [k, v] of Object.entries(mark.attrs)) {
16643
- if (k === "language" && v !== "plain text" || k === "color" || k === "propertyRef" || k === "name" || k === "duration") {
16644
- s = `${s}:${v}`;
16675
+ const attrs = mark.attrs ?? {};
16676
+ let s;
16677
+ switch (mark.type) {
16678
+ case TextMarkType.textStyle:
16679
+ case TextMarkType.color:
16680
+ s = `color:${attrs.color ?? ""}`;
16681
+ break;
16682
+ case TextMarkType.timer:
16683
+ s = attrs.name ? `timer:${attrs.name}` : "timer";
16684
+ s += `|duration:${attrs.duration ?? ""}`;
16685
+ break;
16686
+ case TextMarkType.highlight:
16687
+ case TextMarkType.userHighlight:
16688
+ s = attrs.color ? `${mark.type}|color:${attrs.color}` : `${mark.type}`;
16689
+ break;
16690
+ default: {
16691
+ s = `${mark.type}`;
16692
+ for (const [k, v] of Object.entries(attrs)) {
16693
+ if (k === "language" && v !== "plain text" || k === "propertyRef" || k === "name") {
16694
+ s = `${s}:${v}`;
16695
+ }
16645
16696
  }
16646
16697
  }
16647
16698
  }
16648
16699
  this.write(s);
16649
16700
  }
16701
+ /**
16702
+ * Resolve the marks of a text node into the marks that will actually be written.
16703
+ *
16704
+ * - Merges a legacy standalone 'duration' mark into its sibling 'timer' mark.
16705
+ * - Drops marks the current grammar cannot express (standalone 'duration', 'timer'
16706
+ * without a duration).
16707
+ * - Moves a 'textStyle'/'color' mark before a preceding bare 'highlight'/'userHighlight'
16708
+ * mark when its color is a valid highlight color; written in the original order the
16709
+ * output would re-parse as a highlight-with-color compound mark and change meaning.
16710
+ */
16711
+ getWritableMarks(nodeMarks) {
16712
+ const attrsOf = (m) => m.attrs ?? {};
16713
+ let marks = [...nodeMarks];
16714
+ const timer = marks.find((m) => m.type === TextMarkType.timer);
16715
+ const duration = marks.find((m) => m.type === TextMarkType.duration);
16716
+ if (timer && duration && !attrsOf(timer).duration) {
16717
+ marks = marks.map(
16718
+ (m) => m === timer ? {
16719
+ ...timer,
16720
+ attrs: { ...attrsOf(timer), duration: attrsOf(duration).duration }
16721
+ } : m
16722
+ );
16723
+ }
16724
+ marks = marks.filter((m) => {
16725
+ if (m.type === TextMarkType.duration) return false;
16726
+ if (m.type === TextMarkType.timer) return !!attrsOf(m).duration;
16727
+ return true;
16728
+ });
16729
+ const isBareHighlight = (m) => (m.type === TextMarkType.highlight || m.type === TextMarkType.userHighlight) && !attrsOf(m).color;
16730
+ const isHighlightColorStyle = (m) => (m.type === TextMarkType.textStyle || m.type === TextMarkType.color) && HIGHLIGHT_COLORS.indexOf(attrsOf(m).color) !== -1;
16731
+ for (let i = 0; i < marks.length - 1; i++) {
16732
+ if (isBareHighlight(marks[i]) && isHighlightColorStyle(marks[i + 1])) {
16733
+ const tmp = marks[i];
16734
+ marks[i] = marks[i + 1];
16735
+ marks[i + 1] = tmp;
16736
+ }
16737
+ }
16738
+ return marks;
16739
+ }
16740
+ /**
16741
+ * True if the mark is written using its standard form (e.g. **bold**, !!highlight!!)
16742
+ * when it is the only mark. A highlight mark with a color attribute is excluded - it
16743
+ * can only be expressed using the inline chain form (==text==|highlight|color:x|).
16744
+ */
16745
+ isStandardMark(mark) {
16746
+ if (STANDARD_MARK_TYPES.indexOf(mark.type) === -1) return false;
16747
+ return !(mark.attrs && mark.attrs.color);
16748
+ }
16749
+ /**
16750
+ * True if the mark is written using the inline chain form (==text==|mark|).
16751
+ */
16752
+ isInlineMark(mark) {
16753
+ if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) return true;
16754
+ return mark.type === TextMarkType.highlight && !!(mark.attrs && mark.attrs.color);
16755
+ }
16650
16756
  writeCommentMark(mark) {
16651
16757
  const comment = mark.comment || "";
16652
16758
  const s = `#${comment}`;
@@ -16851,7 +16957,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16851
16957
  };
16852
16958
 
16853
16959
  // src/generated/parser/text/text-peggy-parser.js
16854
- var VERSION = "8.37.3";
16960
+ var VERSION = "8.41.1";
16855
16961
  function unbreakscape(str) {
16856
16962
  if (typeof str !== "string") return null;
16857
16963
  return instance3.unbreakscape(str);
@@ -17066,87 +17172,88 @@ function peg$parse(input, options) {
17066
17172
  const peg$c60 = "var:";
17067
17173
  const peg$c61 = "code:";
17068
17174
  const peg$c62 = "timer";
17069
- const peg$c63 = "timer:";
17070
- const peg$c64 = "duration:";
17071
- const peg$c65 = "P";
17072
- const peg$c66 = "color:";
17073
- const peg$c67 = "colorPicker:";
17074
- const peg$c68 = "|\u25BA";
17075
- const peg$c69 = "bold";
17076
- const peg$c70 = "italic";
17077
- const peg$c71 = "light";
17078
- const peg$c72 = "highlightOrange";
17079
- const peg$c73 = "highlightYellow";
17080
- const peg$c74 = "highlightGreen";
17081
- const peg$c75 = "highlightBlue";
17082
- const peg$c76 = "highlightPurple";
17083
- const peg$c77 = "highlightPink";
17084
- const peg$c78 = "highlightBrown";
17085
- const peg$c79 = "highlightBlack";
17086
- const peg$c80 = "highlightWhite";
17087
- const peg$c81 = "highlightGray";
17088
- const peg$c82 = "highlight";
17089
- const peg$c83 = "strike";
17090
- const peg$c84 = "subscript";
17091
- const peg$c85 = "superscript";
17092
- const peg$c86 = "ins";
17093
- const peg$c87 = "del";
17094
- const peg$c88 = "underline";
17095
- const peg$c89 = "doubleUnderline";
17096
- const peg$c90 = "circle";
17097
- const peg$c91 = "languageEmRed";
17098
- const peg$c92 = "languageEmOrange";
17099
- const peg$c93 = "languageEmYellow";
17100
- const peg$c94 = "languageEmGreen";
17101
- const peg$c95 = "languageEmBlue";
17102
- const peg$c96 = "languageEmPurple";
17103
- const peg$c97 = "languageEmPink";
17104
- const peg$c98 = "languageEmBrown";
17105
- const peg$c99 = "languageEmBlack";
17106
- const peg$c100 = "languageEmWhite";
17107
- const peg$c101 = "languageEmGray";
17108
- const peg$c102 = "languageEm";
17109
- const peg$c103 = "userUnderline";
17110
- const peg$c104 = "userDoubleUnderline";
17111
- const peg$c105 = "userStrike";
17112
- const peg$c106 = "userCircle";
17113
- const peg$c107 = "userHighlight";
17114
- const peg$c108 = "notranslate";
17115
- const peg$c109 = "aqua";
17116
- const peg$c110 = "black";
17117
- const peg$c111 = "blue";
17118
- const peg$c112 = "brown";
17119
- const peg$c113 = "fuchsia";
17120
- const peg$c114 = "lightgrey";
17121
- const peg$c115 = "gray";
17122
- const peg$c116 = "darkgray";
17123
- const peg$c117 = "green";
17124
- const peg$c118 = "lime";
17125
- const peg$c119 = "magenta";
17126
- const peg$c120 = "maroon";
17127
- const peg$c121 = "navy";
17128
- const peg$c122 = "olive";
17129
- const peg$c123 = "orange";
17130
- const peg$c124 = "pink";
17131
- const peg$c125 = "purple";
17132
- const peg$c126 = "red";
17133
- const peg$c127 = "silver";
17134
- const peg$c128 = "teal";
17135
- const peg$c129 = "violet";
17136
- const peg$c130 = "white";
17137
- const peg$c131 = "yellow";
17138
- const peg$c132 = "*";
17139
- const peg$c133 = "_";
17140
- const peg$c134 = "`";
17141
- const peg$c135 = "!";
17142
- const peg$c136 = "[!";
17143
- const peg$c137 = "]";
17144
- const peg$c138 = "\n";
17145
- const peg$c139 = "\r\n";
17146
- const peg$c140 = "http";
17147
- const peg$c141 = "s";
17148
- const peg$c142 = "://";
17149
- const peg$c143 = "mailto:";
17175
+ const peg$c63 = "duration:";
17176
+ const peg$c64 = "P";
17177
+ const peg$c65 = "timer:";
17178
+ const peg$c66 = "highlight";
17179
+ const peg$c67 = "color:";
17180
+ const peg$c68 = "userHighlight";
17181
+ const peg$c69 = "colorPicker:";
17182
+ const peg$c70 = "|\u25BA";
17183
+ const peg$c71 = "bold";
17184
+ const peg$c72 = "italic";
17185
+ const peg$c73 = "light";
17186
+ const peg$c74 = "highlightOrange";
17187
+ const peg$c75 = "highlightYellow";
17188
+ const peg$c76 = "highlightGreen";
17189
+ const peg$c77 = "highlightBlue";
17190
+ const peg$c78 = "highlightPurple";
17191
+ const peg$c79 = "highlightPink";
17192
+ const peg$c80 = "highlightBrown";
17193
+ const peg$c81 = "highlightBlack";
17194
+ const peg$c82 = "highlightWhite";
17195
+ const peg$c83 = "highlightGray";
17196
+ const peg$c84 = "strike";
17197
+ const peg$c85 = "subscript";
17198
+ const peg$c86 = "superscript";
17199
+ const peg$c87 = "ins";
17200
+ const peg$c88 = "del";
17201
+ const peg$c89 = "underline";
17202
+ const peg$c90 = "doubleUnderline";
17203
+ const peg$c91 = "smallcaps";
17204
+ const peg$c92 = "circle";
17205
+ const peg$c93 = "languageEmRed";
17206
+ const peg$c94 = "languageEmOrange";
17207
+ const peg$c95 = "languageEmYellow";
17208
+ const peg$c96 = "languageEmGreen";
17209
+ const peg$c97 = "languageEmBlue";
17210
+ const peg$c98 = "languageEmPurple";
17211
+ const peg$c99 = "languageEmPink";
17212
+ const peg$c100 = "languageEmBrown";
17213
+ const peg$c101 = "languageEmBlack";
17214
+ const peg$c102 = "languageEmWhite";
17215
+ const peg$c103 = "languageEmGray";
17216
+ const peg$c104 = "languageEm";
17217
+ const peg$c105 = "userUnderline";
17218
+ const peg$c106 = "userDoubleUnderline";
17219
+ const peg$c107 = "userStrike";
17220
+ const peg$c108 = "userCircle";
17221
+ const peg$c109 = "notranslate";
17222
+ const peg$c110 = "aqua";
17223
+ const peg$c111 = "black";
17224
+ const peg$c112 = "blue";
17225
+ const peg$c113 = "brown";
17226
+ const peg$c114 = "fuchsia";
17227
+ const peg$c115 = "lightgrey";
17228
+ const peg$c116 = "gray";
17229
+ const peg$c117 = "darkgray";
17230
+ const peg$c118 = "green";
17231
+ const peg$c119 = "lime";
17232
+ const peg$c120 = "magenta";
17233
+ const peg$c121 = "maroon";
17234
+ const peg$c122 = "navy";
17235
+ const peg$c123 = "olive";
17236
+ const peg$c124 = "orange";
17237
+ const peg$c125 = "pink";
17238
+ const peg$c126 = "purple";
17239
+ const peg$c127 = "red";
17240
+ const peg$c128 = "silver";
17241
+ const peg$c129 = "teal";
17242
+ const peg$c130 = "violet";
17243
+ const peg$c131 = "white";
17244
+ const peg$c132 = "yellow";
17245
+ const peg$c133 = "*";
17246
+ const peg$c134 = "_";
17247
+ const peg$c135 = "`";
17248
+ const peg$c136 = "!";
17249
+ const peg$c137 = "[!";
17250
+ const peg$c138 = "]";
17251
+ const peg$c139 = "\n";
17252
+ const peg$c140 = "\r\n";
17253
+ const peg$c141 = "http";
17254
+ const peg$c142 = "s";
17255
+ const peg$c143 = "://";
17256
+ const peg$c144 = "mailto:";
17150
17257
  const peg$r0 = /^[ \t]/;
17151
17258
  const peg$r1 = /^[0-9]/;
17152
17259
  const peg$r2 = /^[\r\u2028-\u2029]/;
@@ -17219,91 +17326,92 @@ function peg$parse(input, options) {
17219
17326
  const peg$e64 = peg$literalExpectation("var:", false);
17220
17327
  const peg$e65 = peg$literalExpectation("code:", false);
17221
17328
  const peg$e66 = peg$literalExpectation("timer", false);
17222
- const peg$e67 = peg$literalExpectation("timer:", false);
17223
- const peg$e68 = peg$literalExpectation("duration:", false);
17224
- const peg$e69 = peg$literalExpectation("P", false);
17225
- const peg$e70 = peg$literalExpectation("color:", false);
17226
- const peg$e71 = peg$literalExpectation("colorPicker:", false);
17227
- const peg$e72 = peg$literalExpectation("|\u25BA", false);
17228
- const peg$e73 = peg$literalExpectation("bold", false);
17229
- const peg$e74 = peg$literalExpectation("italic", false);
17230
- const peg$e75 = peg$literalExpectation("light", false);
17231
- const peg$e76 = peg$literalExpectation("highlightOrange", false);
17232
- const peg$e77 = peg$literalExpectation("highlightYellow", false);
17233
- const peg$e78 = peg$literalExpectation("highlightGreen", false);
17234
- const peg$e79 = peg$literalExpectation("highlightBlue", false);
17235
- const peg$e80 = peg$literalExpectation("highlightPurple", false);
17236
- const peg$e81 = peg$literalExpectation("highlightPink", false);
17237
- const peg$e82 = peg$literalExpectation("highlightBrown", false);
17238
- const peg$e83 = peg$literalExpectation("highlightBlack", false);
17239
- const peg$e84 = peg$literalExpectation("highlightWhite", false);
17240
- const peg$e85 = peg$literalExpectation("highlightGray", false);
17241
- const peg$e86 = peg$literalExpectation("highlight", false);
17242
- const peg$e87 = peg$literalExpectation("strike", false);
17243
- const peg$e88 = peg$literalExpectation("subscript", false);
17244
- const peg$e89 = peg$literalExpectation("superscript", false);
17245
- const peg$e90 = peg$literalExpectation("ins", false);
17246
- const peg$e91 = peg$literalExpectation("del", false);
17247
- const peg$e92 = peg$literalExpectation("underline", false);
17248
- const peg$e93 = peg$literalExpectation("doubleUnderline", false);
17249
- const peg$e94 = peg$literalExpectation("circle", false);
17250
- const peg$e95 = peg$literalExpectation("languageEmRed", false);
17251
- const peg$e96 = peg$literalExpectation("languageEmOrange", false);
17252
- const peg$e97 = peg$literalExpectation("languageEmYellow", false);
17253
- const peg$e98 = peg$literalExpectation("languageEmGreen", false);
17254
- const peg$e99 = peg$literalExpectation("languageEmBlue", false);
17255
- const peg$e100 = peg$literalExpectation("languageEmPurple", false);
17256
- const peg$e101 = peg$literalExpectation("languageEmPink", false);
17257
- const peg$e102 = peg$literalExpectation("languageEmBrown", false);
17258
- const peg$e103 = peg$literalExpectation("languageEmBlack", false);
17259
- const peg$e104 = peg$literalExpectation("languageEmWhite", false);
17260
- const peg$e105 = peg$literalExpectation("languageEmGray", false);
17261
- const peg$e106 = peg$literalExpectation("languageEm", false);
17262
- const peg$e107 = peg$literalExpectation("userUnderline", false);
17263
- const peg$e108 = peg$literalExpectation("userDoubleUnderline", false);
17264
- const peg$e109 = peg$literalExpectation("userStrike", false);
17265
- const peg$e110 = peg$literalExpectation("userCircle", false);
17266
- const peg$e111 = peg$literalExpectation("userHighlight", false);
17267
- const peg$e112 = peg$literalExpectation("notranslate", false);
17268
- const peg$e113 = peg$literalExpectation("aqua", false);
17269
- const peg$e114 = peg$literalExpectation("black", false);
17270
- const peg$e115 = peg$literalExpectation("blue", false);
17271
- const peg$e116 = peg$literalExpectation("brown", false);
17272
- const peg$e117 = peg$literalExpectation("fuchsia", false);
17273
- const peg$e118 = peg$literalExpectation("lightgrey", false);
17274
- const peg$e119 = peg$literalExpectation("gray", false);
17275
- const peg$e120 = peg$literalExpectation("darkgray", false);
17276
- const peg$e121 = peg$literalExpectation("green", false);
17277
- const peg$e122 = peg$literalExpectation("lime", false);
17278
- const peg$e123 = peg$literalExpectation("magenta", false);
17279
- const peg$e124 = peg$literalExpectation("maroon", false);
17280
- const peg$e125 = peg$literalExpectation("navy", false);
17281
- const peg$e126 = peg$literalExpectation("olive", false);
17282
- const peg$e127 = peg$literalExpectation("orange", false);
17283
- const peg$e128 = peg$literalExpectation("pink", false);
17284
- const peg$e129 = peg$literalExpectation("purple", false);
17285
- const peg$e130 = peg$literalExpectation("red", false);
17286
- const peg$e131 = peg$literalExpectation("silver", false);
17287
- const peg$e132 = peg$literalExpectation("teal", false);
17288
- const peg$e133 = peg$literalExpectation("violet", false);
17289
- const peg$e134 = peg$literalExpectation("white", false);
17290
- const peg$e135 = peg$literalExpectation("yellow", false);
17291
- const peg$e136 = peg$literalExpectation("*", false);
17292
- const peg$e137 = peg$literalExpectation("_", false);
17293
- const peg$e138 = peg$literalExpectation("`", false);
17294
- const peg$e139 = peg$literalExpectation("!", false);
17295
- const peg$e140 = peg$literalExpectation("[!", false);
17296
- const peg$e141 = peg$literalExpectation("]", false);
17297
- const peg$e142 = peg$otherExpectation("Line Terminator");
17298
- const peg$e143 = peg$literalExpectation("\n", false);
17299
- const peg$e144 = peg$literalExpectation("\r\n", false);
17300
- const peg$e145 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17301
- const peg$e146 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17302
- const peg$e147 = peg$literalExpectation("http", false);
17303
- const peg$e148 = peg$literalExpectation("s", false);
17304
- const peg$e149 = peg$literalExpectation("://", false);
17305
- const peg$e150 = peg$literalExpectation("mailto:", false);
17306
- const peg$e151 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17329
+ const peg$e67 = peg$literalExpectation("duration:", false);
17330
+ const peg$e68 = peg$literalExpectation("P", false);
17331
+ const peg$e69 = peg$literalExpectation("timer:", false);
17332
+ const peg$e70 = peg$literalExpectation("highlight", false);
17333
+ const peg$e71 = peg$literalExpectation("color:", false);
17334
+ const peg$e72 = peg$literalExpectation("userHighlight", false);
17335
+ const peg$e73 = peg$literalExpectation("colorPicker:", false);
17336
+ const peg$e74 = peg$literalExpectation("|\u25BA", false);
17337
+ const peg$e75 = peg$literalExpectation("bold", false);
17338
+ const peg$e76 = peg$literalExpectation("italic", false);
17339
+ const peg$e77 = peg$literalExpectation("light", false);
17340
+ const peg$e78 = peg$literalExpectation("highlightOrange", false);
17341
+ const peg$e79 = peg$literalExpectation("highlightYellow", false);
17342
+ const peg$e80 = peg$literalExpectation("highlightGreen", false);
17343
+ const peg$e81 = peg$literalExpectation("highlightBlue", false);
17344
+ const peg$e82 = peg$literalExpectation("highlightPurple", false);
17345
+ const peg$e83 = peg$literalExpectation("highlightPink", false);
17346
+ const peg$e84 = peg$literalExpectation("highlightBrown", false);
17347
+ const peg$e85 = peg$literalExpectation("highlightBlack", false);
17348
+ const peg$e86 = peg$literalExpectation("highlightWhite", false);
17349
+ const peg$e87 = peg$literalExpectation("highlightGray", false);
17350
+ const peg$e88 = peg$literalExpectation("strike", false);
17351
+ const peg$e89 = peg$literalExpectation("subscript", false);
17352
+ const peg$e90 = peg$literalExpectation("superscript", false);
17353
+ const peg$e91 = peg$literalExpectation("ins", false);
17354
+ const peg$e92 = peg$literalExpectation("del", false);
17355
+ const peg$e93 = peg$literalExpectation("underline", false);
17356
+ const peg$e94 = peg$literalExpectation("doubleUnderline", false);
17357
+ const peg$e95 = peg$literalExpectation("smallcaps", false);
17358
+ const peg$e96 = peg$literalExpectation("circle", false);
17359
+ const peg$e97 = peg$literalExpectation("languageEmRed", false);
17360
+ const peg$e98 = peg$literalExpectation("languageEmOrange", false);
17361
+ const peg$e99 = peg$literalExpectation("languageEmYellow", false);
17362
+ const peg$e100 = peg$literalExpectation("languageEmGreen", false);
17363
+ const peg$e101 = peg$literalExpectation("languageEmBlue", false);
17364
+ const peg$e102 = peg$literalExpectation("languageEmPurple", false);
17365
+ const peg$e103 = peg$literalExpectation("languageEmPink", false);
17366
+ const peg$e104 = peg$literalExpectation("languageEmBrown", false);
17367
+ const peg$e105 = peg$literalExpectation("languageEmBlack", false);
17368
+ const peg$e106 = peg$literalExpectation("languageEmWhite", false);
17369
+ const peg$e107 = peg$literalExpectation("languageEmGray", false);
17370
+ const peg$e108 = peg$literalExpectation("languageEm", false);
17371
+ const peg$e109 = peg$literalExpectation("userUnderline", false);
17372
+ const peg$e110 = peg$literalExpectation("userDoubleUnderline", false);
17373
+ const peg$e111 = peg$literalExpectation("userStrike", false);
17374
+ const peg$e112 = peg$literalExpectation("userCircle", false);
17375
+ const peg$e113 = peg$literalExpectation("notranslate", false);
17376
+ const peg$e114 = peg$literalExpectation("aqua", false);
17377
+ const peg$e115 = peg$literalExpectation("black", false);
17378
+ const peg$e116 = peg$literalExpectation("blue", false);
17379
+ const peg$e117 = peg$literalExpectation("brown", false);
17380
+ const peg$e118 = peg$literalExpectation("fuchsia", false);
17381
+ const peg$e119 = peg$literalExpectation("lightgrey", false);
17382
+ const peg$e120 = peg$literalExpectation("gray", false);
17383
+ const peg$e121 = peg$literalExpectation("darkgray", false);
17384
+ const peg$e122 = peg$literalExpectation("green", false);
17385
+ const peg$e123 = peg$literalExpectation("lime", false);
17386
+ const peg$e124 = peg$literalExpectation("magenta", false);
17387
+ const peg$e125 = peg$literalExpectation("maroon", false);
17388
+ const peg$e126 = peg$literalExpectation("navy", false);
17389
+ const peg$e127 = peg$literalExpectation("olive", false);
17390
+ const peg$e128 = peg$literalExpectation("orange", false);
17391
+ const peg$e129 = peg$literalExpectation("pink", false);
17392
+ const peg$e130 = peg$literalExpectation("purple", false);
17393
+ const peg$e131 = peg$literalExpectation("red", false);
17394
+ const peg$e132 = peg$literalExpectation("silver", false);
17395
+ const peg$e133 = peg$literalExpectation("teal", false);
17396
+ const peg$e134 = peg$literalExpectation("violet", false);
17397
+ const peg$e135 = peg$literalExpectation("white", false);
17398
+ const peg$e136 = peg$literalExpectation("yellow", false);
17399
+ const peg$e137 = peg$literalExpectation("*", false);
17400
+ const peg$e138 = peg$literalExpectation("_", false);
17401
+ const peg$e139 = peg$literalExpectation("`", false);
17402
+ const peg$e140 = peg$literalExpectation("!", false);
17403
+ const peg$e141 = peg$literalExpectation("[!", false);
17404
+ const peg$e142 = peg$literalExpectation("]", false);
17405
+ const peg$e143 = peg$otherExpectation("Line Terminator");
17406
+ const peg$e144 = peg$literalExpectation("\n", false);
17407
+ const peg$e145 = peg$literalExpectation("\r\n", false);
17408
+ const peg$e146 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17409
+ const peg$e147 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17410
+ const peg$e148 = peg$literalExpectation("http", false);
17411
+ const peg$e149 = peg$literalExpectation("s", false);
17412
+ const peg$e150 = peg$literalExpectation("://", false);
17413
+ const peg$e151 = peg$literalExpectation("mailto:", false);
17414
+ const peg$e152 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17307
17415
  function peg$f0() {
17308
17416
  return VERSION;
17309
17417
  }
@@ -17579,7 +17687,7 @@ function peg$parse(input, options) {
17579
17687
  return { attrs: { formula: unbreakscape(t) }, type: "latex" };
17580
17688
  }
17581
17689
  function peg$f57(alt, u, ch) {
17582
- return { attrs: { alt, src: (u.pr + u.t).trim(), ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17690
+ return { attrs: { alt, src: (u.pr + u.t).trim(), "alignmentVertical": "top", size: "line-height", ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17583
17691
  }
17584
17692
  function peg$f58(t, marks) {
17585
17693
  if (!marks) marks = [];
@@ -17658,59 +17766,62 @@ function peg$parse(input, options) {
17658
17766
  function peg$f82(lang) {
17659
17767
  return { type: "code", attrs: { language: lang.trim().toLowerCase() } };
17660
17768
  }
17661
- function peg$f83() {
17662
- return { type: "timer", attrs: { name: "" } };
17769
+ function peg$f83(d) {
17770
+ return { type: "timer", attrs: { name: "", duration: d.trim() } };
17663
17771
  }
17664
- function peg$f84(str) {
17665
- return { type: "timer", attrs: { name: str.trim() } };
17772
+ function peg$f84(str, d) {
17773
+ return { type: "timer", attrs: { name: str.trim(), duration: d.trim() } };
17666
17774
  }
17667
- function peg$f85(str) {
17668
- return { type: "duration", attrs: { duration: str } };
17775
+ function peg$f85(color) {
17776
+ return { type: "highlight", attrs: { color } };
17669
17777
  }
17670
17778
  function peg$f86(color) {
17671
- return { type: "color", attrs: { color } };
17779
+ return { type: "userHighlight", attrs: { color } };
17780
+ }
17781
+ function peg$f87(color) {
17782
+ return { type: "textStyle", attrs: { color } };
17672
17783
  }
17673
- function peg$f87(str) {
17784
+ function peg$f88(str) {
17674
17785
  return { type: "colorPicker", attrs: { propertyRef: str.trim() } };
17675
17786
  }
17676
- function peg$f88(style) {
17787
+ function peg$f89(style) {
17677
17788
  return { type: style };
17678
17789
  }
17679
- function peg$f89(str) {
17790
+ function peg$f90(str) {
17680
17791
  return { type: "comment", comment: str };
17681
17792
  }
17682
- function peg$f90(r) {
17793
+ function peg$f91(r) {
17683
17794
  return r.trim();
17684
17795
  }
17685
- function peg$f91(bs) {
17796
+ function peg$f92(bs) {
17686
17797
  return [{ type: "paragraph", content: bs, attrs: {} }];
17687
17798
  }
17688
- function peg$f92(first, more) {
17799
+ function peg$f93(first, more) {
17689
17800
  const cleaned_ = cleanEmptyTextNodes(first ? [first, ...more.flat()] : more.flat());
17690
17801
  return cleaned_;
17691
17802
  }
17692
- function peg$f93() {
17803
+ function peg$f94() {
17693
17804
  return { "type": "hardBreak" };
17694
17805
  }
17695
- function peg$f94(t) {
17806
+ function peg$f95(t) {
17696
17807
  return { text: unbreakscape(t), type: "text" };
17697
17808
  }
17698
- function peg$f95(t) {
17809
+ function peg$f96(t) {
17699
17810
  return { index: +t, type: "bit" };
17700
17811
  }
17701
- function peg$f96(t) {
17812
+ function peg$f97(t) {
17702
17813
  return { marks: [{ type: "bold" }], text: unbreakscape(t), type: "text" };
17703
17814
  }
17704
- function peg$f97(t) {
17815
+ function peg$f98(t) {
17705
17816
  return { marks: [{ type: "italic" }], text: unbreakscape(t), type: "text" };
17706
17817
  }
17707
- function peg$f98(t) {
17818
+ function peg$f99(t) {
17708
17819
  return { marks: [{ type: "light" }], text: unbreakscape(t), type: "text" };
17709
17820
  }
17710
- function peg$f99(t) {
17821
+ function peg$f100(t) {
17711
17822
  return { marks: [{ type: "highlight" }], text: unbreakscape(t), type: "text" };
17712
17823
  }
17713
- function peg$f100(pr, t) {
17824
+ function peg$f101(pr, t) {
17714
17825
  return { pr, t };
17715
17826
  }
17716
17827
  let peg$currPos = options.peg$currPos | 0;
@@ -22580,7 +22691,7 @@ function peg$parse(input, options) {
22580
22691
  return s0;
22581
22692
  }
22582
22693
  function peg$parseAttrChainItem() {
22583
- let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
22694
+ let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
22584
22695
  s0 = peg$currPos;
22585
22696
  if (input.substr(peg$currPos, 5) === peg$c52) {
22586
22697
  s1 = peg$c52;
@@ -23548,8 +23659,110 @@ function peg$parse(input, options) {
23548
23659
  if (s1 !== peg$FAILED) {
23549
23660
  s2 = peg$parseBlockTag();
23550
23661
  if (s2 !== peg$FAILED) {
23551
- peg$savedPos = s0;
23552
- s0 = peg$f83();
23662
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23663
+ s3 = peg$c63;
23664
+ peg$currPos += 9;
23665
+ } else {
23666
+ s3 = peg$FAILED;
23667
+ if (peg$silentFails === 0) {
23668
+ peg$fail(peg$e67);
23669
+ }
23670
+ }
23671
+ if (s3 !== peg$FAILED) {
23672
+ s4 = peg$currPos;
23673
+ s5 = peg$currPos;
23674
+ if (input.charCodeAt(peg$currPos) === 80) {
23675
+ s6 = peg$c64;
23676
+ peg$currPos++;
23677
+ } else {
23678
+ s6 = peg$FAILED;
23679
+ if (peg$silentFails === 0) {
23680
+ peg$fail(peg$e68);
23681
+ }
23682
+ }
23683
+ if (s6 !== peg$FAILED) {
23684
+ s7 = peg$currPos;
23685
+ s8 = [];
23686
+ s9 = peg$currPos;
23687
+ s10 = peg$currPos;
23688
+ peg$silentFails++;
23689
+ s11 = peg$parseBlockTag();
23690
+ peg$silentFails--;
23691
+ if (s11 === peg$FAILED) {
23692
+ s10 = void 0;
23693
+ } else {
23694
+ peg$currPos = s10;
23695
+ s10 = peg$FAILED;
23696
+ }
23697
+ if (s10 !== peg$FAILED) {
23698
+ s11 = peg$parsechar();
23699
+ if (s11 !== peg$FAILED) {
23700
+ s10 = [s10, s11];
23701
+ s9 = s10;
23702
+ } else {
23703
+ peg$currPos = s9;
23704
+ s9 = peg$FAILED;
23705
+ }
23706
+ } else {
23707
+ peg$currPos = s9;
23708
+ s9 = peg$FAILED;
23709
+ }
23710
+ while (s9 !== peg$FAILED) {
23711
+ s8.push(s9);
23712
+ s9 = peg$currPos;
23713
+ s10 = peg$currPos;
23714
+ peg$silentFails++;
23715
+ s11 = peg$parseBlockTag();
23716
+ peg$silentFails--;
23717
+ if (s11 === peg$FAILED) {
23718
+ s10 = void 0;
23719
+ } else {
23720
+ peg$currPos = s10;
23721
+ s10 = peg$FAILED;
23722
+ }
23723
+ if (s10 !== peg$FAILED) {
23724
+ s11 = peg$parsechar();
23725
+ if (s11 !== peg$FAILED) {
23726
+ s10 = [s10, s11];
23727
+ s9 = s10;
23728
+ } else {
23729
+ peg$currPos = s9;
23730
+ s9 = peg$FAILED;
23731
+ }
23732
+ } else {
23733
+ peg$currPos = s9;
23734
+ s9 = peg$FAILED;
23735
+ }
23736
+ }
23737
+ s7 = input.substring(s7, peg$currPos);
23738
+ s6 = [s6, s7];
23739
+ s5 = s6;
23740
+ } else {
23741
+ peg$currPos = s5;
23742
+ s5 = peg$FAILED;
23743
+ }
23744
+ if (s5 !== peg$FAILED) {
23745
+ s4 = input.substring(s4, peg$currPos);
23746
+ } else {
23747
+ s4 = s5;
23748
+ }
23749
+ if (s4 !== peg$FAILED) {
23750
+ s5 = peg$parseBlockTag();
23751
+ if (s5 !== peg$FAILED) {
23752
+ peg$savedPos = s0;
23753
+ s0 = peg$f83(s4);
23754
+ } else {
23755
+ peg$currPos = s0;
23756
+ s0 = peg$FAILED;
23757
+ }
23758
+ } else {
23759
+ peg$currPos = s0;
23760
+ s0 = peg$FAILED;
23761
+ }
23762
+ } else {
23763
+ peg$currPos = s0;
23764
+ s0 = peg$FAILED;
23765
+ }
23553
23766
  } else {
23554
23767
  peg$currPos = s0;
23555
23768
  s0 = peg$FAILED;
@@ -23560,13 +23773,13 @@ function peg$parse(input, options) {
23560
23773
  }
23561
23774
  if (s0 === peg$FAILED) {
23562
23775
  s0 = peg$currPos;
23563
- if (input.substr(peg$currPos, 6) === peg$c63) {
23564
- s1 = peg$c63;
23776
+ if (input.substr(peg$currPos, 6) === peg$c65) {
23777
+ s1 = peg$c65;
23565
23778
  peg$currPos += 6;
23566
23779
  } else {
23567
23780
  s1 = peg$FAILED;
23568
23781
  if (peg$silentFails === 0) {
23569
- peg$fail(peg$e67);
23782
+ peg$fail(peg$e69);
23570
23783
  }
23571
23784
  }
23572
23785
  if (s1 !== peg$FAILED) {
@@ -23626,110 +23839,156 @@ function peg$parse(input, options) {
23626
23839
  s2 = input.substring(s2, peg$currPos);
23627
23840
  s3 = peg$parseBlockTag();
23628
23841
  if (s3 !== peg$FAILED) {
23629
- peg$savedPos = s0;
23630
- s0 = peg$f84(s2);
23631
- } else {
23632
- peg$currPos = s0;
23633
- s0 = peg$FAILED;
23634
- }
23635
- } else {
23636
- peg$currPos = s0;
23637
- s0 = peg$FAILED;
23638
- }
23639
- if (s0 === peg$FAILED) {
23640
- s0 = peg$currPos;
23641
- if (input.substr(peg$currPos, 9) === peg$c64) {
23642
- s1 = peg$c64;
23643
- peg$currPos += 9;
23644
- } else {
23645
- s1 = peg$FAILED;
23646
- if (peg$silentFails === 0) {
23647
- peg$fail(peg$e68);
23648
- }
23649
- }
23650
- if (s1 !== peg$FAILED) {
23651
- s2 = peg$currPos;
23652
- s3 = peg$currPos;
23653
- if (input.charCodeAt(peg$currPos) === 80) {
23654
- s4 = peg$c65;
23655
- peg$currPos++;
23842
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23843
+ s4 = peg$c63;
23844
+ peg$currPos += 9;
23656
23845
  } else {
23657
23846
  s4 = peg$FAILED;
23658
23847
  if (peg$silentFails === 0) {
23659
- peg$fail(peg$e69);
23848
+ peg$fail(peg$e67);
23660
23849
  }
23661
23850
  }
23662
23851
  if (s4 !== peg$FAILED) {
23663
23852
  s5 = peg$currPos;
23664
- s6 = [];
23665
- s7 = peg$currPos;
23666
- s8 = peg$currPos;
23667
- peg$silentFails++;
23668
- s9 = peg$parseBlockTag();
23669
- peg$silentFails--;
23670
- if (s9 === peg$FAILED) {
23671
- s8 = void 0;
23853
+ s6 = peg$currPos;
23854
+ if (input.charCodeAt(peg$currPos) === 80) {
23855
+ s7 = peg$c64;
23856
+ peg$currPos++;
23672
23857
  } else {
23673
- peg$currPos = s8;
23674
- s8 = peg$FAILED;
23675
- }
23676
- if (s8 !== peg$FAILED) {
23677
- s9 = peg$parsechar();
23678
- if (s9 !== peg$FAILED) {
23679
- s8 = [s8, s9];
23680
- s7 = s8;
23681
- } else {
23682
- peg$currPos = s7;
23683
- s7 = peg$FAILED;
23684
- }
23685
- } else {
23686
- peg$currPos = s7;
23687
23858
  s7 = peg$FAILED;
23859
+ if (peg$silentFails === 0) {
23860
+ peg$fail(peg$e68);
23861
+ }
23688
23862
  }
23689
- while (s7 !== peg$FAILED) {
23690
- s6.push(s7);
23691
- s7 = peg$currPos;
23863
+ if (s7 !== peg$FAILED) {
23692
23864
  s8 = peg$currPos;
23865
+ s9 = [];
23866
+ s10 = peg$currPos;
23867
+ s11 = peg$currPos;
23693
23868
  peg$silentFails++;
23694
- s9 = peg$parseBlockTag();
23869
+ s12 = peg$parseBlockTag();
23695
23870
  peg$silentFails--;
23696
- if (s9 === peg$FAILED) {
23697
- s8 = void 0;
23871
+ if (s12 === peg$FAILED) {
23872
+ s11 = void 0;
23698
23873
  } else {
23699
- peg$currPos = s8;
23700
- s8 = peg$FAILED;
23874
+ peg$currPos = s11;
23875
+ s11 = peg$FAILED;
23701
23876
  }
23702
- if (s8 !== peg$FAILED) {
23703
- s9 = peg$parsechar();
23704
- if (s9 !== peg$FAILED) {
23705
- s8 = [s8, s9];
23706
- s7 = s8;
23877
+ if (s11 !== peg$FAILED) {
23878
+ s12 = peg$parsechar();
23879
+ if (s12 !== peg$FAILED) {
23880
+ s11 = [s11, s12];
23881
+ s10 = s11;
23707
23882
  } else {
23708
- peg$currPos = s7;
23709
- s7 = peg$FAILED;
23883
+ peg$currPos = s10;
23884
+ s10 = peg$FAILED;
23710
23885
  }
23711
23886
  } else {
23712
- peg$currPos = s7;
23713
- s7 = peg$FAILED;
23887
+ peg$currPos = s10;
23888
+ s10 = peg$FAILED;
23889
+ }
23890
+ while (s10 !== peg$FAILED) {
23891
+ s9.push(s10);
23892
+ s10 = peg$currPos;
23893
+ s11 = peg$currPos;
23894
+ peg$silentFails++;
23895
+ s12 = peg$parseBlockTag();
23896
+ peg$silentFails--;
23897
+ if (s12 === peg$FAILED) {
23898
+ s11 = void 0;
23899
+ } else {
23900
+ peg$currPos = s11;
23901
+ s11 = peg$FAILED;
23902
+ }
23903
+ if (s11 !== peg$FAILED) {
23904
+ s12 = peg$parsechar();
23905
+ if (s12 !== peg$FAILED) {
23906
+ s11 = [s11, s12];
23907
+ s10 = s11;
23908
+ } else {
23909
+ peg$currPos = s10;
23910
+ s10 = peg$FAILED;
23911
+ }
23912
+ } else {
23913
+ peg$currPos = s10;
23914
+ s10 = peg$FAILED;
23915
+ }
23714
23916
  }
23917
+ s8 = input.substring(s8, peg$currPos);
23918
+ s7 = [s7, s8];
23919
+ s6 = s7;
23920
+ } else {
23921
+ peg$currPos = s6;
23922
+ s6 = peg$FAILED;
23923
+ }
23924
+ if (s6 !== peg$FAILED) {
23925
+ s5 = input.substring(s5, peg$currPos);
23926
+ } else {
23927
+ s5 = s6;
23928
+ }
23929
+ if (s5 !== peg$FAILED) {
23930
+ s6 = peg$parseBlockTag();
23931
+ if (s6 !== peg$FAILED) {
23932
+ peg$savedPos = s0;
23933
+ s0 = peg$f84(s2, s5);
23934
+ } else {
23935
+ peg$currPos = s0;
23936
+ s0 = peg$FAILED;
23937
+ }
23938
+ } else {
23939
+ peg$currPos = s0;
23940
+ s0 = peg$FAILED;
23715
23941
  }
23716
- s5 = input.substring(s5, peg$currPos);
23717
- s4 = [s4, s5];
23718
- s3 = s4;
23719
23942
  } else {
23720
- peg$currPos = s3;
23721
- s3 = peg$FAILED;
23943
+ peg$currPos = s0;
23944
+ s0 = peg$FAILED;
23722
23945
  }
23723
- if (s3 !== peg$FAILED) {
23724
- s2 = input.substring(s2, peg$currPos);
23725
- } else {
23726
- s2 = s3;
23946
+ } else {
23947
+ peg$currPos = s0;
23948
+ s0 = peg$FAILED;
23949
+ }
23950
+ } else {
23951
+ peg$currPos = s0;
23952
+ s0 = peg$FAILED;
23953
+ }
23954
+ if (s0 === peg$FAILED) {
23955
+ s0 = peg$currPos;
23956
+ if (input.substr(peg$currPos, 9) === peg$c66) {
23957
+ s1 = peg$c66;
23958
+ peg$currPos += 9;
23959
+ } else {
23960
+ s1 = peg$FAILED;
23961
+ if (peg$silentFails === 0) {
23962
+ peg$fail(peg$e70);
23727
23963
  }
23964
+ }
23965
+ if (s1 !== peg$FAILED) {
23966
+ s2 = peg$parseBlockTag();
23728
23967
  if (s2 !== peg$FAILED) {
23729
- s3 = peg$parseBlockTag();
23968
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23969
+ s3 = peg$c67;
23970
+ peg$currPos += 6;
23971
+ } else {
23972
+ s3 = peg$FAILED;
23973
+ if (peg$silentFails === 0) {
23974
+ peg$fail(peg$e71);
23975
+ }
23976
+ }
23730
23977
  if (s3 !== peg$FAILED) {
23731
- peg$savedPos = s0;
23732
- s0 = peg$f85(s2);
23978
+ s4 = peg$parseHighlightColor();
23979
+ if (s4 !== peg$FAILED) {
23980
+ s5 = peg$parseBlockTag();
23981
+ if (s5 !== peg$FAILED) {
23982
+ peg$savedPos = s0;
23983
+ s0 = peg$f85(s4);
23984
+ } else {
23985
+ peg$currPos = s0;
23986
+ s0 = peg$FAILED;
23987
+ }
23988
+ } else {
23989
+ peg$currPos = s0;
23990
+ s0 = peg$FAILED;
23991
+ }
23733
23992
  } else {
23734
23993
  peg$currPos = s0;
23735
23994
  s0 = peg$FAILED;
@@ -23744,22 +24003,42 @@ function peg$parse(input, options) {
23744
24003
  }
23745
24004
  if (s0 === peg$FAILED) {
23746
24005
  s0 = peg$currPos;
23747
- if (input.substr(peg$currPos, 6) === peg$c66) {
23748
- s1 = peg$c66;
23749
- peg$currPos += 6;
24006
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24007
+ s1 = peg$c68;
24008
+ peg$currPos += 13;
23750
24009
  } else {
23751
24010
  s1 = peg$FAILED;
23752
24011
  if (peg$silentFails === 0) {
23753
- peg$fail(peg$e70);
24012
+ peg$fail(peg$e72);
23754
24013
  }
23755
24014
  }
23756
24015
  if (s1 !== peg$FAILED) {
23757
- s2 = peg$parseColor();
24016
+ s2 = peg$parseBlockTag();
23758
24017
  if (s2 !== peg$FAILED) {
23759
- s3 = peg$parseBlockTag();
24018
+ if (input.substr(peg$currPos, 6) === peg$c67) {
24019
+ s3 = peg$c67;
24020
+ peg$currPos += 6;
24021
+ } else {
24022
+ s3 = peg$FAILED;
24023
+ if (peg$silentFails === 0) {
24024
+ peg$fail(peg$e71);
24025
+ }
24026
+ }
23760
24027
  if (s3 !== peg$FAILED) {
23761
- peg$savedPos = s0;
23762
- s0 = peg$f86(s2);
24028
+ s4 = peg$parseHighlightColor();
24029
+ if (s4 !== peg$FAILED) {
24030
+ s5 = peg$parseBlockTag();
24031
+ if (s5 !== peg$FAILED) {
24032
+ peg$savedPos = s0;
24033
+ s0 = peg$f86(s4);
24034
+ } else {
24035
+ peg$currPos = s0;
24036
+ s0 = peg$FAILED;
24037
+ }
24038
+ } else {
24039
+ peg$currPos = s0;
24040
+ s0 = peg$FAILED;
24041
+ }
23763
24042
  } else {
23764
24043
  peg$currPos = s0;
23765
24044
  s0 = peg$FAILED;
@@ -23774,9 +24053,9 @@ function peg$parse(input, options) {
23774
24053
  }
23775
24054
  if (s0 === peg$FAILED) {
23776
24055
  s0 = peg$currPos;
23777
- if (input.substr(peg$currPos, 12) === peg$c67) {
24056
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23778
24057
  s1 = peg$c67;
23779
- peg$currPos += 12;
24058
+ peg$currPos += 6;
23780
24059
  } else {
23781
24060
  s1 = peg$FAILED;
23782
24061
  if (peg$silentFails === 0) {
@@ -23784,34 +24063,38 @@ function peg$parse(input, options) {
23784
24063
  }
23785
24064
  }
23786
24065
  if (s1 !== peg$FAILED) {
23787
- s2 = peg$currPos;
23788
- s3 = [];
23789
- s4 = peg$currPos;
23790
- s5 = peg$currPos;
23791
- peg$silentFails++;
23792
- s6 = peg$parseBlockTag();
23793
- peg$silentFails--;
23794
- if (s6 === peg$FAILED) {
23795
- s5 = void 0;
23796
- } else {
23797
- peg$currPos = s5;
23798
- s5 = peg$FAILED;
23799
- }
23800
- if (s5 !== peg$FAILED) {
23801
- s6 = peg$parsechar();
23802
- if (s6 !== peg$FAILED) {
23803
- s5 = [s5, s6];
23804
- s4 = s5;
24066
+ s2 = peg$parseColor();
24067
+ if (s2 !== peg$FAILED) {
24068
+ s3 = peg$parseBlockTag();
24069
+ if (s3 !== peg$FAILED) {
24070
+ peg$savedPos = s0;
24071
+ s0 = peg$f87(s2);
23805
24072
  } else {
23806
- peg$currPos = s4;
23807
- s4 = peg$FAILED;
24073
+ peg$currPos = s0;
24074
+ s0 = peg$FAILED;
23808
24075
  }
23809
24076
  } else {
23810
- peg$currPos = s4;
23811
- s4 = peg$FAILED;
24077
+ peg$currPos = s0;
24078
+ s0 = peg$FAILED;
24079
+ }
24080
+ } else {
24081
+ peg$currPos = s0;
24082
+ s0 = peg$FAILED;
24083
+ }
24084
+ if (s0 === peg$FAILED) {
24085
+ s0 = peg$currPos;
24086
+ if (input.substr(peg$currPos, 12) === peg$c69) {
24087
+ s1 = peg$c69;
24088
+ peg$currPos += 12;
24089
+ } else {
24090
+ s1 = peg$FAILED;
24091
+ if (peg$silentFails === 0) {
24092
+ peg$fail(peg$e73);
24093
+ }
23812
24094
  }
23813
- while (s4 !== peg$FAILED) {
23814
- s3.push(s4);
24095
+ if (s1 !== peg$FAILED) {
24096
+ s2 = peg$currPos;
24097
+ s3 = [];
23815
24098
  s4 = peg$currPos;
23816
24099
  s5 = peg$currPos;
23817
24100
  peg$silentFails++;
@@ -23836,50 +24119,8 @@ function peg$parse(input, options) {
23836
24119
  peg$currPos = s4;
23837
24120
  s4 = peg$FAILED;
23838
24121
  }
23839
- }
23840
- s2 = input.substring(s2, peg$currPos);
23841
- s3 = peg$parseBlockTag();
23842
- if (s3 !== peg$FAILED) {
23843
- peg$savedPos = s0;
23844
- s0 = peg$f87(s2);
23845
- } else {
23846
- peg$currPos = s0;
23847
- s0 = peg$FAILED;
23848
- }
23849
- } else {
23850
- peg$currPos = s0;
23851
- s0 = peg$FAILED;
23852
- }
23853
- if (s0 === peg$FAILED) {
23854
- s0 = peg$currPos;
23855
- s1 = peg$parseAlternativeStyleTags();
23856
- if (s1 !== peg$FAILED) {
23857
- s2 = peg$parseBlockTag();
23858
- if (s2 !== peg$FAILED) {
23859
- peg$savedPos = s0;
23860
- s0 = peg$f88(s1);
23861
- } else {
23862
- peg$currPos = s0;
23863
- s0 = peg$FAILED;
23864
- }
23865
- } else {
23866
- peg$currPos = s0;
23867
- s0 = peg$FAILED;
23868
- }
23869
- if (s0 === peg$FAILED) {
23870
- s0 = peg$currPos;
23871
- if (input.charCodeAt(peg$currPos) === 35) {
23872
- s1 = peg$c21;
23873
- peg$currPos++;
23874
- } else {
23875
- s1 = peg$FAILED;
23876
- if (peg$silentFails === 0) {
23877
- peg$fail(peg$e25);
23878
- }
23879
- }
23880
- if (s1 !== peg$FAILED) {
23881
- s2 = peg$currPos;
23882
- s3 = [];
24122
+ while (s4 !== peg$FAILED) {
24123
+ s3.push(s4);
23883
24124
  s4 = peg$currPos;
23884
24125
  s5 = peg$currPos;
23885
24126
  peg$silentFails++;
@@ -23904,8 +24145,50 @@ function peg$parse(input, options) {
23904
24145
  peg$currPos = s4;
23905
24146
  s4 = peg$FAILED;
23906
24147
  }
23907
- while (s4 !== peg$FAILED) {
23908
- s3.push(s4);
24148
+ }
24149
+ s2 = input.substring(s2, peg$currPos);
24150
+ s3 = peg$parseBlockTag();
24151
+ if (s3 !== peg$FAILED) {
24152
+ peg$savedPos = s0;
24153
+ s0 = peg$f88(s2);
24154
+ } else {
24155
+ peg$currPos = s0;
24156
+ s0 = peg$FAILED;
24157
+ }
24158
+ } else {
24159
+ peg$currPos = s0;
24160
+ s0 = peg$FAILED;
24161
+ }
24162
+ if (s0 === peg$FAILED) {
24163
+ s0 = peg$currPos;
24164
+ s1 = peg$parseAlternativeStyleTags();
24165
+ if (s1 !== peg$FAILED) {
24166
+ s2 = peg$parseBlockTag();
24167
+ if (s2 !== peg$FAILED) {
24168
+ peg$savedPos = s0;
24169
+ s0 = peg$f89(s1);
24170
+ } else {
24171
+ peg$currPos = s0;
24172
+ s0 = peg$FAILED;
24173
+ }
24174
+ } else {
24175
+ peg$currPos = s0;
24176
+ s0 = peg$FAILED;
24177
+ }
24178
+ if (s0 === peg$FAILED) {
24179
+ s0 = peg$currPos;
24180
+ if (input.charCodeAt(peg$currPos) === 35) {
24181
+ s1 = peg$c21;
24182
+ peg$currPos++;
24183
+ } else {
24184
+ s1 = peg$FAILED;
24185
+ if (peg$silentFails === 0) {
24186
+ peg$fail(peg$e25);
24187
+ }
24188
+ }
24189
+ if (s1 !== peg$FAILED) {
24190
+ s2 = peg$currPos;
24191
+ s3 = [];
23909
24192
  s4 = peg$currPos;
23910
24193
  s5 = peg$currPos;
23911
24194
  peg$silentFails++;
@@ -23930,19 +24213,46 @@ function peg$parse(input, options) {
23930
24213
  peg$currPos = s4;
23931
24214
  s4 = peg$FAILED;
23932
24215
  }
23933
- }
23934
- s2 = input.substring(s2, peg$currPos);
23935
- s3 = peg$parseBlockTag();
23936
- if (s3 !== peg$FAILED) {
23937
- peg$savedPos = s0;
23938
- s0 = peg$f89(s2);
24216
+ while (s4 !== peg$FAILED) {
24217
+ s3.push(s4);
24218
+ s4 = peg$currPos;
24219
+ s5 = peg$currPos;
24220
+ peg$silentFails++;
24221
+ s6 = peg$parseBlockTag();
24222
+ peg$silentFails--;
24223
+ if (s6 === peg$FAILED) {
24224
+ s5 = void 0;
24225
+ } else {
24226
+ peg$currPos = s5;
24227
+ s5 = peg$FAILED;
24228
+ }
24229
+ if (s5 !== peg$FAILED) {
24230
+ s6 = peg$parsechar();
24231
+ if (s6 !== peg$FAILED) {
24232
+ s5 = [s5, s6];
24233
+ s4 = s5;
24234
+ } else {
24235
+ peg$currPos = s4;
24236
+ s4 = peg$FAILED;
24237
+ }
24238
+ } else {
24239
+ peg$currPos = s4;
24240
+ s4 = peg$FAILED;
24241
+ }
24242
+ }
24243
+ s2 = input.substring(s2, peg$currPos);
24244
+ s3 = peg$parseBlockTag();
24245
+ if (s3 !== peg$FAILED) {
24246
+ peg$savedPos = s0;
24247
+ s0 = peg$f90(s2);
24248
+ } else {
24249
+ peg$currPos = s0;
24250
+ s0 = peg$FAILED;
24251
+ }
23939
24252
  } else {
23940
24253
  peg$currPos = s0;
23941
24254
  s0 = peg$FAILED;
23942
24255
  }
23943
- } else {
23944
- peg$currPos = s0;
23945
- s0 = peg$FAILED;
23946
24256
  }
23947
24257
  }
23948
24258
  }
@@ -23976,13 +24286,13 @@ function peg$parse(input, options) {
23976
24286
  function peg$parseRef() {
23977
24287
  let s0, s1, s2, s3, s4, s5, s6;
23978
24288
  s0 = peg$currPos;
23979
- if (input.substr(peg$currPos, 2) === peg$c68) {
23980
- s1 = peg$c68;
24289
+ if (input.substr(peg$currPos, 2) === peg$c70) {
24290
+ s1 = peg$c70;
23981
24291
  peg$currPos += 2;
23982
24292
  } else {
23983
24293
  s1 = peg$FAILED;
23984
24294
  if (peg$silentFails === 0) {
23985
- peg$fail(peg$e72);
24295
+ peg$fail(peg$e74);
23986
24296
  }
23987
24297
  }
23988
24298
  if (s1 !== peg$FAILED) {
@@ -24041,7 +24351,7 @@ function peg$parse(input, options) {
24041
24351
  }
24042
24352
  s2 = input.substring(s2, peg$currPos);
24043
24353
  peg$savedPos = s0;
24044
- s0 = peg$f90(s2);
24354
+ s0 = peg$f91(s2);
24045
24355
  } else {
24046
24356
  peg$currPos = s0;
24047
24357
  s0 = peg$FAILED;
@@ -24050,403 +24360,414 @@ function peg$parse(input, options) {
24050
24360
  }
24051
24361
  function peg$parseAlternativeStyleTags() {
24052
24362
  let s0;
24053
- if (input.substr(peg$currPos, 4) === peg$c69) {
24054
- s0 = peg$c69;
24363
+ if (input.substr(peg$currPos, 4) === peg$c71) {
24364
+ s0 = peg$c71;
24055
24365
  peg$currPos += 4;
24056
24366
  } else {
24057
24367
  s0 = peg$FAILED;
24058
24368
  if (peg$silentFails === 0) {
24059
- peg$fail(peg$e73);
24369
+ peg$fail(peg$e75);
24060
24370
  }
24061
24371
  }
24062
24372
  if (s0 === peg$FAILED) {
24063
- if (input.substr(peg$currPos, 6) === peg$c70) {
24064
- s0 = peg$c70;
24373
+ if (input.substr(peg$currPos, 6) === peg$c72) {
24374
+ s0 = peg$c72;
24065
24375
  peg$currPos += 6;
24066
24376
  } else {
24067
24377
  s0 = peg$FAILED;
24068
24378
  if (peg$silentFails === 0) {
24069
- peg$fail(peg$e74);
24379
+ peg$fail(peg$e76);
24070
24380
  }
24071
24381
  }
24072
24382
  if (s0 === peg$FAILED) {
24073
- if (input.substr(peg$currPos, 5) === peg$c71) {
24074
- s0 = peg$c71;
24383
+ if (input.substr(peg$currPos, 5) === peg$c73) {
24384
+ s0 = peg$c73;
24075
24385
  peg$currPos += 5;
24076
24386
  } else {
24077
24387
  s0 = peg$FAILED;
24078
24388
  if (peg$silentFails === 0) {
24079
- peg$fail(peg$e75);
24389
+ peg$fail(peg$e77);
24080
24390
  }
24081
24391
  }
24082
24392
  if (s0 === peg$FAILED) {
24083
- if (input.substr(peg$currPos, 15) === peg$c72) {
24084
- s0 = peg$c72;
24393
+ if (input.substr(peg$currPos, 15) === peg$c74) {
24394
+ s0 = peg$c74;
24085
24395
  peg$currPos += 15;
24086
24396
  } else {
24087
24397
  s0 = peg$FAILED;
24088
24398
  if (peg$silentFails === 0) {
24089
- peg$fail(peg$e76);
24399
+ peg$fail(peg$e78);
24090
24400
  }
24091
24401
  }
24092
24402
  if (s0 === peg$FAILED) {
24093
- if (input.substr(peg$currPos, 15) === peg$c73) {
24094
- s0 = peg$c73;
24403
+ if (input.substr(peg$currPos, 15) === peg$c75) {
24404
+ s0 = peg$c75;
24095
24405
  peg$currPos += 15;
24096
24406
  } else {
24097
24407
  s0 = peg$FAILED;
24098
24408
  if (peg$silentFails === 0) {
24099
- peg$fail(peg$e77);
24409
+ peg$fail(peg$e79);
24100
24410
  }
24101
24411
  }
24102
24412
  if (s0 === peg$FAILED) {
24103
- if (input.substr(peg$currPos, 14) === peg$c74) {
24104
- s0 = peg$c74;
24413
+ if (input.substr(peg$currPos, 14) === peg$c76) {
24414
+ s0 = peg$c76;
24105
24415
  peg$currPos += 14;
24106
24416
  } else {
24107
24417
  s0 = peg$FAILED;
24108
24418
  if (peg$silentFails === 0) {
24109
- peg$fail(peg$e78);
24419
+ peg$fail(peg$e80);
24110
24420
  }
24111
24421
  }
24112
24422
  if (s0 === peg$FAILED) {
24113
- if (input.substr(peg$currPos, 13) === peg$c75) {
24114
- s0 = peg$c75;
24423
+ if (input.substr(peg$currPos, 13) === peg$c77) {
24424
+ s0 = peg$c77;
24115
24425
  peg$currPos += 13;
24116
24426
  } else {
24117
24427
  s0 = peg$FAILED;
24118
24428
  if (peg$silentFails === 0) {
24119
- peg$fail(peg$e79);
24429
+ peg$fail(peg$e81);
24120
24430
  }
24121
24431
  }
24122
24432
  if (s0 === peg$FAILED) {
24123
- if (input.substr(peg$currPos, 15) === peg$c76) {
24124
- s0 = peg$c76;
24433
+ if (input.substr(peg$currPos, 15) === peg$c78) {
24434
+ s0 = peg$c78;
24125
24435
  peg$currPos += 15;
24126
24436
  } else {
24127
24437
  s0 = peg$FAILED;
24128
24438
  if (peg$silentFails === 0) {
24129
- peg$fail(peg$e80);
24439
+ peg$fail(peg$e82);
24130
24440
  }
24131
24441
  }
24132
24442
  if (s0 === peg$FAILED) {
24133
- if (input.substr(peg$currPos, 13) === peg$c77) {
24134
- s0 = peg$c77;
24443
+ if (input.substr(peg$currPos, 13) === peg$c79) {
24444
+ s0 = peg$c79;
24135
24445
  peg$currPos += 13;
24136
24446
  } else {
24137
24447
  s0 = peg$FAILED;
24138
24448
  if (peg$silentFails === 0) {
24139
- peg$fail(peg$e81);
24449
+ peg$fail(peg$e83);
24140
24450
  }
24141
24451
  }
24142
24452
  if (s0 === peg$FAILED) {
24143
- if (input.substr(peg$currPos, 14) === peg$c78) {
24144
- s0 = peg$c78;
24453
+ if (input.substr(peg$currPos, 14) === peg$c80) {
24454
+ s0 = peg$c80;
24145
24455
  peg$currPos += 14;
24146
24456
  } else {
24147
24457
  s0 = peg$FAILED;
24148
24458
  if (peg$silentFails === 0) {
24149
- peg$fail(peg$e82);
24459
+ peg$fail(peg$e84);
24150
24460
  }
24151
24461
  }
24152
24462
  if (s0 === peg$FAILED) {
24153
- if (input.substr(peg$currPos, 14) === peg$c79) {
24154
- s0 = peg$c79;
24463
+ if (input.substr(peg$currPos, 14) === peg$c81) {
24464
+ s0 = peg$c81;
24155
24465
  peg$currPos += 14;
24156
24466
  } else {
24157
24467
  s0 = peg$FAILED;
24158
24468
  if (peg$silentFails === 0) {
24159
- peg$fail(peg$e83);
24469
+ peg$fail(peg$e85);
24160
24470
  }
24161
24471
  }
24162
24472
  if (s0 === peg$FAILED) {
24163
- if (input.substr(peg$currPos, 14) === peg$c80) {
24164
- s0 = peg$c80;
24473
+ if (input.substr(peg$currPos, 14) === peg$c82) {
24474
+ s0 = peg$c82;
24165
24475
  peg$currPos += 14;
24166
24476
  } else {
24167
24477
  s0 = peg$FAILED;
24168
24478
  if (peg$silentFails === 0) {
24169
- peg$fail(peg$e84);
24479
+ peg$fail(peg$e86);
24170
24480
  }
24171
24481
  }
24172
24482
  if (s0 === peg$FAILED) {
24173
- if (input.substr(peg$currPos, 13) === peg$c81) {
24174
- s0 = peg$c81;
24483
+ if (input.substr(peg$currPos, 13) === peg$c83) {
24484
+ s0 = peg$c83;
24175
24485
  peg$currPos += 13;
24176
24486
  } else {
24177
24487
  s0 = peg$FAILED;
24178
24488
  if (peg$silentFails === 0) {
24179
- peg$fail(peg$e85);
24489
+ peg$fail(peg$e87);
24180
24490
  }
24181
24491
  }
24182
24492
  if (s0 === peg$FAILED) {
24183
- if (input.substr(peg$currPos, 9) === peg$c82) {
24184
- s0 = peg$c82;
24493
+ if (input.substr(peg$currPos, 9) === peg$c66) {
24494
+ s0 = peg$c66;
24185
24495
  peg$currPos += 9;
24186
24496
  } else {
24187
24497
  s0 = peg$FAILED;
24188
24498
  if (peg$silentFails === 0) {
24189
- peg$fail(peg$e86);
24499
+ peg$fail(peg$e70);
24190
24500
  }
24191
24501
  }
24192
24502
  if (s0 === peg$FAILED) {
24193
- if (input.substr(peg$currPos, 6) === peg$c83) {
24194
- s0 = peg$c83;
24503
+ if (input.substr(peg$currPos, 6) === peg$c84) {
24504
+ s0 = peg$c84;
24195
24505
  peg$currPos += 6;
24196
24506
  } else {
24197
24507
  s0 = peg$FAILED;
24198
24508
  if (peg$silentFails === 0) {
24199
- peg$fail(peg$e87);
24509
+ peg$fail(peg$e88);
24200
24510
  }
24201
24511
  }
24202
24512
  if (s0 === peg$FAILED) {
24203
- if (input.substr(peg$currPos, 9) === peg$c84) {
24204
- s0 = peg$c84;
24513
+ if (input.substr(peg$currPos, 9) === peg$c85) {
24514
+ s0 = peg$c85;
24205
24515
  peg$currPos += 9;
24206
24516
  } else {
24207
24517
  s0 = peg$FAILED;
24208
24518
  if (peg$silentFails === 0) {
24209
- peg$fail(peg$e88);
24519
+ peg$fail(peg$e89);
24210
24520
  }
24211
24521
  }
24212
24522
  if (s0 === peg$FAILED) {
24213
- if (input.substr(peg$currPos, 11) === peg$c85) {
24214
- s0 = peg$c85;
24523
+ if (input.substr(peg$currPos, 11) === peg$c86) {
24524
+ s0 = peg$c86;
24215
24525
  peg$currPos += 11;
24216
24526
  } else {
24217
24527
  s0 = peg$FAILED;
24218
24528
  if (peg$silentFails === 0) {
24219
- peg$fail(peg$e89);
24529
+ peg$fail(peg$e90);
24220
24530
  }
24221
24531
  }
24222
24532
  if (s0 === peg$FAILED) {
24223
- if (input.substr(peg$currPos, 3) === peg$c86) {
24224
- s0 = peg$c86;
24533
+ if (input.substr(peg$currPos, 3) === peg$c87) {
24534
+ s0 = peg$c87;
24225
24535
  peg$currPos += 3;
24226
24536
  } else {
24227
24537
  s0 = peg$FAILED;
24228
24538
  if (peg$silentFails === 0) {
24229
- peg$fail(peg$e90);
24539
+ peg$fail(peg$e91);
24230
24540
  }
24231
24541
  }
24232
24542
  if (s0 === peg$FAILED) {
24233
- if (input.substr(peg$currPos, 3) === peg$c87) {
24234
- s0 = peg$c87;
24543
+ if (input.substr(peg$currPos, 3) === peg$c88) {
24544
+ s0 = peg$c88;
24235
24545
  peg$currPos += 3;
24236
24546
  } else {
24237
24547
  s0 = peg$FAILED;
24238
24548
  if (peg$silentFails === 0) {
24239
- peg$fail(peg$e91);
24549
+ peg$fail(peg$e92);
24240
24550
  }
24241
24551
  }
24242
24552
  if (s0 === peg$FAILED) {
24243
- if (input.substr(peg$currPos, 9) === peg$c88) {
24244
- s0 = peg$c88;
24553
+ if (input.substr(peg$currPos, 9) === peg$c89) {
24554
+ s0 = peg$c89;
24245
24555
  peg$currPos += 9;
24246
24556
  } else {
24247
24557
  s0 = peg$FAILED;
24248
24558
  if (peg$silentFails === 0) {
24249
- peg$fail(peg$e92);
24559
+ peg$fail(peg$e93);
24250
24560
  }
24251
24561
  }
24252
24562
  if (s0 === peg$FAILED) {
24253
- if (input.substr(peg$currPos, 15) === peg$c89) {
24254
- s0 = peg$c89;
24563
+ if (input.substr(peg$currPos, 15) === peg$c90) {
24564
+ s0 = peg$c90;
24255
24565
  peg$currPos += 15;
24256
24566
  } else {
24257
24567
  s0 = peg$FAILED;
24258
24568
  if (peg$silentFails === 0) {
24259
- peg$fail(peg$e93);
24569
+ peg$fail(peg$e94);
24260
24570
  }
24261
24571
  }
24262
24572
  if (s0 === peg$FAILED) {
24263
- if (input.substr(peg$currPos, 6) === peg$c90) {
24264
- s0 = peg$c90;
24265
- peg$currPos += 6;
24573
+ if (input.substr(peg$currPos, 9) === peg$c91) {
24574
+ s0 = peg$c91;
24575
+ peg$currPos += 9;
24266
24576
  } else {
24267
24577
  s0 = peg$FAILED;
24268
24578
  if (peg$silentFails === 0) {
24269
- peg$fail(peg$e94);
24579
+ peg$fail(peg$e95);
24270
24580
  }
24271
24581
  }
24272
24582
  if (s0 === peg$FAILED) {
24273
- if (input.substr(peg$currPos, 13) === peg$c91) {
24274
- s0 = peg$c91;
24275
- peg$currPos += 13;
24583
+ if (input.substr(peg$currPos, 6) === peg$c92) {
24584
+ s0 = peg$c92;
24585
+ peg$currPos += 6;
24276
24586
  } else {
24277
24587
  s0 = peg$FAILED;
24278
24588
  if (peg$silentFails === 0) {
24279
- peg$fail(peg$e95);
24589
+ peg$fail(peg$e96);
24280
24590
  }
24281
24591
  }
24282
24592
  if (s0 === peg$FAILED) {
24283
- if (input.substr(peg$currPos, 16) === peg$c92) {
24284
- s0 = peg$c92;
24285
- peg$currPos += 16;
24593
+ if (input.substr(peg$currPos, 13) === peg$c93) {
24594
+ s0 = peg$c93;
24595
+ peg$currPos += 13;
24286
24596
  } else {
24287
24597
  s0 = peg$FAILED;
24288
24598
  if (peg$silentFails === 0) {
24289
- peg$fail(peg$e96);
24599
+ peg$fail(peg$e97);
24290
24600
  }
24291
24601
  }
24292
24602
  if (s0 === peg$FAILED) {
24293
- if (input.substr(peg$currPos, 16) === peg$c93) {
24294
- s0 = peg$c93;
24603
+ if (input.substr(peg$currPos, 16) === peg$c94) {
24604
+ s0 = peg$c94;
24295
24605
  peg$currPos += 16;
24296
24606
  } else {
24297
24607
  s0 = peg$FAILED;
24298
24608
  if (peg$silentFails === 0) {
24299
- peg$fail(peg$e97);
24609
+ peg$fail(peg$e98);
24300
24610
  }
24301
24611
  }
24302
24612
  if (s0 === peg$FAILED) {
24303
- if (input.substr(peg$currPos, 15) === peg$c94) {
24304
- s0 = peg$c94;
24305
- peg$currPos += 15;
24613
+ if (input.substr(peg$currPos, 16) === peg$c95) {
24614
+ s0 = peg$c95;
24615
+ peg$currPos += 16;
24306
24616
  } else {
24307
24617
  s0 = peg$FAILED;
24308
24618
  if (peg$silentFails === 0) {
24309
- peg$fail(peg$e98);
24619
+ peg$fail(peg$e99);
24310
24620
  }
24311
24621
  }
24312
24622
  if (s0 === peg$FAILED) {
24313
- if (input.substr(peg$currPos, 14) === peg$c95) {
24314
- s0 = peg$c95;
24315
- peg$currPos += 14;
24623
+ if (input.substr(peg$currPos, 15) === peg$c96) {
24624
+ s0 = peg$c96;
24625
+ peg$currPos += 15;
24316
24626
  } else {
24317
24627
  s0 = peg$FAILED;
24318
24628
  if (peg$silentFails === 0) {
24319
- peg$fail(peg$e99);
24629
+ peg$fail(peg$e100);
24320
24630
  }
24321
24631
  }
24322
24632
  if (s0 === peg$FAILED) {
24323
- if (input.substr(peg$currPos, 16) === peg$c96) {
24324
- s0 = peg$c96;
24325
- peg$currPos += 16;
24633
+ if (input.substr(peg$currPos, 14) === peg$c97) {
24634
+ s0 = peg$c97;
24635
+ peg$currPos += 14;
24326
24636
  } else {
24327
24637
  s0 = peg$FAILED;
24328
24638
  if (peg$silentFails === 0) {
24329
- peg$fail(peg$e100);
24639
+ peg$fail(peg$e101);
24330
24640
  }
24331
24641
  }
24332
24642
  if (s0 === peg$FAILED) {
24333
- if (input.substr(peg$currPos, 14) === peg$c97) {
24334
- s0 = peg$c97;
24335
- peg$currPos += 14;
24643
+ if (input.substr(peg$currPos, 16) === peg$c98) {
24644
+ s0 = peg$c98;
24645
+ peg$currPos += 16;
24336
24646
  } else {
24337
24647
  s0 = peg$FAILED;
24338
24648
  if (peg$silentFails === 0) {
24339
- peg$fail(peg$e101);
24649
+ peg$fail(peg$e102);
24340
24650
  }
24341
24651
  }
24342
24652
  if (s0 === peg$FAILED) {
24343
- if (input.substr(peg$currPos, 15) === peg$c98) {
24344
- s0 = peg$c98;
24345
- peg$currPos += 15;
24653
+ if (input.substr(peg$currPos, 14) === peg$c99) {
24654
+ s0 = peg$c99;
24655
+ peg$currPos += 14;
24346
24656
  } else {
24347
24657
  s0 = peg$FAILED;
24348
24658
  if (peg$silentFails === 0) {
24349
- peg$fail(peg$e102);
24659
+ peg$fail(peg$e103);
24350
24660
  }
24351
24661
  }
24352
24662
  if (s0 === peg$FAILED) {
24353
- if (input.substr(peg$currPos, 15) === peg$c99) {
24354
- s0 = peg$c99;
24663
+ if (input.substr(peg$currPos, 15) === peg$c100) {
24664
+ s0 = peg$c100;
24355
24665
  peg$currPos += 15;
24356
24666
  } else {
24357
24667
  s0 = peg$FAILED;
24358
24668
  if (peg$silentFails === 0) {
24359
- peg$fail(peg$e103);
24669
+ peg$fail(peg$e104);
24360
24670
  }
24361
24671
  }
24362
24672
  if (s0 === peg$FAILED) {
24363
- if (input.substr(peg$currPos, 15) === peg$c100) {
24364
- s0 = peg$c100;
24673
+ if (input.substr(peg$currPos, 15) === peg$c101) {
24674
+ s0 = peg$c101;
24365
24675
  peg$currPos += 15;
24366
24676
  } else {
24367
24677
  s0 = peg$FAILED;
24368
24678
  if (peg$silentFails === 0) {
24369
- peg$fail(peg$e104);
24679
+ peg$fail(peg$e105);
24370
24680
  }
24371
24681
  }
24372
24682
  if (s0 === peg$FAILED) {
24373
- if (input.substr(peg$currPos, 14) === peg$c101) {
24374
- s0 = peg$c101;
24375
- peg$currPos += 14;
24683
+ if (input.substr(peg$currPos, 15) === peg$c102) {
24684
+ s0 = peg$c102;
24685
+ peg$currPos += 15;
24376
24686
  } else {
24377
24687
  s0 = peg$FAILED;
24378
24688
  if (peg$silentFails === 0) {
24379
- peg$fail(peg$e105);
24689
+ peg$fail(peg$e106);
24380
24690
  }
24381
24691
  }
24382
24692
  if (s0 === peg$FAILED) {
24383
- if (input.substr(peg$currPos, 10) === peg$c102) {
24384
- s0 = peg$c102;
24385
- peg$currPos += 10;
24693
+ if (input.substr(peg$currPos, 14) === peg$c103) {
24694
+ s0 = peg$c103;
24695
+ peg$currPos += 14;
24386
24696
  } else {
24387
24697
  s0 = peg$FAILED;
24388
24698
  if (peg$silentFails === 0) {
24389
- peg$fail(peg$e106);
24699
+ peg$fail(peg$e107);
24390
24700
  }
24391
24701
  }
24392
24702
  if (s0 === peg$FAILED) {
24393
- if (input.substr(peg$currPos, 13) === peg$c103) {
24394
- s0 = peg$c103;
24395
- peg$currPos += 13;
24703
+ if (input.substr(peg$currPos, 10) === peg$c104) {
24704
+ s0 = peg$c104;
24705
+ peg$currPos += 10;
24396
24706
  } else {
24397
24707
  s0 = peg$FAILED;
24398
24708
  if (peg$silentFails === 0) {
24399
- peg$fail(peg$e107);
24709
+ peg$fail(peg$e108);
24400
24710
  }
24401
24711
  }
24402
24712
  if (s0 === peg$FAILED) {
24403
- if (input.substr(peg$currPos, 19) === peg$c104) {
24404
- s0 = peg$c104;
24405
- peg$currPos += 19;
24713
+ if (input.substr(peg$currPos, 13) === peg$c105) {
24714
+ s0 = peg$c105;
24715
+ peg$currPos += 13;
24406
24716
  } else {
24407
24717
  s0 = peg$FAILED;
24408
24718
  if (peg$silentFails === 0) {
24409
- peg$fail(peg$e108);
24719
+ peg$fail(peg$e109);
24410
24720
  }
24411
24721
  }
24412
24722
  if (s0 === peg$FAILED) {
24413
- if (input.substr(peg$currPos, 10) === peg$c105) {
24414
- s0 = peg$c105;
24415
- peg$currPos += 10;
24723
+ if (input.substr(peg$currPos, 19) === peg$c106) {
24724
+ s0 = peg$c106;
24725
+ peg$currPos += 19;
24416
24726
  } else {
24417
24727
  s0 = peg$FAILED;
24418
24728
  if (peg$silentFails === 0) {
24419
- peg$fail(peg$e109);
24729
+ peg$fail(peg$e110);
24420
24730
  }
24421
24731
  }
24422
24732
  if (s0 === peg$FAILED) {
24423
- if (input.substr(peg$currPos, 10) === peg$c106) {
24424
- s0 = peg$c106;
24733
+ if (input.substr(peg$currPos, 10) === peg$c107) {
24734
+ s0 = peg$c107;
24425
24735
  peg$currPos += 10;
24426
24736
  } else {
24427
24737
  s0 = peg$FAILED;
24428
24738
  if (peg$silentFails === 0) {
24429
- peg$fail(peg$e110);
24739
+ peg$fail(peg$e111);
24430
24740
  }
24431
24741
  }
24432
24742
  if (s0 === peg$FAILED) {
24433
- if (input.substr(peg$currPos, 13) === peg$c107) {
24434
- s0 = peg$c107;
24435
- peg$currPos += 13;
24743
+ if (input.substr(peg$currPos, 10) === peg$c108) {
24744
+ s0 = peg$c108;
24745
+ peg$currPos += 10;
24436
24746
  } else {
24437
24747
  s0 = peg$FAILED;
24438
24748
  if (peg$silentFails === 0) {
24439
- peg$fail(peg$e111);
24749
+ peg$fail(peg$e112);
24440
24750
  }
24441
24751
  }
24442
24752
  if (s0 === peg$FAILED) {
24443
- if (input.substr(peg$currPos, 11) === peg$c108) {
24444
- s0 = peg$c108;
24445
- peg$currPos += 11;
24753
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24754
+ s0 = peg$c68;
24755
+ peg$currPos += 13;
24446
24756
  } else {
24447
24757
  s0 = peg$FAILED;
24448
24758
  if (peg$silentFails === 0) {
24449
- peg$fail(peg$e112);
24759
+ peg$fail(peg$e72);
24760
+ }
24761
+ }
24762
+ if (s0 === peg$FAILED) {
24763
+ if (input.substr(peg$currPos, 11) === peg$c109) {
24764
+ s0 = peg$c109;
24765
+ peg$currPos += 11;
24766
+ } else {
24767
+ s0 = peg$FAILED;
24768
+ if (peg$silentFails === 0) {
24769
+ peg$fail(peg$e113);
24770
+ }
24450
24771
  }
24451
24772
  }
24452
24773
  }
@@ -24492,233 +24813,233 @@ function peg$parse(input, options) {
24492
24813
  }
24493
24814
  function peg$parseColor() {
24494
24815
  let s0;
24495
- if (input.substr(peg$currPos, 4) === peg$c109) {
24496
- s0 = peg$c109;
24816
+ if (input.substr(peg$currPos, 4) === peg$c110) {
24817
+ s0 = peg$c110;
24497
24818
  peg$currPos += 4;
24498
24819
  } else {
24499
24820
  s0 = peg$FAILED;
24500
24821
  if (peg$silentFails === 0) {
24501
- peg$fail(peg$e113);
24822
+ peg$fail(peg$e114);
24502
24823
  }
24503
24824
  }
24504
24825
  if (s0 === peg$FAILED) {
24505
- if (input.substr(peg$currPos, 5) === peg$c110) {
24506
- s0 = peg$c110;
24826
+ if (input.substr(peg$currPos, 5) === peg$c111) {
24827
+ s0 = peg$c111;
24507
24828
  peg$currPos += 5;
24508
24829
  } else {
24509
24830
  s0 = peg$FAILED;
24510
24831
  if (peg$silentFails === 0) {
24511
- peg$fail(peg$e114);
24832
+ peg$fail(peg$e115);
24512
24833
  }
24513
24834
  }
24514
24835
  if (s0 === peg$FAILED) {
24515
- if (input.substr(peg$currPos, 4) === peg$c111) {
24516
- s0 = peg$c111;
24836
+ if (input.substr(peg$currPos, 4) === peg$c112) {
24837
+ s0 = peg$c112;
24517
24838
  peg$currPos += 4;
24518
24839
  } else {
24519
24840
  s0 = peg$FAILED;
24520
24841
  if (peg$silentFails === 0) {
24521
- peg$fail(peg$e115);
24842
+ peg$fail(peg$e116);
24522
24843
  }
24523
24844
  }
24524
24845
  if (s0 === peg$FAILED) {
24525
- if (input.substr(peg$currPos, 5) === peg$c112) {
24526
- s0 = peg$c112;
24846
+ if (input.substr(peg$currPos, 5) === peg$c113) {
24847
+ s0 = peg$c113;
24527
24848
  peg$currPos += 5;
24528
24849
  } else {
24529
24850
  s0 = peg$FAILED;
24530
24851
  if (peg$silentFails === 0) {
24531
- peg$fail(peg$e116);
24852
+ peg$fail(peg$e117);
24532
24853
  }
24533
24854
  }
24534
24855
  if (s0 === peg$FAILED) {
24535
- if (input.substr(peg$currPos, 7) === peg$c113) {
24536
- s0 = peg$c113;
24856
+ if (input.substr(peg$currPos, 7) === peg$c114) {
24857
+ s0 = peg$c114;
24537
24858
  peg$currPos += 7;
24538
24859
  } else {
24539
24860
  s0 = peg$FAILED;
24540
24861
  if (peg$silentFails === 0) {
24541
- peg$fail(peg$e117);
24862
+ peg$fail(peg$e118);
24542
24863
  }
24543
24864
  }
24544
24865
  if (s0 === peg$FAILED) {
24545
- if (input.substr(peg$currPos, 9) === peg$c114) {
24546
- s0 = peg$c114;
24866
+ if (input.substr(peg$currPos, 9) === peg$c115) {
24867
+ s0 = peg$c115;
24547
24868
  peg$currPos += 9;
24548
24869
  } else {
24549
24870
  s0 = peg$FAILED;
24550
24871
  if (peg$silentFails === 0) {
24551
- peg$fail(peg$e118);
24872
+ peg$fail(peg$e119);
24552
24873
  }
24553
24874
  }
24554
24875
  if (s0 === peg$FAILED) {
24555
- if (input.substr(peg$currPos, 4) === peg$c115) {
24556
- s0 = peg$c115;
24876
+ if (input.substr(peg$currPos, 4) === peg$c116) {
24877
+ s0 = peg$c116;
24557
24878
  peg$currPos += 4;
24558
24879
  } else {
24559
24880
  s0 = peg$FAILED;
24560
24881
  if (peg$silentFails === 0) {
24561
- peg$fail(peg$e119);
24882
+ peg$fail(peg$e120);
24562
24883
  }
24563
24884
  }
24564
24885
  if (s0 === peg$FAILED) {
24565
- if (input.substr(peg$currPos, 8) === peg$c116) {
24566
- s0 = peg$c116;
24886
+ if (input.substr(peg$currPos, 8) === peg$c117) {
24887
+ s0 = peg$c117;
24567
24888
  peg$currPos += 8;
24568
24889
  } else {
24569
24890
  s0 = peg$FAILED;
24570
24891
  if (peg$silentFails === 0) {
24571
- peg$fail(peg$e120);
24892
+ peg$fail(peg$e121);
24572
24893
  }
24573
24894
  }
24574
24895
  if (s0 === peg$FAILED) {
24575
- if (input.substr(peg$currPos, 5) === peg$c117) {
24576
- s0 = peg$c117;
24896
+ if (input.substr(peg$currPos, 5) === peg$c118) {
24897
+ s0 = peg$c118;
24577
24898
  peg$currPos += 5;
24578
24899
  } else {
24579
24900
  s0 = peg$FAILED;
24580
24901
  if (peg$silentFails === 0) {
24581
- peg$fail(peg$e121);
24902
+ peg$fail(peg$e122);
24582
24903
  }
24583
24904
  }
24584
24905
  if (s0 === peg$FAILED) {
24585
- if (input.substr(peg$currPos, 4) === peg$c118) {
24586
- s0 = peg$c118;
24906
+ if (input.substr(peg$currPos, 4) === peg$c119) {
24907
+ s0 = peg$c119;
24587
24908
  peg$currPos += 4;
24588
24909
  } else {
24589
24910
  s0 = peg$FAILED;
24590
24911
  if (peg$silentFails === 0) {
24591
- peg$fail(peg$e122);
24912
+ peg$fail(peg$e123);
24592
24913
  }
24593
24914
  }
24594
24915
  if (s0 === peg$FAILED) {
24595
- if (input.substr(peg$currPos, 7) === peg$c119) {
24596
- s0 = peg$c119;
24916
+ if (input.substr(peg$currPos, 7) === peg$c120) {
24917
+ s0 = peg$c120;
24597
24918
  peg$currPos += 7;
24598
24919
  } else {
24599
24920
  s0 = peg$FAILED;
24600
24921
  if (peg$silentFails === 0) {
24601
- peg$fail(peg$e123);
24922
+ peg$fail(peg$e124);
24602
24923
  }
24603
24924
  }
24604
24925
  if (s0 === peg$FAILED) {
24605
- if (input.substr(peg$currPos, 6) === peg$c120) {
24606
- s0 = peg$c120;
24926
+ if (input.substr(peg$currPos, 6) === peg$c121) {
24927
+ s0 = peg$c121;
24607
24928
  peg$currPos += 6;
24608
24929
  } else {
24609
24930
  s0 = peg$FAILED;
24610
24931
  if (peg$silentFails === 0) {
24611
- peg$fail(peg$e124);
24932
+ peg$fail(peg$e125);
24612
24933
  }
24613
24934
  }
24614
24935
  if (s0 === peg$FAILED) {
24615
- if (input.substr(peg$currPos, 4) === peg$c121) {
24616
- s0 = peg$c121;
24936
+ if (input.substr(peg$currPos, 4) === peg$c122) {
24937
+ s0 = peg$c122;
24617
24938
  peg$currPos += 4;
24618
24939
  } else {
24619
24940
  s0 = peg$FAILED;
24620
24941
  if (peg$silentFails === 0) {
24621
- peg$fail(peg$e125);
24942
+ peg$fail(peg$e126);
24622
24943
  }
24623
24944
  }
24624
24945
  if (s0 === peg$FAILED) {
24625
- if (input.substr(peg$currPos, 5) === peg$c122) {
24626
- s0 = peg$c122;
24946
+ if (input.substr(peg$currPos, 5) === peg$c123) {
24947
+ s0 = peg$c123;
24627
24948
  peg$currPos += 5;
24628
24949
  } else {
24629
24950
  s0 = peg$FAILED;
24630
24951
  if (peg$silentFails === 0) {
24631
- peg$fail(peg$e126);
24952
+ peg$fail(peg$e127);
24632
24953
  }
24633
24954
  }
24634
24955
  if (s0 === peg$FAILED) {
24635
- if (input.substr(peg$currPos, 6) === peg$c123) {
24636
- s0 = peg$c123;
24956
+ if (input.substr(peg$currPos, 6) === peg$c124) {
24957
+ s0 = peg$c124;
24637
24958
  peg$currPos += 6;
24638
24959
  } else {
24639
24960
  s0 = peg$FAILED;
24640
24961
  if (peg$silentFails === 0) {
24641
- peg$fail(peg$e127);
24962
+ peg$fail(peg$e128);
24642
24963
  }
24643
24964
  }
24644
24965
  if (s0 === peg$FAILED) {
24645
- if (input.substr(peg$currPos, 4) === peg$c124) {
24646
- s0 = peg$c124;
24966
+ if (input.substr(peg$currPos, 4) === peg$c125) {
24967
+ s0 = peg$c125;
24647
24968
  peg$currPos += 4;
24648
24969
  } else {
24649
24970
  s0 = peg$FAILED;
24650
24971
  if (peg$silentFails === 0) {
24651
- peg$fail(peg$e128);
24972
+ peg$fail(peg$e129);
24652
24973
  }
24653
24974
  }
24654
24975
  if (s0 === peg$FAILED) {
24655
- if (input.substr(peg$currPos, 6) === peg$c125) {
24656
- s0 = peg$c125;
24976
+ if (input.substr(peg$currPos, 6) === peg$c126) {
24977
+ s0 = peg$c126;
24657
24978
  peg$currPos += 6;
24658
24979
  } else {
24659
24980
  s0 = peg$FAILED;
24660
24981
  if (peg$silentFails === 0) {
24661
- peg$fail(peg$e129);
24982
+ peg$fail(peg$e130);
24662
24983
  }
24663
24984
  }
24664
24985
  if (s0 === peg$FAILED) {
24665
- if (input.substr(peg$currPos, 3) === peg$c126) {
24666
- s0 = peg$c126;
24986
+ if (input.substr(peg$currPos, 3) === peg$c127) {
24987
+ s0 = peg$c127;
24667
24988
  peg$currPos += 3;
24668
24989
  } else {
24669
24990
  s0 = peg$FAILED;
24670
24991
  if (peg$silentFails === 0) {
24671
- peg$fail(peg$e130);
24992
+ peg$fail(peg$e131);
24672
24993
  }
24673
24994
  }
24674
24995
  if (s0 === peg$FAILED) {
24675
- if (input.substr(peg$currPos, 6) === peg$c127) {
24676
- s0 = peg$c127;
24996
+ if (input.substr(peg$currPos, 6) === peg$c128) {
24997
+ s0 = peg$c128;
24677
24998
  peg$currPos += 6;
24678
24999
  } else {
24679
25000
  s0 = peg$FAILED;
24680
25001
  if (peg$silentFails === 0) {
24681
- peg$fail(peg$e131);
25002
+ peg$fail(peg$e132);
24682
25003
  }
24683
25004
  }
24684
25005
  if (s0 === peg$FAILED) {
24685
- if (input.substr(peg$currPos, 4) === peg$c128) {
24686
- s0 = peg$c128;
25006
+ if (input.substr(peg$currPos, 4) === peg$c129) {
25007
+ s0 = peg$c129;
24687
25008
  peg$currPos += 4;
24688
25009
  } else {
24689
25010
  s0 = peg$FAILED;
24690
25011
  if (peg$silentFails === 0) {
24691
- peg$fail(peg$e132);
25012
+ peg$fail(peg$e133);
24692
25013
  }
24693
25014
  }
24694
25015
  if (s0 === peg$FAILED) {
24695
- if (input.substr(peg$currPos, 6) === peg$c129) {
24696
- s0 = peg$c129;
25016
+ if (input.substr(peg$currPos, 6) === peg$c130) {
25017
+ s0 = peg$c130;
24697
25018
  peg$currPos += 6;
24698
25019
  } else {
24699
25020
  s0 = peg$FAILED;
24700
25021
  if (peg$silentFails === 0) {
24701
- peg$fail(peg$e133);
25022
+ peg$fail(peg$e134);
24702
25023
  }
24703
25024
  }
24704
25025
  if (s0 === peg$FAILED) {
24705
- if (input.substr(peg$currPos, 5) === peg$c130) {
24706
- s0 = peg$c130;
25026
+ if (input.substr(peg$currPos, 5) === peg$c131) {
25027
+ s0 = peg$c131;
24707
25028
  peg$currPos += 5;
24708
25029
  } else {
24709
25030
  s0 = peg$FAILED;
24710
25031
  if (peg$silentFails === 0) {
24711
- peg$fail(peg$e134);
25032
+ peg$fail(peg$e135);
24712
25033
  }
24713
25034
  }
24714
25035
  if (s0 === peg$FAILED) {
24715
- if (input.substr(peg$currPos, 6) === peg$c131) {
24716
- s0 = peg$c131;
25036
+ if (input.substr(peg$currPos, 6) === peg$c132) {
25037
+ s0 = peg$c132;
24717
25038
  peg$currPos += 6;
24718
25039
  } else {
24719
25040
  s0 = peg$FAILED;
24720
25041
  if (peg$silentFails === 0) {
24721
- peg$fail(peg$e135);
25042
+ peg$fail(peg$e136);
24722
25043
  }
24723
25044
  }
24724
25045
  }
@@ -24745,13 +25066,125 @@ function peg$parse(input, options) {
24745
25066
  }
24746
25067
  return s0;
24747
25068
  }
25069
+ function peg$parseHighlightColor() {
25070
+ let s0;
25071
+ if (input.substr(peg$currPos, 6) === peg$c124) {
25072
+ s0 = peg$c124;
25073
+ peg$currPos += 6;
25074
+ } else {
25075
+ s0 = peg$FAILED;
25076
+ if (peg$silentFails === 0) {
25077
+ peg$fail(peg$e128);
25078
+ }
25079
+ }
25080
+ if (s0 === peg$FAILED) {
25081
+ if (input.substr(peg$currPos, 6) === peg$c132) {
25082
+ s0 = peg$c132;
25083
+ peg$currPos += 6;
25084
+ } else {
25085
+ s0 = peg$FAILED;
25086
+ if (peg$silentFails === 0) {
25087
+ peg$fail(peg$e136);
25088
+ }
25089
+ }
25090
+ if (s0 === peg$FAILED) {
25091
+ if (input.substr(peg$currPos, 5) === peg$c118) {
25092
+ s0 = peg$c118;
25093
+ peg$currPos += 5;
25094
+ } else {
25095
+ s0 = peg$FAILED;
25096
+ if (peg$silentFails === 0) {
25097
+ peg$fail(peg$e122);
25098
+ }
25099
+ }
25100
+ if (s0 === peg$FAILED) {
25101
+ if (input.substr(peg$currPos, 4) === peg$c112) {
25102
+ s0 = peg$c112;
25103
+ peg$currPos += 4;
25104
+ } else {
25105
+ s0 = peg$FAILED;
25106
+ if (peg$silentFails === 0) {
25107
+ peg$fail(peg$e116);
25108
+ }
25109
+ }
25110
+ if (s0 === peg$FAILED) {
25111
+ if (input.substr(peg$currPos, 6) === peg$c126) {
25112
+ s0 = peg$c126;
25113
+ peg$currPos += 6;
25114
+ } else {
25115
+ s0 = peg$FAILED;
25116
+ if (peg$silentFails === 0) {
25117
+ peg$fail(peg$e130);
25118
+ }
25119
+ }
25120
+ if (s0 === peg$FAILED) {
25121
+ if (input.substr(peg$currPos, 4) === peg$c125) {
25122
+ s0 = peg$c125;
25123
+ peg$currPos += 4;
25124
+ } else {
25125
+ s0 = peg$FAILED;
25126
+ if (peg$silentFails === 0) {
25127
+ peg$fail(peg$e129);
25128
+ }
25129
+ }
25130
+ if (s0 === peg$FAILED) {
25131
+ if (input.substr(peg$currPos, 5) === peg$c113) {
25132
+ s0 = peg$c113;
25133
+ peg$currPos += 5;
25134
+ } else {
25135
+ s0 = peg$FAILED;
25136
+ if (peg$silentFails === 0) {
25137
+ peg$fail(peg$e117);
25138
+ }
25139
+ }
25140
+ if (s0 === peg$FAILED) {
25141
+ if (input.substr(peg$currPos, 5) === peg$c131) {
25142
+ s0 = peg$c131;
25143
+ peg$currPos += 5;
25144
+ } else {
25145
+ s0 = peg$FAILED;
25146
+ if (peg$silentFails === 0) {
25147
+ peg$fail(peg$e135);
25148
+ }
25149
+ }
25150
+ if (s0 === peg$FAILED) {
25151
+ if (input.substr(peg$currPos, 5) === peg$c111) {
25152
+ s0 = peg$c111;
25153
+ peg$currPos += 5;
25154
+ } else {
25155
+ s0 = peg$FAILED;
25156
+ if (peg$silentFails === 0) {
25157
+ peg$fail(peg$e115);
25158
+ }
25159
+ }
25160
+ if (s0 === peg$FAILED) {
25161
+ if (input.substr(peg$currPos, 4) === peg$c116) {
25162
+ s0 = peg$c116;
25163
+ peg$currPos += 4;
25164
+ } else {
25165
+ s0 = peg$FAILED;
25166
+ if (peg$silentFails === 0) {
25167
+ peg$fail(peg$e120);
25168
+ }
25169
+ }
25170
+ }
25171
+ }
25172
+ }
25173
+ }
25174
+ }
25175
+ }
25176
+ }
25177
+ }
25178
+ }
25179
+ return s0;
25180
+ }
24748
25181
  function peg$parsebitmarkMinusMinus() {
24749
25182
  let s0, s1;
24750
25183
  peg$silentFails++;
24751
25184
  s0 = peg$currPos;
24752
25185
  s1 = peg$parsebitmarkMinusMinusString();
24753
25186
  peg$savedPos = s0;
24754
- s1 = peg$f91(s1);
25187
+ s1 = peg$f92(s1);
24755
25188
  s0 = s1;
24756
25189
  peg$silentFails--;
24757
25190
  return s0;
@@ -24777,7 +25210,7 @@ function peg$parse(input, options) {
24777
25210
  }
24778
25211
  }
24779
25212
  peg$savedPos = s0;
24780
- s0 = peg$f92(s1, s2);
25213
+ s0 = peg$f93(s1, s2);
24781
25214
  peg$silentFails--;
24782
25215
  return s0;
24783
25216
  }
@@ -24787,7 +25220,7 @@ function peg$parse(input, options) {
24787
25220
  s1 = peg$parseNL();
24788
25221
  if (s1 !== peg$FAILED) {
24789
25222
  peg$savedPos = s0;
24790
- s1 = peg$f93();
25223
+ s1 = peg$f94();
24791
25224
  }
24792
25225
  s0 = s1;
24793
25226
  if (s0 === peg$FAILED) {
@@ -24916,7 +25349,7 @@ function peg$parse(input, options) {
24916
25349
  }
24917
25350
  if (s1 !== peg$FAILED) {
24918
25351
  peg$savedPos = s0;
24919
- s1 = peg$f94(s1);
25352
+ s1 = peg$f95(s1);
24920
25353
  }
24921
25354
  s0 = s1;
24922
25355
  }
@@ -24925,12 +25358,12 @@ function peg$parse(input, options) {
24925
25358
  function peg$parseBoldHalfTag() {
24926
25359
  let s0;
24927
25360
  if (input.charCodeAt(peg$currPos) === 42) {
24928
- s0 = peg$c132;
25361
+ s0 = peg$c133;
24929
25362
  peg$currPos++;
24930
25363
  } else {
24931
25364
  s0 = peg$FAILED;
24932
25365
  if (peg$silentFails === 0) {
24933
- peg$fail(peg$e136);
25366
+ peg$fail(peg$e137);
24934
25367
  }
24935
25368
  }
24936
25369
  return s0;
@@ -24938,12 +25371,12 @@ function peg$parse(input, options) {
24938
25371
  function peg$parseItalicHalfTag() {
24939
25372
  let s0;
24940
25373
  if (input.charCodeAt(peg$currPos) === 95) {
24941
- s0 = peg$c133;
25374
+ s0 = peg$c134;
24942
25375
  peg$currPos++;
24943
25376
  } else {
24944
25377
  s0 = peg$FAILED;
24945
25378
  if (peg$silentFails === 0) {
24946
- peg$fail(peg$e137);
25379
+ peg$fail(peg$e138);
24947
25380
  }
24948
25381
  }
24949
25382
  return s0;
@@ -24951,12 +25384,12 @@ function peg$parse(input, options) {
24951
25384
  function peg$parseLightHalfTag() {
24952
25385
  let s0;
24953
25386
  if (input.charCodeAt(peg$currPos) === 96) {
24954
- s0 = peg$c134;
25387
+ s0 = peg$c135;
24955
25388
  peg$currPos++;
24956
25389
  } else {
24957
25390
  s0 = peg$FAILED;
24958
25391
  if (peg$silentFails === 0) {
24959
- peg$fail(peg$e138);
25392
+ peg$fail(peg$e139);
24960
25393
  }
24961
25394
  }
24962
25395
  return s0;
@@ -24964,12 +25397,12 @@ function peg$parse(input, options) {
24964
25397
  function peg$parseHighlightHalfTag() {
24965
25398
  let s0;
24966
25399
  if (input.charCodeAt(peg$currPos) === 33) {
24967
- s0 = peg$c135;
25400
+ s0 = peg$c136;
24968
25401
  peg$currPos++;
24969
25402
  } else {
24970
25403
  s0 = peg$FAILED;
24971
25404
  if (peg$silentFails === 0) {
24972
- peg$fail(peg$e139);
25405
+ peg$fail(peg$e140);
24973
25406
  }
24974
25407
  }
24975
25408
  return s0;
@@ -25052,13 +25485,13 @@ function peg$parse(input, options) {
25052
25485
  }
25053
25486
  function peg$parseBodyBitOpenTag() {
25054
25487
  let s0;
25055
- if (input.substr(peg$currPos, 2) === peg$c136) {
25056
- s0 = peg$c136;
25488
+ if (input.substr(peg$currPos, 2) === peg$c137) {
25489
+ s0 = peg$c137;
25057
25490
  peg$currPos += 2;
25058
25491
  } else {
25059
25492
  s0 = peg$FAILED;
25060
25493
  if (peg$silentFails === 0) {
25061
- peg$fail(peg$e140);
25494
+ peg$fail(peg$e141);
25062
25495
  }
25063
25496
  }
25064
25497
  return s0;
@@ -25066,12 +25499,12 @@ function peg$parse(input, options) {
25066
25499
  function peg$parseBodyBitCloseTag() {
25067
25500
  let s0;
25068
25501
  if (input.charCodeAt(peg$currPos) === 93) {
25069
- s0 = peg$c137;
25502
+ s0 = peg$c138;
25070
25503
  peg$currPos++;
25071
25504
  } else {
25072
25505
  s0 = peg$FAILED;
25073
25506
  if (peg$silentFails === 0) {
25074
- peg$fail(peg$e141);
25507
+ peg$fail(peg$e142);
25075
25508
  }
25076
25509
  }
25077
25510
  return s0;
@@ -25117,7 +25550,7 @@ function peg$parse(input, options) {
25117
25550
  s3 = peg$parseBodyBitCloseTag();
25118
25551
  if (s3 !== peg$FAILED) {
25119
25552
  peg$savedPos = s0;
25120
- s0 = peg$f95(s2);
25553
+ s0 = peg$f96(s2);
25121
25554
  } else {
25122
25555
  peg$currPos = s0;
25123
25556
  s0 = peg$FAILED;
@@ -25207,7 +25640,7 @@ function peg$parse(input, options) {
25207
25640
  s3 = peg$parseBoldTag();
25208
25641
  if (s3 !== peg$FAILED) {
25209
25642
  peg$savedPos = s0;
25210
- s0 = peg$f96(s2);
25643
+ s0 = peg$f97(s2);
25211
25644
  } else {
25212
25645
  peg$currPos = s0;
25213
25646
  s0 = peg$FAILED;
@@ -25293,7 +25726,7 @@ function peg$parse(input, options) {
25293
25726
  s3 = peg$parseItalicTag();
25294
25727
  if (s3 !== peg$FAILED) {
25295
25728
  peg$savedPos = s0;
25296
- s0 = peg$f97(s2);
25729
+ s0 = peg$f98(s2);
25297
25730
  } else {
25298
25731
  peg$currPos = s0;
25299
25732
  s0 = peg$FAILED;
@@ -25379,7 +25812,7 @@ function peg$parse(input, options) {
25379
25812
  s3 = peg$parseLightTag();
25380
25813
  if (s3 !== peg$FAILED) {
25381
25814
  peg$savedPos = s0;
25382
- s0 = peg$f98(s2);
25815
+ s0 = peg$f99(s2);
25383
25816
  } else {
25384
25817
  peg$currPos = s0;
25385
25818
  s0 = peg$FAILED;
@@ -25465,7 +25898,7 @@ function peg$parse(input, options) {
25465
25898
  s3 = peg$parseHighlightTag();
25466
25899
  if (s3 !== peg$FAILED) {
25467
25900
  peg$savedPos = s0;
25468
- s0 = peg$f99(s2);
25901
+ s0 = peg$f100(s2);
25469
25902
  } else {
25470
25903
  peg$currPos = s0;
25471
25904
  s0 = peg$FAILED;
@@ -25550,22 +25983,22 @@ function peg$parse(input, options) {
25550
25983
  let s0, s1;
25551
25984
  peg$silentFails++;
25552
25985
  if (input.charCodeAt(peg$currPos) === 10) {
25553
- s0 = peg$c138;
25986
+ s0 = peg$c139;
25554
25987
  peg$currPos++;
25555
25988
  } else {
25556
25989
  s0 = peg$FAILED;
25557
25990
  if (peg$silentFails === 0) {
25558
- peg$fail(peg$e143);
25991
+ peg$fail(peg$e144);
25559
25992
  }
25560
25993
  }
25561
25994
  if (s0 === peg$FAILED) {
25562
- if (input.substr(peg$currPos, 2) === peg$c139) {
25563
- s0 = peg$c139;
25995
+ if (input.substr(peg$currPos, 2) === peg$c140) {
25996
+ s0 = peg$c140;
25564
25997
  peg$currPos += 2;
25565
25998
  } else {
25566
25999
  s0 = peg$FAILED;
25567
26000
  if (peg$silentFails === 0) {
25568
- peg$fail(peg$e144);
26001
+ peg$fail(peg$e145);
25569
26002
  }
25570
26003
  }
25571
26004
  if (s0 === peg$FAILED) {
@@ -25575,7 +26008,7 @@ function peg$parse(input, options) {
25575
26008
  } else {
25576
26009
  s0 = peg$FAILED;
25577
26010
  if (peg$silentFails === 0) {
25578
- peg$fail(peg$e145);
26011
+ peg$fail(peg$e146);
25579
26012
  }
25580
26013
  }
25581
26014
  }
@@ -25584,7 +26017,7 @@ function peg$parse(input, options) {
25584
26017
  if (s0 === peg$FAILED) {
25585
26018
  s1 = peg$FAILED;
25586
26019
  if (peg$silentFails === 0) {
25587
- peg$fail(peg$e142);
26020
+ peg$fail(peg$e143);
25588
26021
  }
25589
26022
  }
25590
26023
  return s0;
@@ -25597,7 +26030,7 @@ function peg$parse(input, options) {
25597
26030
  } else {
25598
26031
  s0 = peg$FAILED;
25599
26032
  if (peg$silentFails === 0) {
25600
- peg$fail(peg$e146);
26033
+ peg$fail(peg$e147);
25601
26034
  }
25602
26035
  }
25603
26036
  return s0;
@@ -25631,35 +26064,35 @@ function peg$parse(input, options) {
25631
26064
  let s0, s1, s2, s3, s4, s5, s6, s7, s8;
25632
26065
  s0 = peg$currPos;
25633
26066
  s1 = peg$currPos;
25634
- if (input.substr(peg$currPos, 4) === peg$c140) {
25635
- s2 = peg$c140;
26067
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26068
+ s2 = peg$c141;
25636
26069
  peg$currPos += 4;
25637
26070
  } else {
25638
26071
  s2 = peg$FAILED;
25639
26072
  if (peg$silentFails === 0) {
25640
- peg$fail(peg$e147);
26073
+ peg$fail(peg$e148);
25641
26074
  }
25642
26075
  }
25643
26076
  if (s2 !== peg$FAILED) {
25644
26077
  if (input.charCodeAt(peg$currPos) === 115) {
25645
- s3 = peg$c141;
26078
+ s3 = peg$c142;
25646
26079
  peg$currPos++;
25647
26080
  } else {
25648
26081
  s3 = peg$FAILED;
25649
26082
  if (peg$silentFails === 0) {
25650
- peg$fail(peg$e148);
26083
+ peg$fail(peg$e149);
25651
26084
  }
25652
26085
  }
25653
26086
  if (s3 === peg$FAILED) {
25654
26087
  s3 = null;
25655
26088
  }
25656
- if (input.substr(peg$currPos, 3) === peg$c142) {
25657
- s4 = peg$c142;
26089
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26090
+ s4 = peg$c143;
25658
26091
  peg$currPos += 3;
25659
26092
  } else {
25660
26093
  s4 = peg$FAILED;
25661
26094
  if (peg$silentFails === 0) {
25662
- peg$fail(peg$e149);
26095
+ peg$fail(peg$e150);
25663
26096
  }
25664
26097
  }
25665
26098
  if (s4 !== peg$FAILED) {
@@ -25737,35 +26170,35 @@ function peg$parse(input, options) {
25737
26170
  s0 = peg$currPos;
25738
26171
  s1 = peg$currPos;
25739
26172
  s2 = peg$currPos;
25740
- if (input.substr(peg$currPos, 4) === peg$c140) {
25741
- s3 = peg$c140;
26173
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26174
+ s3 = peg$c141;
25742
26175
  peg$currPos += 4;
25743
26176
  } else {
25744
26177
  s3 = peg$FAILED;
25745
26178
  if (peg$silentFails === 0) {
25746
- peg$fail(peg$e147);
26179
+ peg$fail(peg$e148);
25747
26180
  }
25748
26181
  }
25749
26182
  if (s3 !== peg$FAILED) {
25750
26183
  if (input.charCodeAt(peg$currPos) === 115) {
25751
- s4 = peg$c141;
26184
+ s4 = peg$c142;
25752
26185
  peg$currPos++;
25753
26186
  } else {
25754
26187
  s4 = peg$FAILED;
25755
26188
  if (peg$silentFails === 0) {
25756
- peg$fail(peg$e148);
26189
+ peg$fail(peg$e149);
25757
26190
  }
25758
26191
  }
25759
26192
  if (s4 === peg$FAILED) {
25760
26193
  s4 = null;
25761
26194
  }
25762
- if (input.substr(peg$currPos, 3) === peg$c142) {
25763
- s5 = peg$c142;
26195
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26196
+ s5 = peg$c143;
25764
26197
  peg$currPos += 3;
25765
26198
  } else {
25766
26199
  s5 = peg$FAILED;
25767
26200
  if (peg$silentFails === 0) {
25768
- peg$fail(peg$e149);
26201
+ peg$fail(peg$e150);
25769
26202
  }
25770
26203
  }
25771
26204
  if (s5 !== peg$FAILED) {
@@ -25780,13 +26213,13 @@ function peg$parse(input, options) {
25780
26213
  s2 = peg$FAILED;
25781
26214
  }
25782
26215
  if (s2 === peg$FAILED) {
25783
- if (input.substr(peg$currPos, 7) === peg$c143) {
25784
- s2 = peg$c143;
26216
+ if (input.substr(peg$currPos, 7) === peg$c144) {
26217
+ s2 = peg$c144;
25785
26218
  peg$currPos += 7;
25786
26219
  } else {
25787
26220
  s2 = peg$FAILED;
25788
26221
  if (peg$silentFails === 0) {
25789
- peg$fail(peg$e150);
26222
+ peg$fail(peg$e151);
25790
26223
  }
25791
26224
  }
25792
26225
  }
@@ -25851,7 +26284,7 @@ function peg$parse(input, options) {
25851
26284
  }
25852
26285
  s2 = input.substring(s2, peg$currPos);
25853
26286
  peg$savedPos = s0;
25854
- s0 = peg$f100(s1, s2);
26287
+ s0 = peg$f101(s1, s2);
25855
26288
  } else {
25856
26289
  peg$currPos = s0;
25857
26290
  s0 = peg$FAILED;
@@ -25866,12 +26299,13 @@ function peg$parse(input, options) {
25866
26299
  } else {
25867
26300
  s0 = peg$FAILED;
25868
26301
  if (peg$silentFails === 0) {
25869
- peg$fail(peg$e151);
26302
+ peg$fail(peg$e152);
25870
26303
  }
25871
26304
  }
25872
26305
  return s0;
25873
26306
  }
25874
26307
  var indentStack = [], indent = "";
26308
+ input = input.replace(/\s+$/, "");
25875
26309
  input = input.trimStart();
25876
26310
  peg$result = peg$startRuleFunction();
25877
26311
  const peg$success = peg$result !== peg$FAILED && peg$currPos === input.length;
@@ -44209,6 +44643,8 @@ var ConfigBuilder = class {
44209
44643
  format = "bitmark";
44210
44644
  } else if (tag.format === TagFormat.number) {
44211
44645
  format = "number";
44646
+ } else if (tag.format === TagFormat.coordinates) {
44647
+ format = "coordinates";
44212
44648
  }
44213
44649
  } else if (tagType === BitTagConfigKeyType.resource) {
44214
44650
  format = "string";