@gmb/bitmark-parser-generator 5.31.1 → 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
  }
@@ -5084,18 +5089,16 @@ var GROUPS = {
5084
5089
  description: "Item, lead, page number, margin number, instruction and hint tags"
5085
5090
  },
5086
5091
  {
5087
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5088
- // `@example` from the bit header marks EVERY choice with
5089
- // `isExample: true` (matches BPG output), but only the
5090
- // FIRST correct choice gets `example: true` (BPG
5091
- // `fillBooleanExample(..., firstCorrectOnly=true)`).
5092
- //
5093
- // Two `@absent` rules, picked first-match-wins:
5094
- // 1. Verbose form gated on `@parent.isCorrect=true` with
5095
- // `maxEmits:1` fires once for the first correct.
5096
- // 2. Plain `@absent` fires on every remaining entry
5097
- // (subsequent corrects and all incorrects), emitting
5098
- // `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).
5099
5102
  // The `serialize_cards` cascade-counter scope holds the cap
5100
5103
  // across the whole cardset.
5101
5104
  // @card scope-shift writes choice-container isExample (e.g.
@@ -5123,13 +5126,6 @@ var GROUPS = {
5123
5126
  "@card": { isExample: true }
5124
5127
  }
5125
5128
  },
5126
- {
5127
- "@absent": {
5128
- isExample: true,
5129
- "@bit": { isExample: true },
5130
- "@card": { isExample: true }
5131
- }
5132
- },
5133
5129
  {
5134
5130
  isExample: true,
5135
5131
  example: "$",
@@ -5171,11 +5167,13 @@ var GROUPS = {
5171
5167
  description: "Item, lead, page number, margin number, instruction and hint tags"
5172
5168
  },
5173
5169
  {
5174
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5175
- // `@example` on a `-` (incorrect choice) emits
5176
- // `isExample: true` only — no `example` (BPG fixtures show
5177
- // `isExample` on every choice, but `example` only on the
5178
- // 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.
5179
5177
  // @card scope-shift writes choice-container isExample.
5180
5178
  key: ConfigKey.property_example,
5181
5179
  jsonKey: "example",
@@ -5188,13 +5186,6 @@ var GROUPS = {
5188
5186
  "@card": { isExample: true }
5189
5187
  }
5190
5188
  },
5191
- {
5192
- "@absent": {
5193
- isExample: true,
5194
- "@bit": { isExample: true },
5195
- "@card": { isExample: true }
5196
- }
5197
- },
5198
5189
  {
5199
5190
  isExample: true,
5200
5191
  example: "$",
@@ -5202,7 +5193,7 @@ var GROUPS = {
5202
5193
  "@card": { isExample: true }
5203
5194
  }
5204
5195
  ],
5205
- 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)",
5206
5197
  format: TagFormat.boolean,
5207
5198
  nullable: true
5208
5199
  }
@@ -7261,7 +7252,9 @@ var BITS = {
7261
7252
  description: "Common tags for quiz bits"
7262
7253
  },
7263
7254
  {
7264
- exportJsonKey: { title: "$" },
7255
+ maxCount: 2,
7256
+ jsonKey: "title|multi(count=2, key=subtitle)",
7257
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7265
7258
  key: ConfigKey.tag_title,
7266
7259
  description: "The title of the flashcard quiz"
7267
7260
  },
@@ -7366,7 +7359,9 @@ var BITS = {
7366
7359
  description: "Article bit, used for articles / paragraphs",
7367
7360
  tags: [
7368
7361
  {
7369
- exportJsonKey: { title: "$" },
7362
+ maxCount: 2,
7363
+ jsonKey: "title|multi(count=2, key=subtitle)",
7364
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7370
7365
  key: ConfigKey.tag_title,
7371
7366
  description: "The title of the article"
7372
7367
  }
@@ -9332,7 +9327,9 @@ var BITS = {
9332
9327
  description: "Example bit, used to provide examples in articles or books",
9333
9328
  tags: [
9334
9329
  {
9335
- exportJsonKey: { title: "$" },
9330
+ maxCount: 2,
9331
+ jsonKey: "title|multi(count=2, key=subtitle)",
9332
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
9336
9333
  key: ConfigKey.tag_title,
9337
9334
  description: "The title of the example"
9338
9335
  },
@@ -11933,7 +11930,9 @@ var BITS = {
11933
11930
  description: "Page bit, used to create pages in articles or books",
11934
11931
  tags: [
11935
11932
  {
11936
- exportJsonKey: { title: "$" },
11933
+ maxCount: 2,
11934
+ jsonKey: "title|multi(count=2, key=subtitle)",
11935
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
11937
11936
  key: ConfigKey.tag_title,
11938
11937
  description: "Title of the page, used to display the page title"
11939
11938
  },
@@ -12391,7 +12390,9 @@ var BITS = {
12391
12390
  description: "Review note bit, used to create review notes in articles or books",
12392
12391
  tags: [
12393
12392
  {
12394
- exportJsonKey: { title: "$" },
12393
+ maxCount: 2,
12394
+ jsonKey: "title|multi(count=2, key=subtitle)",
12395
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
12395
12396
  key: ConfigKey.tag_title,
12396
12397
  description: "Title of the review note, used to display the note title"
12397
12398
  },
@@ -13977,7 +13978,7 @@ var instance2 = new Config();
13977
13978
  // src/generated/package_info.ts
13978
13979
  var PACKAGE_INFO = {
13979
13980
  "name": "@gmb/bitmark-parser-generator",
13980
- "version": "5.31.1",
13981
+ "version": "5.32.0",
13981
13982
  "author": "Get More Brain Ltd",
13982
13983
  "license": "ISC",
13983
13984
  "description": "A bitmark parser and generator using Peggy.js"
@@ -14252,6 +14253,7 @@ var TextMarkType = {
14252
14253
  del: "del",
14253
14254
  underline: "underline",
14254
14255
  doubleUnderline: "doubleUnderline",
14256
+ smallcaps: "smallcaps",
14255
14257
  circle: "circle",
14256
14258
  languageEmRed: "languageEmRed",
14257
14259
  languageEmOrange: "languageEmOrange",
@@ -14283,7 +14285,10 @@ var TextMarkType = {
14283
14285
  code: "code",
14284
14286
  timer: "timer",
14285
14287
  duration: "duration",
14288
+ // legacy: no longer produced by the parser (>= 8.41.1), accepted as generator input
14286
14289
  color: "color",
14290
+ // legacy: no longer produced by the parser (>= 8.41.1, now textStyle), accepted as generator input
14291
+ textStyle: "textStyle",
14287
14292
  colorPicker: "colorPicker",
14288
14293
  comment: "comment"
14289
14294
  };
@@ -15868,6 +15873,7 @@ var INLINE_MARK_TYPES = [
15868
15873
  TextMarkType.del,
15869
15874
  TextMarkType.underline,
15870
15875
  TextMarkType.doubleUnderline,
15876
+ TextMarkType.smallcaps,
15871
15877
  TextMarkType.circle,
15872
15878
  TextMarkType.languageEmRed,
15873
15879
  TextMarkType.languageEmOrange,
@@ -15898,11 +15904,24 @@ var INLINE_MARK_TYPES = [
15898
15904
  TextMarkType.var,
15899
15905
  TextMarkType.code,
15900
15906
  TextMarkType.timer,
15901
- TextMarkType.duration,
15902
15907
  TextMarkType.color,
15908
+ // legacy input, written as color: (same as textStyle)
15909
+ TextMarkType.textStyle,
15903
15910
  TextMarkType.colorPicker,
15904
15911
  TextMarkType.comment
15905
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
+ ];
15906
15925
  var INDENTATION_REGEX = new RegExp(/(\n|\r\n)/, "g");
15907
15926
  var LINK_REGEX = new RegExp(/https?:\/\/|mailto:(.*)/, "g");
15908
15927
  var LINK_BREAKSCAPE_REGEX = new RegExp(/\]/, "g");
@@ -16466,14 +16485,16 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16466
16485
  this.writeMarkTextWrapper(INLINE_MARK);
16467
16486
  return;
16468
16487
  }
16469
- const singleMark = node.marks.length === 1 && forceSingleMark;
16470
- 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(
16471
16492
  (acc, mark) => {
16472
16493
  if (acc) return acc;
16473
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16494
+ if (this.isStandardMark(mark)) {
16474
16495
  if (singleMark) return STANDARD_MARKS[mark.type];
16475
16496
  return INLINE_MARK;
16476
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16497
+ } else if (this.isInlineMark(mark)) {
16477
16498
  return INLINE_MARK;
16478
16499
  } else {
16479
16500
  }
@@ -16488,8 +16509,8 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16488
16509
  this.writeMarkTextWrapper(markStartEnd);
16489
16510
  }
16490
16511
  if (stage == Stage.between) {
16491
- for (const mark of node.marks) {
16492
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16512
+ for (const mark of marks) {
16513
+ if (this.isStandardMark(mark)) {
16493
16514
  if (!singleMark) {
16494
16515
  this.writeInlineMarkStartEnd();
16495
16516
  this.writeInlineMark(mark);
@@ -16518,7 +16539,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16518
16539
  } else if (TextMarkType.symbol === mark.type) {
16519
16540
  this.writeInlineMarkStartEnd();
16520
16541
  this.writeSymbolMark(mark);
16521
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16542
+ } else if (this.isInlineMark(mark)) {
16522
16543
  this.writeInlineMarkStartEnd();
16523
16544
  this.writeInlineMark(mark);
16524
16545
  } else {
@@ -16527,12 +16548,12 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16527
16548
  }
16528
16549
  if (stage == Stage.exit) {
16529
16550
  let inlineMarkWritten = false;
16530
- for (const mark of node.marks) {
16531
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16551
+ for (const mark of marks) {
16552
+ if (this.isStandardMark(mark)) {
16532
16553
  if (!singleMark) {
16533
16554
  inlineMarkWritten = true;
16534
16555
  }
16535
- } 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)) {
16536
16557
  inlineMarkWritten = true;
16537
16558
  } else {
16538
16559
  }
@@ -16613,8 +16634,15 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16613
16634
  if (node.attrs == null || !node.attrs.src) return;
16614
16635
  const attrs = node.attrs;
16615
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
+ }
16616
16644
  const mediaAttrs = this.getMediaAttrs(inlineImage ? "imageInline" : "image", attrs, {
16617
- ignoreAttributes: inlineImage ? /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]) : void 0
16645
+ ignoreAttributes
16618
16646
  });
16619
16647
  let s = "";
16620
16648
  if (inlineImage) {
@@ -16644,16 +16672,87 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16644
16672
  if (s) this.write(s);
16645
16673
  }
16646
16674
  writeInlineMark(mark) {
16647
- let s = `${mark.type}`;
16648
- if (mark.attrs) {
16649
- for (const [k, v] of Object.entries(mark.attrs)) {
16650
- if (k === "language" && v !== "plain text" || k === "color" || k === "propertyRef" || k === "name" || k === "duration") {
16651
- 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
+ }
16652
16696
  }
16653
16697
  }
16654
16698
  }
16655
16699
  this.write(s);
16656
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
+ }
16657
16756
  writeCommentMark(mark) {
16658
16757
  const comment = mark.comment || "";
16659
16758
  const s = `#${comment}`;
@@ -16858,7 +16957,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16858
16957
  };
16859
16958
 
16860
16959
  // src/generated/parser/text/text-peggy-parser.js
16861
- var VERSION = "8.37.3";
16960
+ var VERSION = "8.41.1";
16862
16961
  function unbreakscape(str) {
16863
16962
  if (typeof str !== "string") return null;
16864
16963
  return instance3.unbreakscape(str);
@@ -17073,87 +17172,88 @@ function peg$parse(input, options) {
17073
17172
  const peg$c60 = "var:";
17074
17173
  const peg$c61 = "code:";
17075
17174
  const peg$c62 = "timer";
17076
- const peg$c63 = "timer:";
17077
- const peg$c64 = "duration:";
17078
- const peg$c65 = "P";
17079
- const peg$c66 = "color:";
17080
- const peg$c67 = "colorPicker:";
17081
- const peg$c68 = "|\u25BA";
17082
- const peg$c69 = "bold";
17083
- const peg$c70 = "italic";
17084
- const peg$c71 = "light";
17085
- const peg$c72 = "highlightOrange";
17086
- const peg$c73 = "highlightYellow";
17087
- const peg$c74 = "highlightGreen";
17088
- const peg$c75 = "highlightBlue";
17089
- const peg$c76 = "highlightPurple";
17090
- const peg$c77 = "highlightPink";
17091
- const peg$c78 = "highlightBrown";
17092
- const peg$c79 = "highlightBlack";
17093
- const peg$c80 = "highlightWhite";
17094
- const peg$c81 = "highlightGray";
17095
- const peg$c82 = "highlight";
17096
- const peg$c83 = "strike";
17097
- const peg$c84 = "subscript";
17098
- const peg$c85 = "superscript";
17099
- const peg$c86 = "ins";
17100
- const peg$c87 = "del";
17101
- const peg$c88 = "underline";
17102
- const peg$c89 = "doubleUnderline";
17103
- const peg$c90 = "circle";
17104
- const peg$c91 = "languageEmRed";
17105
- const peg$c92 = "languageEmOrange";
17106
- const peg$c93 = "languageEmYellow";
17107
- const peg$c94 = "languageEmGreen";
17108
- const peg$c95 = "languageEmBlue";
17109
- const peg$c96 = "languageEmPurple";
17110
- const peg$c97 = "languageEmPink";
17111
- const peg$c98 = "languageEmBrown";
17112
- const peg$c99 = "languageEmBlack";
17113
- const peg$c100 = "languageEmWhite";
17114
- const peg$c101 = "languageEmGray";
17115
- const peg$c102 = "languageEm";
17116
- const peg$c103 = "userUnderline";
17117
- const peg$c104 = "userDoubleUnderline";
17118
- const peg$c105 = "userStrike";
17119
- const peg$c106 = "userCircle";
17120
- const peg$c107 = "userHighlight";
17121
- const peg$c108 = "notranslate";
17122
- const peg$c109 = "aqua";
17123
- const peg$c110 = "black";
17124
- const peg$c111 = "blue";
17125
- const peg$c112 = "brown";
17126
- const peg$c113 = "fuchsia";
17127
- const peg$c114 = "lightgrey";
17128
- const peg$c115 = "gray";
17129
- const peg$c116 = "darkgray";
17130
- const peg$c117 = "green";
17131
- const peg$c118 = "lime";
17132
- const peg$c119 = "magenta";
17133
- const peg$c120 = "maroon";
17134
- const peg$c121 = "navy";
17135
- const peg$c122 = "olive";
17136
- const peg$c123 = "orange";
17137
- const peg$c124 = "pink";
17138
- const peg$c125 = "purple";
17139
- const peg$c126 = "red";
17140
- const peg$c127 = "silver";
17141
- const peg$c128 = "teal";
17142
- const peg$c129 = "violet";
17143
- const peg$c130 = "white";
17144
- const peg$c131 = "yellow";
17145
- const peg$c132 = "*";
17146
- const peg$c133 = "_";
17147
- const peg$c134 = "`";
17148
- const peg$c135 = "!";
17149
- const peg$c136 = "[!";
17150
- const peg$c137 = "]";
17151
- const peg$c138 = "\n";
17152
- const peg$c139 = "\r\n";
17153
- const peg$c140 = "http";
17154
- const peg$c141 = "s";
17155
- const peg$c142 = "://";
17156
- 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:";
17157
17257
  const peg$r0 = /^[ \t]/;
17158
17258
  const peg$r1 = /^[0-9]/;
17159
17259
  const peg$r2 = /^[\r\u2028-\u2029]/;
@@ -17226,91 +17326,92 @@ function peg$parse(input, options) {
17226
17326
  const peg$e64 = peg$literalExpectation("var:", false);
17227
17327
  const peg$e65 = peg$literalExpectation("code:", false);
17228
17328
  const peg$e66 = peg$literalExpectation("timer", false);
17229
- const peg$e67 = peg$literalExpectation("timer:", false);
17230
- const peg$e68 = peg$literalExpectation("duration:", false);
17231
- const peg$e69 = peg$literalExpectation("P", false);
17232
- const peg$e70 = peg$literalExpectation("color:", false);
17233
- const peg$e71 = peg$literalExpectation("colorPicker:", false);
17234
- const peg$e72 = peg$literalExpectation("|\u25BA", false);
17235
- const peg$e73 = peg$literalExpectation("bold", false);
17236
- const peg$e74 = peg$literalExpectation("italic", false);
17237
- const peg$e75 = peg$literalExpectation("light", false);
17238
- const peg$e76 = peg$literalExpectation("highlightOrange", false);
17239
- const peg$e77 = peg$literalExpectation("highlightYellow", false);
17240
- const peg$e78 = peg$literalExpectation("highlightGreen", false);
17241
- const peg$e79 = peg$literalExpectation("highlightBlue", false);
17242
- const peg$e80 = peg$literalExpectation("highlightPurple", false);
17243
- const peg$e81 = peg$literalExpectation("highlightPink", false);
17244
- const peg$e82 = peg$literalExpectation("highlightBrown", false);
17245
- const peg$e83 = peg$literalExpectation("highlightBlack", false);
17246
- const peg$e84 = peg$literalExpectation("highlightWhite", false);
17247
- const peg$e85 = peg$literalExpectation("highlightGray", false);
17248
- const peg$e86 = peg$literalExpectation("highlight", false);
17249
- const peg$e87 = peg$literalExpectation("strike", false);
17250
- const peg$e88 = peg$literalExpectation("subscript", false);
17251
- const peg$e89 = peg$literalExpectation("superscript", false);
17252
- const peg$e90 = peg$literalExpectation("ins", false);
17253
- const peg$e91 = peg$literalExpectation("del", false);
17254
- const peg$e92 = peg$literalExpectation("underline", false);
17255
- const peg$e93 = peg$literalExpectation("doubleUnderline", false);
17256
- const peg$e94 = peg$literalExpectation("circle", false);
17257
- const peg$e95 = peg$literalExpectation("languageEmRed", false);
17258
- const peg$e96 = peg$literalExpectation("languageEmOrange", false);
17259
- const peg$e97 = peg$literalExpectation("languageEmYellow", false);
17260
- const peg$e98 = peg$literalExpectation("languageEmGreen", false);
17261
- const peg$e99 = peg$literalExpectation("languageEmBlue", false);
17262
- const peg$e100 = peg$literalExpectation("languageEmPurple", false);
17263
- const peg$e101 = peg$literalExpectation("languageEmPink", false);
17264
- const peg$e102 = peg$literalExpectation("languageEmBrown", false);
17265
- const peg$e103 = peg$literalExpectation("languageEmBlack", false);
17266
- const peg$e104 = peg$literalExpectation("languageEmWhite", false);
17267
- const peg$e105 = peg$literalExpectation("languageEmGray", false);
17268
- const peg$e106 = peg$literalExpectation("languageEm", false);
17269
- const peg$e107 = peg$literalExpectation("userUnderline", false);
17270
- const peg$e108 = peg$literalExpectation("userDoubleUnderline", false);
17271
- const peg$e109 = peg$literalExpectation("userStrike", false);
17272
- const peg$e110 = peg$literalExpectation("userCircle", false);
17273
- const peg$e111 = peg$literalExpectation("userHighlight", false);
17274
- const peg$e112 = peg$literalExpectation("notranslate", false);
17275
- const peg$e113 = peg$literalExpectation("aqua", false);
17276
- const peg$e114 = peg$literalExpectation("black", false);
17277
- const peg$e115 = peg$literalExpectation("blue", false);
17278
- const peg$e116 = peg$literalExpectation("brown", false);
17279
- const peg$e117 = peg$literalExpectation("fuchsia", false);
17280
- const peg$e118 = peg$literalExpectation("lightgrey", false);
17281
- const peg$e119 = peg$literalExpectation("gray", false);
17282
- const peg$e120 = peg$literalExpectation("darkgray", false);
17283
- const peg$e121 = peg$literalExpectation("green", false);
17284
- const peg$e122 = peg$literalExpectation("lime", false);
17285
- const peg$e123 = peg$literalExpectation("magenta", false);
17286
- const peg$e124 = peg$literalExpectation("maroon", false);
17287
- const peg$e125 = peg$literalExpectation("navy", false);
17288
- const peg$e126 = peg$literalExpectation("olive", false);
17289
- const peg$e127 = peg$literalExpectation("orange", false);
17290
- const peg$e128 = peg$literalExpectation("pink", false);
17291
- const peg$e129 = peg$literalExpectation("purple", false);
17292
- const peg$e130 = peg$literalExpectation("red", false);
17293
- const peg$e131 = peg$literalExpectation("silver", false);
17294
- const peg$e132 = peg$literalExpectation("teal", false);
17295
- const peg$e133 = peg$literalExpectation("violet", false);
17296
- const peg$e134 = peg$literalExpectation("white", false);
17297
- const peg$e135 = peg$literalExpectation("yellow", false);
17298
- const peg$e136 = peg$literalExpectation("*", false);
17299
- const peg$e137 = peg$literalExpectation("_", false);
17300
- const peg$e138 = peg$literalExpectation("`", false);
17301
- const peg$e139 = peg$literalExpectation("!", false);
17302
- const peg$e140 = peg$literalExpectation("[!", false);
17303
- const peg$e141 = peg$literalExpectation("]", false);
17304
- const peg$e142 = peg$otherExpectation("Line Terminator");
17305
- const peg$e143 = peg$literalExpectation("\n", false);
17306
- const peg$e144 = peg$literalExpectation("\r\n", false);
17307
- const peg$e145 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17308
- const peg$e146 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17309
- const peg$e147 = peg$literalExpectation("http", false);
17310
- const peg$e148 = peg$literalExpectation("s", false);
17311
- const peg$e149 = peg$literalExpectation("://", false);
17312
- const peg$e150 = peg$literalExpectation("mailto:", false);
17313
- 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);
17314
17415
  function peg$f0() {
17315
17416
  return VERSION;
17316
17417
  }
@@ -17586,7 +17687,7 @@ function peg$parse(input, options) {
17586
17687
  return { attrs: { formula: unbreakscape(t) }, type: "latex" };
17587
17688
  }
17588
17689
  function peg$f57(alt, u, ch) {
17589
- 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" };
17590
17691
  }
17591
17692
  function peg$f58(t, marks) {
17592
17693
  if (!marks) marks = [];
@@ -17665,59 +17766,62 @@ function peg$parse(input, options) {
17665
17766
  function peg$f82(lang) {
17666
17767
  return { type: "code", attrs: { language: lang.trim().toLowerCase() } };
17667
17768
  }
17668
- function peg$f83() {
17669
- return { type: "timer", attrs: { name: "" } };
17769
+ function peg$f83(d) {
17770
+ return { type: "timer", attrs: { name: "", duration: d.trim() } };
17670
17771
  }
17671
- function peg$f84(str) {
17672
- return { type: "timer", attrs: { name: str.trim() } };
17772
+ function peg$f84(str, d) {
17773
+ return { type: "timer", attrs: { name: str.trim(), duration: d.trim() } };
17673
17774
  }
17674
- function peg$f85(str) {
17675
- return { type: "duration", attrs: { duration: str } };
17775
+ function peg$f85(color) {
17776
+ return { type: "highlight", attrs: { color } };
17676
17777
  }
17677
17778
  function peg$f86(color) {
17678
- return { type: "color", attrs: { color } };
17779
+ return { type: "userHighlight", attrs: { color } };
17679
17780
  }
17680
- function peg$f87(str) {
17781
+ function peg$f87(color) {
17782
+ return { type: "textStyle", attrs: { color } };
17783
+ }
17784
+ function peg$f88(str) {
17681
17785
  return { type: "colorPicker", attrs: { propertyRef: str.trim() } };
17682
17786
  }
17683
- function peg$f88(style) {
17787
+ function peg$f89(style) {
17684
17788
  return { type: style };
17685
17789
  }
17686
- function peg$f89(str) {
17790
+ function peg$f90(str) {
17687
17791
  return { type: "comment", comment: str };
17688
17792
  }
17689
- function peg$f90(r) {
17793
+ function peg$f91(r) {
17690
17794
  return r.trim();
17691
17795
  }
17692
- function peg$f91(bs) {
17796
+ function peg$f92(bs) {
17693
17797
  return [{ type: "paragraph", content: bs, attrs: {} }];
17694
17798
  }
17695
- function peg$f92(first, more) {
17799
+ function peg$f93(first, more) {
17696
17800
  const cleaned_ = cleanEmptyTextNodes(first ? [first, ...more.flat()] : more.flat());
17697
17801
  return cleaned_;
17698
17802
  }
17699
- function peg$f93() {
17803
+ function peg$f94() {
17700
17804
  return { "type": "hardBreak" };
17701
17805
  }
17702
- function peg$f94(t) {
17806
+ function peg$f95(t) {
17703
17807
  return { text: unbreakscape(t), type: "text" };
17704
17808
  }
17705
- function peg$f95(t) {
17809
+ function peg$f96(t) {
17706
17810
  return { index: +t, type: "bit" };
17707
17811
  }
17708
- function peg$f96(t) {
17812
+ function peg$f97(t) {
17709
17813
  return { marks: [{ type: "bold" }], text: unbreakscape(t), type: "text" };
17710
17814
  }
17711
- function peg$f97(t) {
17815
+ function peg$f98(t) {
17712
17816
  return { marks: [{ type: "italic" }], text: unbreakscape(t), type: "text" };
17713
17817
  }
17714
- function peg$f98(t) {
17818
+ function peg$f99(t) {
17715
17819
  return { marks: [{ type: "light" }], text: unbreakscape(t), type: "text" };
17716
17820
  }
17717
- function peg$f99(t) {
17821
+ function peg$f100(t) {
17718
17822
  return { marks: [{ type: "highlight" }], text: unbreakscape(t), type: "text" };
17719
17823
  }
17720
- function peg$f100(pr, t) {
17824
+ function peg$f101(pr, t) {
17721
17825
  return { pr, t };
17722
17826
  }
17723
17827
  let peg$currPos = options.peg$currPos | 0;
@@ -22587,7 +22691,7 @@ function peg$parse(input, options) {
22587
22691
  return s0;
22588
22692
  }
22589
22693
  function peg$parseAttrChainItem() {
22590
- 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;
22591
22695
  s0 = peg$currPos;
22592
22696
  if (input.substr(peg$currPos, 5) === peg$c52) {
22593
22697
  s1 = peg$c52;
@@ -23555,8 +23659,110 @@ function peg$parse(input, options) {
23555
23659
  if (s1 !== peg$FAILED) {
23556
23660
  s2 = peg$parseBlockTag();
23557
23661
  if (s2 !== peg$FAILED) {
23558
- peg$savedPos = s0;
23559
- 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
+ }
23560
23766
  } else {
23561
23767
  peg$currPos = s0;
23562
23768
  s0 = peg$FAILED;
@@ -23567,13 +23773,13 @@ function peg$parse(input, options) {
23567
23773
  }
23568
23774
  if (s0 === peg$FAILED) {
23569
23775
  s0 = peg$currPos;
23570
- if (input.substr(peg$currPos, 6) === peg$c63) {
23571
- s1 = peg$c63;
23776
+ if (input.substr(peg$currPos, 6) === peg$c65) {
23777
+ s1 = peg$c65;
23572
23778
  peg$currPos += 6;
23573
23779
  } else {
23574
23780
  s1 = peg$FAILED;
23575
23781
  if (peg$silentFails === 0) {
23576
- peg$fail(peg$e67);
23782
+ peg$fail(peg$e69);
23577
23783
  }
23578
23784
  }
23579
23785
  if (s1 !== peg$FAILED) {
@@ -23633,110 +23839,156 @@ function peg$parse(input, options) {
23633
23839
  s2 = input.substring(s2, peg$currPos);
23634
23840
  s3 = peg$parseBlockTag();
23635
23841
  if (s3 !== peg$FAILED) {
23636
- peg$savedPos = s0;
23637
- s0 = peg$f84(s2);
23638
- } else {
23639
- peg$currPos = s0;
23640
- s0 = peg$FAILED;
23641
- }
23642
- } else {
23643
- peg$currPos = s0;
23644
- s0 = peg$FAILED;
23645
- }
23646
- if (s0 === peg$FAILED) {
23647
- s0 = peg$currPos;
23648
- if (input.substr(peg$currPos, 9) === peg$c64) {
23649
- s1 = peg$c64;
23650
- peg$currPos += 9;
23651
- } else {
23652
- s1 = peg$FAILED;
23653
- if (peg$silentFails === 0) {
23654
- peg$fail(peg$e68);
23655
- }
23656
- }
23657
- if (s1 !== peg$FAILED) {
23658
- s2 = peg$currPos;
23659
- s3 = peg$currPos;
23660
- if (input.charCodeAt(peg$currPos) === 80) {
23661
- s4 = peg$c65;
23662
- peg$currPos++;
23842
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23843
+ s4 = peg$c63;
23844
+ peg$currPos += 9;
23663
23845
  } else {
23664
23846
  s4 = peg$FAILED;
23665
23847
  if (peg$silentFails === 0) {
23666
- peg$fail(peg$e69);
23848
+ peg$fail(peg$e67);
23667
23849
  }
23668
23850
  }
23669
23851
  if (s4 !== peg$FAILED) {
23670
23852
  s5 = peg$currPos;
23671
- s6 = [];
23672
- s7 = peg$currPos;
23673
- s8 = peg$currPos;
23674
- peg$silentFails++;
23675
- s9 = peg$parseBlockTag();
23676
- peg$silentFails--;
23677
- if (s9 === peg$FAILED) {
23678
- s8 = void 0;
23853
+ s6 = peg$currPos;
23854
+ if (input.charCodeAt(peg$currPos) === 80) {
23855
+ s7 = peg$c64;
23856
+ peg$currPos++;
23679
23857
  } else {
23680
- peg$currPos = s8;
23681
- s8 = peg$FAILED;
23682
- }
23683
- if (s8 !== peg$FAILED) {
23684
- s9 = peg$parsechar();
23685
- if (s9 !== peg$FAILED) {
23686
- s8 = [s8, s9];
23687
- s7 = s8;
23688
- } else {
23689
- peg$currPos = s7;
23690
- s7 = peg$FAILED;
23691
- }
23692
- } else {
23693
- peg$currPos = s7;
23694
23858
  s7 = peg$FAILED;
23859
+ if (peg$silentFails === 0) {
23860
+ peg$fail(peg$e68);
23861
+ }
23695
23862
  }
23696
- while (s7 !== peg$FAILED) {
23697
- s6.push(s7);
23698
- s7 = peg$currPos;
23863
+ if (s7 !== peg$FAILED) {
23699
23864
  s8 = peg$currPos;
23865
+ s9 = [];
23866
+ s10 = peg$currPos;
23867
+ s11 = peg$currPos;
23700
23868
  peg$silentFails++;
23701
- s9 = peg$parseBlockTag();
23869
+ s12 = peg$parseBlockTag();
23702
23870
  peg$silentFails--;
23703
- if (s9 === peg$FAILED) {
23704
- s8 = void 0;
23871
+ if (s12 === peg$FAILED) {
23872
+ s11 = void 0;
23705
23873
  } else {
23706
- peg$currPos = s8;
23707
- s8 = peg$FAILED;
23874
+ peg$currPos = s11;
23875
+ s11 = peg$FAILED;
23708
23876
  }
23709
- if (s8 !== peg$FAILED) {
23710
- s9 = peg$parsechar();
23711
- if (s9 !== peg$FAILED) {
23712
- s8 = [s8, s9];
23713
- s7 = s8;
23877
+ if (s11 !== peg$FAILED) {
23878
+ s12 = peg$parsechar();
23879
+ if (s12 !== peg$FAILED) {
23880
+ s11 = [s11, s12];
23881
+ s10 = s11;
23714
23882
  } else {
23715
- peg$currPos = s7;
23716
- s7 = peg$FAILED;
23883
+ peg$currPos = s10;
23884
+ s10 = peg$FAILED;
23717
23885
  }
23718
23886
  } else {
23719
- peg$currPos = s7;
23720
- 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
+ }
23721
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;
23722
23941
  }
23723
- s5 = input.substring(s5, peg$currPos);
23724
- s4 = [s4, s5];
23725
- s3 = s4;
23726
23942
  } else {
23727
- peg$currPos = s3;
23728
- s3 = peg$FAILED;
23943
+ peg$currPos = s0;
23944
+ s0 = peg$FAILED;
23729
23945
  }
23730
- if (s3 !== peg$FAILED) {
23731
- s2 = input.substring(s2, peg$currPos);
23732
- } else {
23733
- 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);
23734
23963
  }
23964
+ }
23965
+ if (s1 !== peg$FAILED) {
23966
+ s2 = peg$parseBlockTag();
23735
23967
  if (s2 !== peg$FAILED) {
23736
- 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
+ }
23737
23977
  if (s3 !== peg$FAILED) {
23738
- peg$savedPos = s0;
23739
- 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
+ }
23740
23992
  } else {
23741
23993
  peg$currPos = s0;
23742
23994
  s0 = peg$FAILED;
@@ -23751,22 +24003,42 @@ function peg$parse(input, options) {
23751
24003
  }
23752
24004
  if (s0 === peg$FAILED) {
23753
24005
  s0 = peg$currPos;
23754
- if (input.substr(peg$currPos, 6) === peg$c66) {
23755
- s1 = peg$c66;
23756
- peg$currPos += 6;
24006
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24007
+ s1 = peg$c68;
24008
+ peg$currPos += 13;
23757
24009
  } else {
23758
24010
  s1 = peg$FAILED;
23759
24011
  if (peg$silentFails === 0) {
23760
- peg$fail(peg$e70);
24012
+ peg$fail(peg$e72);
23761
24013
  }
23762
24014
  }
23763
24015
  if (s1 !== peg$FAILED) {
23764
- s2 = peg$parseColor();
24016
+ s2 = peg$parseBlockTag();
23765
24017
  if (s2 !== peg$FAILED) {
23766
- 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
+ }
23767
24027
  if (s3 !== peg$FAILED) {
23768
- peg$savedPos = s0;
23769
- 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
+ }
23770
24042
  } else {
23771
24043
  peg$currPos = s0;
23772
24044
  s0 = peg$FAILED;
@@ -23781,9 +24053,9 @@ function peg$parse(input, options) {
23781
24053
  }
23782
24054
  if (s0 === peg$FAILED) {
23783
24055
  s0 = peg$currPos;
23784
- if (input.substr(peg$currPos, 12) === peg$c67) {
24056
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23785
24057
  s1 = peg$c67;
23786
- peg$currPos += 12;
24058
+ peg$currPos += 6;
23787
24059
  } else {
23788
24060
  s1 = peg$FAILED;
23789
24061
  if (peg$silentFails === 0) {
@@ -23791,34 +24063,38 @@ function peg$parse(input, options) {
23791
24063
  }
23792
24064
  }
23793
24065
  if (s1 !== peg$FAILED) {
23794
- s2 = peg$currPos;
23795
- s3 = [];
23796
- s4 = peg$currPos;
23797
- s5 = peg$currPos;
23798
- peg$silentFails++;
23799
- s6 = peg$parseBlockTag();
23800
- peg$silentFails--;
23801
- if (s6 === peg$FAILED) {
23802
- s5 = void 0;
23803
- } else {
23804
- peg$currPos = s5;
23805
- s5 = peg$FAILED;
23806
- }
23807
- if (s5 !== peg$FAILED) {
23808
- s6 = peg$parsechar();
23809
- if (s6 !== peg$FAILED) {
23810
- s5 = [s5, s6];
23811
- 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);
23812
24072
  } else {
23813
- peg$currPos = s4;
23814
- s4 = peg$FAILED;
24073
+ peg$currPos = s0;
24074
+ s0 = peg$FAILED;
23815
24075
  }
23816
24076
  } else {
23817
- peg$currPos = s4;
23818
- 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
+ }
23819
24094
  }
23820
- while (s4 !== peg$FAILED) {
23821
- s3.push(s4);
24095
+ if (s1 !== peg$FAILED) {
24096
+ s2 = peg$currPos;
24097
+ s3 = [];
23822
24098
  s4 = peg$currPos;
23823
24099
  s5 = peg$currPos;
23824
24100
  peg$silentFails++;
@@ -23843,50 +24119,8 @@ function peg$parse(input, options) {
23843
24119
  peg$currPos = s4;
23844
24120
  s4 = peg$FAILED;
23845
24121
  }
23846
- }
23847
- s2 = input.substring(s2, peg$currPos);
23848
- s3 = peg$parseBlockTag();
23849
- if (s3 !== peg$FAILED) {
23850
- peg$savedPos = s0;
23851
- s0 = peg$f87(s2);
23852
- } else {
23853
- peg$currPos = s0;
23854
- s0 = peg$FAILED;
23855
- }
23856
- } else {
23857
- peg$currPos = s0;
23858
- s0 = peg$FAILED;
23859
- }
23860
- if (s0 === peg$FAILED) {
23861
- s0 = peg$currPos;
23862
- s1 = peg$parseAlternativeStyleTags();
23863
- if (s1 !== peg$FAILED) {
23864
- s2 = peg$parseBlockTag();
23865
- if (s2 !== peg$FAILED) {
23866
- peg$savedPos = s0;
23867
- s0 = peg$f88(s1);
23868
- } else {
23869
- peg$currPos = s0;
23870
- s0 = peg$FAILED;
23871
- }
23872
- } else {
23873
- peg$currPos = s0;
23874
- s0 = peg$FAILED;
23875
- }
23876
- if (s0 === peg$FAILED) {
23877
- s0 = peg$currPos;
23878
- if (input.charCodeAt(peg$currPos) === 35) {
23879
- s1 = peg$c21;
23880
- peg$currPos++;
23881
- } else {
23882
- s1 = peg$FAILED;
23883
- if (peg$silentFails === 0) {
23884
- peg$fail(peg$e25);
23885
- }
23886
- }
23887
- if (s1 !== peg$FAILED) {
23888
- s2 = peg$currPos;
23889
- s3 = [];
24122
+ while (s4 !== peg$FAILED) {
24123
+ s3.push(s4);
23890
24124
  s4 = peg$currPos;
23891
24125
  s5 = peg$currPos;
23892
24126
  peg$silentFails++;
@@ -23911,8 +24145,50 @@ function peg$parse(input, options) {
23911
24145
  peg$currPos = s4;
23912
24146
  s4 = peg$FAILED;
23913
24147
  }
23914
- while (s4 !== peg$FAILED) {
23915
- 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 = [];
23916
24192
  s4 = peg$currPos;
23917
24193
  s5 = peg$currPos;
23918
24194
  peg$silentFails++;
@@ -23937,19 +24213,46 @@ function peg$parse(input, options) {
23937
24213
  peg$currPos = s4;
23938
24214
  s4 = peg$FAILED;
23939
24215
  }
23940
- }
23941
- s2 = input.substring(s2, peg$currPos);
23942
- s3 = peg$parseBlockTag();
23943
- if (s3 !== peg$FAILED) {
23944
- peg$savedPos = s0;
23945
- 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
+ }
23946
24252
  } else {
23947
24253
  peg$currPos = s0;
23948
24254
  s0 = peg$FAILED;
23949
24255
  }
23950
- } else {
23951
- peg$currPos = s0;
23952
- s0 = peg$FAILED;
23953
24256
  }
23954
24257
  }
23955
24258
  }
@@ -23983,13 +24286,13 @@ function peg$parse(input, options) {
23983
24286
  function peg$parseRef() {
23984
24287
  let s0, s1, s2, s3, s4, s5, s6;
23985
24288
  s0 = peg$currPos;
23986
- if (input.substr(peg$currPos, 2) === peg$c68) {
23987
- s1 = peg$c68;
24289
+ if (input.substr(peg$currPos, 2) === peg$c70) {
24290
+ s1 = peg$c70;
23988
24291
  peg$currPos += 2;
23989
24292
  } else {
23990
24293
  s1 = peg$FAILED;
23991
24294
  if (peg$silentFails === 0) {
23992
- peg$fail(peg$e72);
24295
+ peg$fail(peg$e74);
23993
24296
  }
23994
24297
  }
23995
24298
  if (s1 !== peg$FAILED) {
@@ -24048,7 +24351,7 @@ function peg$parse(input, options) {
24048
24351
  }
24049
24352
  s2 = input.substring(s2, peg$currPos);
24050
24353
  peg$savedPos = s0;
24051
- s0 = peg$f90(s2);
24354
+ s0 = peg$f91(s2);
24052
24355
  } else {
24053
24356
  peg$currPos = s0;
24054
24357
  s0 = peg$FAILED;
@@ -24057,403 +24360,414 @@ function peg$parse(input, options) {
24057
24360
  }
24058
24361
  function peg$parseAlternativeStyleTags() {
24059
24362
  let s0;
24060
- if (input.substr(peg$currPos, 4) === peg$c69) {
24061
- s0 = peg$c69;
24363
+ if (input.substr(peg$currPos, 4) === peg$c71) {
24364
+ s0 = peg$c71;
24062
24365
  peg$currPos += 4;
24063
24366
  } else {
24064
24367
  s0 = peg$FAILED;
24065
24368
  if (peg$silentFails === 0) {
24066
- peg$fail(peg$e73);
24369
+ peg$fail(peg$e75);
24067
24370
  }
24068
24371
  }
24069
24372
  if (s0 === peg$FAILED) {
24070
- if (input.substr(peg$currPos, 6) === peg$c70) {
24071
- s0 = peg$c70;
24373
+ if (input.substr(peg$currPos, 6) === peg$c72) {
24374
+ s0 = peg$c72;
24072
24375
  peg$currPos += 6;
24073
24376
  } else {
24074
24377
  s0 = peg$FAILED;
24075
24378
  if (peg$silentFails === 0) {
24076
- peg$fail(peg$e74);
24379
+ peg$fail(peg$e76);
24077
24380
  }
24078
24381
  }
24079
24382
  if (s0 === peg$FAILED) {
24080
- if (input.substr(peg$currPos, 5) === peg$c71) {
24081
- s0 = peg$c71;
24383
+ if (input.substr(peg$currPos, 5) === peg$c73) {
24384
+ s0 = peg$c73;
24082
24385
  peg$currPos += 5;
24083
24386
  } else {
24084
24387
  s0 = peg$FAILED;
24085
24388
  if (peg$silentFails === 0) {
24086
- peg$fail(peg$e75);
24389
+ peg$fail(peg$e77);
24087
24390
  }
24088
24391
  }
24089
24392
  if (s0 === peg$FAILED) {
24090
- if (input.substr(peg$currPos, 15) === peg$c72) {
24091
- s0 = peg$c72;
24393
+ if (input.substr(peg$currPos, 15) === peg$c74) {
24394
+ s0 = peg$c74;
24092
24395
  peg$currPos += 15;
24093
24396
  } else {
24094
24397
  s0 = peg$FAILED;
24095
24398
  if (peg$silentFails === 0) {
24096
- peg$fail(peg$e76);
24399
+ peg$fail(peg$e78);
24097
24400
  }
24098
24401
  }
24099
24402
  if (s0 === peg$FAILED) {
24100
- if (input.substr(peg$currPos, 15) === peg$c73) {
24101
- s0 = peg$c73;
24403
+ if (input.substr(peg$currPos, 15) === peg$c75) {
24404
+ s0 = peg$c75;
24102
24405
  peg$currPos += 15;
24103
24406
  } else {
24104
24407
  s0 = peg$FAILED;
24105
24408
  if (peg$silentFails === 0) {
24106
- peg$fail(peg$e77);
24409
+ peg$fail(peg$e79);
24107
24410
  }
24108
24411
  }
24109
24412
  if (s0 === peg$FAILED) {
24110
- if (input.substr(peg$currPos, 14) === peg$c74) {
24111
- s0 = peg$c74;
24413
+ if (input.substr(peg$currPos, 14) === peg$c76) {
24414
+ s0 = peg$c76;
24112
24415
  peg$currPos += 14;
24113
24416
  } else {
24114
24417
  s0 = peg$FAILED;
24115
24418
  if (peg$silentFails === 0) {
24116
- peg$fail(peg$e78);
24419
+ peg$fail(peg$e80);
24117
24420
  }
24118
24421
  }
24119
24422
  if (s0 === peg$FAILED) {
24120
- if (input.substr(peg$currPos, 13) === peg$c75) {
24121
- s0 = peg$c75;
24423
+ if (input.substr(peg$currPos, 13) === peg$c77) {
24424
+ s0 = peg$c77;
24122
24425
  peg$currPos += 13;
24123
24426
  } else {
24124
24427
  s0 = peg$FAILED;
24125
24428
  if (peg$silentFails === 0) {
24126
- peg$fail(peg$e79);
24429
+ peg$fail(peg$e81);
24127
24430
  }
24128
24431
  }
24129
24432
  if (s0 === peg$FAILED) {
24130
- if (input.substr(peg$currPos, 15) === peg$c76) {
24131
- s0 = peg$c76;
24433
+ if (input.substr(peg$currPos, 15) === peg$c78) {
24434
+ s0 = peg$c78;
24132
24435
  peg$currPos += 15;
24133
24436
  } else {
24134
24437
  s0 = peg$FAILED;
24135
24438
  if (peg$silentFails === 0) {
24136
- peg$fail(peg$e80);
24439
+ peg$fail(peg$e82);
24137
24440
  }
24138
24441
  }
24139
24442
  if (s0 === peg$FAILED) {
24140
- if (input.substr(peg$currPos, 13) === peg$c77) {
24141
- s0 = peg$c77;
24443
+ if (input.substr(peg$currPos, 13) === peg$c79) {
24444
+ s0 = peg$c79;
24142
24445
  peg$currPos += 13;
24143
24446
  } else {
24144
24447
  s0 = peg$FAILED;
24145
24448
  if (peg$silentFails === 0) {
24146
- peg$fail(peg$e81);
24449
+ peg$fail(peg$e83);
24147
24450
  }
24148
24451
  }
24149
24452
  if (s0 === peg$FAILED) {
24150
- if (input.substr(peg$currPos, 14) === peg$c78) {
24151
- s0 = peg$c78;
24453
+ if (input.substr(peg$currPos, 14) === peg$c80) {
24454
+ s0 = peg$c80;
24152
24455
  peg$currPos += 14;
24153
24456
  } else {
24154
24457
  s0 = peg$FAILED;
24155
24458
  if (peg$silentFails === 0) {
24156
- peg$fail(peg$e82);
24459
+ peg$fail(peg$e84);
24157
24460
  }
24158
24461
  }
24159
24462
  if (s0 === peg$FAILED) {
24160
- if (input.substr(peg$currPos, 14) === peg$c79) {
24161
- s0 = peg$c79;
24463
+ if (input.substr(peg$currPos, 14) === peg$c81) {
24464
+ s0 = peg$c81;
24162
24465
  peg$currPos += 14;
24163
24466
  } else {
24164
24467
  s0 = peg$FAILED;
24165
24468
  if (peg$silentFails === 0) {
24166
- peg$fail(peg$e83);
24469
+ peg$fail(peg$e85);
24167
24470
  }
24168
24471
  }
24169
24472
  if (s0 === peg$FAILED) {
24170
- if (input.substr(peg$currPos, 14) === peg$c80) {
24171
- s0 = peg$c80;
24473
+ if (input.substr(peg$currPos, 14) === peg$c82) {
24474
+ s0 = peg$c82;
24172
24475
  peg$currPos += 14;
24173
24476
  } else {
24174
24477
  s0 = peg$FAILED;
24175
24478
  if (peg$silentFails === 0) {
24176
- peg$fail(peg$e84);
24479
+ peg$fail(peg$e86);
24177
24480
  }
24178
24481
  }
24179
24482
  if (s0 === peg$FAILED) {
24180
- if (input.substr(peg$currPos, 13) === peg$c81) {
24181
- s0 = peg$c81;
24483
+ if (input.substr(peg$currPos, 13) === peg$c83) {
24484
+ s0 = peg$c83;
24182
24485
  peg$currPos += 13;
24183
24486
  } else {
24184
24487
  s0 = peg$FAILED;
24185
24488
  if (peg$silentFails === 0) {
24186
- peg$fail(peg$e85);
24489
+ peg$fail(peg$e87);
24187
24490
  }
24188
24491
  }
24189
24492
  if (s0 === peg$FAILED) {
24190
- if (input.substr(peg$currPos, 9) === peg$c82) {
24191
- s0 = peg$c82;
24493
+ if (input.substr(peg$currPos, 9) === peg$c66) {
24494
+ s0 = peg$c66;
24192
24495
  peg$currPos += 9;
24193
24496
  } else {
24194
24497
  s0 = peg$FAILED;
24195
24498
  if (peg$silentFails === 0) {
24196
- peg$fail(peg$e86);
24499
+ peg$fail(peg$e70);
24197
24500
  }
24198
24501
  }
24199
24502
  if (s0 === peg$FAILED) {
24200
- if (input.substr(peg$currPos, 6) === peg$c83) {
24201
- s0 = peg$c83;
24503
+ if (input.substr(peg$currPos, 6) === peg$c84) {
24504
+ s0 = peg$c84;
24202
24505
  peg$currPos += 6;
24203
24506
  } else {
24204
24507
  s0 = peg$FAILED;
24205
24508
  if (peg$silentFails === 0) {
24206
- peg$fail(peg$e87);
24509
+ peg$fail(peg$e88);
24207
24510
  }
24208
24511
  }
24209
24512
  if (s0 === peg$FAILED) {
24210
- if (input.substr(peg$currPos, 9) === peg$c84) {
24211
- s0 = peg$c84;
24513
+ if (input.substr(peg$currPos, 9) === peg$c85) {
24514
+ s0 = peg$c85;
24212
24515
  peg$currPos += 9;
24213
24516
  } else {
24214
24517
  s0 = peg$FAILED;
24215
24518
  if (peg$silentFails === 0) {
24216
- peg$fail(peg$e88);
24519
+ peg$fail(peg$e89);
24217
24520
  }
24218
24521
  }
24219
24522
  if (s0 === peg$FAILED) {
24220
- if (input.substr(peg$currPos, 11) === peg$c85) {
24221
- s0 = peg$c85;
24523
+ if (input.substr(peg$currPos, 11) === peg$c86) {
24524
+ s0 = peg$c86;
24222
24525
  peg$currPos += 11;
24223
24526
  } else {
24224
24527
  s0 = peg$FAILED;
24225
24528
  if (peg$silentFails === 0) {
24226
- peg$fail(peg$e89);
24529
+ peg$fail(peg$e90);
24227
24530
  }
24228
24531
  }
24229
24532
  if (s0 === peg$FAILED) {
24230
- if (input.substr(peg$currPos, 3) === peg$c86) {
24231
- s0 = peg$c86;
24533
+ if (input.substr(peg$currPos, 3) === peg$c87) {
24534
+ s0 = peg$c87;
24232
24535
  peg$currPos += 3;
24233
24536
  } else {
24234
24537
  s0 = peg$FAILED;
24235
24538
  if (peg$silentFails === 0) {
24236
- peg$fail(peg$e90);
24539
+ peg$fail(peg$e91);
24237
24540
  }
24238
24541
  }
24239
24542
  if (s0 === peg$FAILED) {
24240
- if (input.substr(peg$currPos, 3) === peg$c87) {
24241
- s0 = peg$c87;
24543
+ if (input.substr(peg$currPos, 3) === peg$c88) {
24544
+ s0 = peg$c88;
24242
24545
  peg$currPos += 3;
24243
24546
  } else {
24244
24547
  s0 = peg$FAILED;
24245
24548
  if (peg$silentFails === 0) {
24246
- peg$fail(peg$e91);
24549
+ peg$fail(peg$e92);
24247
24550
  }
24248
24551
  }
24249
24552
  if (s0 === peg$FAILED) {
24250
- if (input.substr(peg$currPos, 9) === peg$c88) {
24251
- s0 = peg$c88;
24553
+ if (input.substr(peg$currPos, 9) === peg$c89) {
24554
+ s0 = peg$c89;
24252
24555
  peg$currPos += 9;
24253
24556
  } else {
24254
24557
  s0 = peg$FAILED;
24255
24558
  if (peg$silentFails === 0) {
24256
- peg$fail(peg$e92);
24559
+ peg$fail(peg$e93);
24257
24560
  }
24258
24561
  }
24259
24562
  if (s0 === peg$FAILED) {
24260
- if (input.substr(peg$currPos, 15) === peg$c89) {
24261
- s0 = peg$c89;
24563
+ if (input.substr(peg$currPos, 15) === peg$c90) {
24564
+ s0 = peg$c90;
24262
24565
  peg$currPos += 15;
24263
24566
  } else {
24264
24567
  s0 = peg$FAILED;
24265
24568
  if (peg$silentFails === 0) {
24266
- peg$fail(peg$e93);
24569
+ peg$fail(peg$e94);
24267
24570
  }
24268
24571
  }
24269
24572
  if (s0 === peg$FAILED) {
24270
- if (input.substr(peg$currPos, 6) === peg$c90) {
24271
- s0 = peg$c90;
24272
- peg$currPos += 6;
24573
+ if (input.substr(peg$currPos, 9) === peg$c91) {
24574
+ s0 = peg$c91;
24575
+ peg$currPos += 9;
24273
24576
  } else {
24274
24577
  s0 = peg$FAILED;
24275
24578
  if (peg$silentFails === 0) {
24276
- peg$fail(peg$e94);
24579
+ peg$fail(peg$e95);
24277
24580
  }
24278
24581
  }
24279
24582
  if (s0 === peg$FAILED) {
24280
- if (input.substr(peg$currPos, 13) === peg$c91) {
24281
- s0 = peg$c91;
24282
- peg$currPos += 13;
24583
+ if (input.substr(peg$currPos, 6) === peg$c92) {
24584
+ s0 = peg$c92;
24585
+ peg$currPos += 6;
24283
24586
  } else {
24284
24587
  s0 = peg$FAILED;
24285
24588
  if (peg$silentFails === 0) {
24286
- peg$fail(peg$e95);
24589
+ peg$fail(peg$e96);
24287
24590
  }
24288
24591
  }
24289
24592
  if (s0 === peg$FAILED) {
24290
- if (input.substr(peg$currPos, 16) === peg$c92) {
24291
- s0 = peg$c92;
24292
- peg$currPos += 16;
24593
+ if (input.substr(peg$currPos, 13) === peg$c93) {
24594
+ s0 = peg$c93;
24595
+ peg$currPos += 13;
24293
24596
  } else {
24294
24597
  s0 = peg$FAILED;
24295
24598
  if (peg$silentFails === 0) {
24296
- peg$fail(peg$e96);
24599
+ peg$fail(peg$e97);
24297
24600
  }
24298
24601
  }
24299
24602
  if (s0 === peg$FAILED) {
24300
- if (input.substr(peg$currPos, 16) === peg$c93) {
24301
- s0 = peg$c93;
24603
+ if (input.substr(peg$currPos, 16) === peg$c94) {
24604
+ s0 = peg$c94;
24302
24605
  peg$currPos += 16;
24303
24606
  } else {
24304
24607
  s0 = peg$FAILED;
24305
24608
  if (peg$silentFails === 0) {
24306
- peg$fail(peg$e97);
24609
+ peg$fail(peg$e98);
24307
24610
  }
24308
24611
  }
24309
24612
  if (s0 === peg$FAILED) {
24310
- if (input.substr(peg$currPos, 15) === peg$c94) {
24311
- s0 = peg$c94;
24312
- peg$currPos += 15;
24613
+ if (input.substr(peg$currPos, 16) === peg$c95) {
24614
+ s0 = peg$c95;
24615
+ peg$currPos += 16;
24313
24616
  } else {
24314
24617
  s0 = peg$FAILED;
24315
24618
  if (peg$silentFails === 0) {
24316
- peg$fail(peg$e98);
24619
+ peg$fail(peg$e99);
24317
24620
  }
24318
24621
  }
24319
24622
  if (s0 === peg$FAILED) {
24320
- if (input.substr(peg$currPos, 14) === peg$c95) {
24321
- s0 = peg$c95;
24322
- peg$currPos += 14;
24623
+ if (input.substr(peg$currPos, 15) === peg$c96) {
24624
+ s0 = peg$c96;
24625
+ peg$currPos += 15;
24323
24626
  } else {
24324
24627
  s0 = peg$FAILED;
24325
24628
  if (peg$silentFails === 0) {
24326
- peg$fail(peg$e99);
24629
+ peg$fail(peg$e100);
24327
24630
  }
24328
24631
  }
24329
24632
  if (s0 === peg$FAILED) {
24330
- if (input.substr(peg$currPos, 16) === peg$c96) {
24331
- s0 = peg$c96;
24332
- peg$currPos += 16;
24633
+ if (input.substr(peg$currPos, 14) === peg$c97) {
24634
+ s0 = peg$c97;
24635
+ peg$currPos += 14;
24333
24636
  } else {
24334
24637
  s0 = peg$FAILED;
24335
24638
  if (peg$silentFails === 0) {
24336
- peg$fail(peg$e100);
24639
+ peg$fail(peg$e101);
24337
24640
  }
24338
24641
  }
24339
24642
  if (s0 === peg$FAILED) {
24340
- if (input.substr(peg$currPos, 14) === peg$c97) {
24341
- s0 = peg$c97;
24342
- peg$currPos += 14;
24643
+ if (input.substr(peg$currPos, 16) === peg$c98) {
24644
+ s0 = peg$c98;
24645
+ peg$currPos += 16;
24343
24646
  } else {
24344
24647
  s0 = peg$FAILED;
24345
24648
  if (peg$silentFails === 0) {
24346
- peg$fail(peg$e101);
24649
+ peg$fail(peg$e102);
24347
24650
  }
24348
24651
  }
24349
24652
  if (s0 === peg$FAILED) {
24350
- if (input.substr(peg$currPos, 15) === peg$c98) {
24351
- s0 = peg$c98;
24352
- peg$currPos += 15;
24653
+ if (input.substr(peg$currPos, 14) === peg$c99) {
24654
+ s0 = peg$c99;
24655
+ peg$currPos += 14;
24353
24656
  } else {
24354
24657
  s0 = peg$FAILED;
24355
24658
  if (peg$silentFails === 0) {
24356
- peg$fail(peg$e102);
24659
+ peg$fail(peg$e103);
24357
24660
  }
24358
24661
  }
24359
24662
  if (s0 === peg$FAILED) {
24360
- if (input.substr(peg$currPos, 15) === peg$c99) {
24361
- s0 = peg$c99;
24663
+ if (input.substr(peg$currPos, 15) === peg$c100) {
24664
+ s0 = peg$c100;
24362
24665
  peg$currPos += 15;
24363
24666
  } else {
24364
24667
  s0 = peg$FAILED;
24365
24668
  if (peg$silentFails === 0) {
24366
- peg$fail(peg$e103);
24669
+ peg$fail(peg$e104);
24367
24670
  }
24368
24671
  }
24369
24672
  if (s0 === peg$FAILED) {
24370
- if (input.substr(peg$currPos, 15) === peg$c100) {
24371
- s0 = peg$c100;
24673
+ if (input.substr(peg$currPos, 15) === peg$c101) {
24674
+ s0 = peg$c101;
24372
24675
  peg$currPos += 15;
24373
24676
  } else {
24374
24677
  s0 = peg$FAILED;
24375
24678
  if (peg$silentFails === 0) {
24376
- peg$fail(peg$e104);
24679
+ peg$fail(peg$e105);
24377
24680
  }
24378
24681
  }
24379
24682
  if (s0 === peg$FAILED) {
24380
- if (input.substr(peg$currPos, 14) === peg$c101) {
24381
- s0 = peg$c101;
24382
- peg$currPos += 14;
24683
+ if (input.substr(peg$currPos, 15) === peg$c102) {
24684
+ s0 = peg$c102;
24685
+ peg$currPos += 15;
24383
24686
  } else {
24384
24687
  s0 = peg$FAILED;
24385
24688
  if (peg$silentFails === 0) {
24386
- peg$fail(peg$e105);
24689
+ peg$fail(peg$e106);
24387
24690
  }
24388
24691
  }
24389
24692
  if (s0 === peg$FAILED) {
24390
- if (input.substr(peg$currPos, 10) === peg$c102) {
24391
- s0 = peg$c102;
24392
- peg$currPos += 10;
24693
+ if (input.substr(peg$currPos, 14) === peg$c103) {
24694
+ s0 = peg$c103;
24695
+ peg$currPos += 14;
24393
24696
  } else {
24394
24697
  s0 = peg$FAILED;
24395
24698
  if (peg$silentFails === 0) {
24396
- peg$fail(peg$e106);
24699
+ peg$fail(peg$e107);
24397
24700
  }
24398
24701
  }
24399
24702
  if (s0 === peg$FAILED) {
24400
- if (input.substr(peg$currPos, 13) === peg$c103) {
24401
- s0 = peg$c103;
24402
- peg$currPos += 13;
24703
+ if (input.substr(peg$currPos, 10) === peg$c104) {
24704
+ s0 = peg$c104;
24705
+ peg$currPos += 10;
24403
24706
  } else {
24404
24707
  s0 = peg$FAILED;
24405
24708
  if (peg$silentFails === 0) {
24406
- peg$fail(peg$e107);
24709
+ peg$fail(peg$e108);
24407
24710
  }
24408
24711
  }
24409
24712
  if (s0 === peg$FAILED) {
24410
- if (input.substr(peg$currPos, 19) === peg$c104) {
24411
- s0 = peg$c104;
24412
- peg$currPos += 19;
24713
+ if (input.substr(peg$currPos, 13) === peg$c105) {
24714
+ s0 = peg$c105;
24715
+ peg$currPos += 13;
24413
24716
  } else {
24414
24717
  s0 = peg$FAILED;
24415
24718
  if (peg$silentFails === 0) {
24416
- peg$fail(peg$e108);
24719
+ peg$fail(peg$e109);
24417
24720
  }
24418
24721
  }
24419
24722
  if (s0 === peg$FAILED) {
24420
- if (input.substr(peg$currPos, 10) === peg$c105) {
24421
- s0 = peg$c105;
24422
- peg$currPos += 10;
24723
+ if (input.substr(peg$currPos, 19) === peg$c106) {
24724
+ s0 = peg$c106;
24725
+ peg$currPos += 19;
24423
24726
  } else {
24424
24727
  s0 = peg$FAILED;
24425
24728
  if (peg$silentFails === 0) {
24426
- peg$fail(peg$e109);
24729
+ peg$fail(peg$e110);
24427
24730
  }
24428
24731
  }
24429
24732
  if (s0 === peg$FAILED) {
24430
- if (input.substr(peg$currPos, 10) === peg$c106) {
24431
- s0 = peg$c106;
24733
+ if (input.substr(peg$currPos, 10) === peg$c107) {
24734
+ s0 = peg$c107;
24432
24735
  peg$currPos += 10;
24433
24736
  } else {
24434
24737
  s0 = peg$FAILED;
24435
24738
  if (peg$silentFails === 0) {
24436
- peg$fail(peg$e110);
24739
+ peg$fail(peg$e111);
24437
24740
  }
24438
24741
  }
24439
24742
  if (s0 === peg$FAILED) {
24440
- if (input.substr(peg$currPos, 13) === peg$c107) {
24441
- s0 = peg$c107;
24442
- peg$currPos += 13;
24743
+ if (input.substr(peg$currPos, 10) === peg$c108) {
24744
+ s0 = peg$c108;
24745
+ peg$currPos += 10;
24443
24746
  } else {
24444
24747
  s0 = peg$FAILED;
24445
24748
  if (peg$silentFails === 0) {
24446
- peg$fail(peg$e111);
24749
+ peg$fail(peg$e112);
24447
24750
  }
24448
24751
  }
24449
24752
  if (s0 === peg$FAILED) {
24450
- if (input.substr(peg$currPos, 11) === peg$c108) {
24451
- s0 = peg$c108;
24452
- peg$currPos += 11;
24753
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24754
+ s0 = peg$c68;
24755
+ peg$currPos += 13;
24453
24756
  } else {
24454
24757
  s0 = peg$FAILED;
24455
24758
  if (peg$silentFails === 0) {
24456
- 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
+ }
24457
24771
  }
24458
24772
  }
24459
24773
  }
@@ -24499,233 +24813,233 @@ function peg$parse(input, options) {
24499
24813
  }
24500
24814
  function peg$parseColor() {
24501
24815
  let s0;
24502
- if (input.substr(peg$currPos, 4) === peg$c109) {
24503
- s0 = peg$c109;
24816
+ if (input.substr(peg$currPos, 4) === peg$c110) {
24817
+ s0 = peg$c110;
24504
24818
  peg$currPos += 4;
24505
24819
  } else {
24506
24820
  s0 = peg$FAILED;
24507
24821
  if (peg$silentFails === 0) {
24508
- peg$fail(peg$e113);
24822
+ peg$fail(peg$e114);
24509
24823
  }
24510
24824
  }
24511
24825
  if (s0 === peg$FAILED) {
24512
- if (input.substr(peg$currPos, 5) === peg$c110) {
24513
- s0 = peg$c110;
24826
+ if (input.substr(peg$currPos, 5) === peg$c111) {
24827
+ s0 = peg$c111;
24514
24828
  peg$currPos += 5;
24515
24829
  } else {
24516
24830
  s0 = peg$FAILED;
24517
24831
  if (peg$silentFails === 0) {
24518
- peg$fail(peg$e114);
24832
+ peg$fail(peg$e115);
24519
24833
  }
24520
24834
  }
24521
24835
  if (s0 === peg$FAILED) {
24522
- if (input.substr(peg$currPos, 4) === peg$c111) {
24523
- s0 = peg$c111;
24836
+ if (input.substr(peg$currPos, 4) === peg$c112) {
24837
+ s0 = peg$c112;
24524
24838
  peg$currPos += 4;
24525
24839
  } else {
24526
24840
  s0 = peg$FAILED;
24527
24841
  if (peg$silentFails === 0) {
24528
- peg$fail(peg$e115);
24842
+ peg$fail(peg$e116);
24529
24843
  }
24530
24844
  }
24531
24845
  if (s0 === peg$FAILED) {
24532
- if (input.substr(peg$currPos, 5) === peg$c112) {
24533
- s0 = peg$c112;
24846
+ if (input.substr(peg$currPos, 5) === peg$c113) {
24847
+ s0 = peg$c113;
24534
24848
  peg$currPos += 5;
24535
24849
  } else {
24536
24850
  s0 = peg$FAILED;
24537
24851
  if (peg$silentFails === 0) {
24538
- peg$fail(peg$e116);
24852
+ peg$fail(peg$e117);
24539
24853
  }
24540
24854
  }
24541
24855
  if (s0 === peg$FAILED) {
24542
- if (input.substr(peg$currPos, 7) === peg$c113) {
24543
- s0 = peg$c113;
24856
+ if (input.substr(peg$currPos, 7) === peg$c114) {
24857
+ s0 = peg$c114;
24544
24858
  peg$currPos += 7;
24545
24859
  } else {
24546
24860
  s0 = peg$FAILED;
24547
24861
  if (peg$silentFails === 0) {
24548
- peg$fail(peg$e117);
24862
+ peg$fail(peg$e118);
24549
24863
  }
24550
24864
  }
24551
24865
  if (s0 === peg$FAILED) {
24552
- if (input.substr(peg$currPos, 9) === peg$c114) {
24553
- s0 = peg$c114;
24866
+ if (input.substr(peg$currPos, 9) === peg$c115) {
24867
+ s0 = peg$c115;
24554
24868
  peg$currPos += 9;
24555
24869
  } else {
24556
24870
  s0 = peg$FAILED;
24557
24871
  if (peg$silentFails === 0) {
24558
- peg$fail(peg$e118);
24872
+ peg$fail(peg$e119);
24559
24873
  }
24560
24874
  }
24561
24875
  if (s0 === peg$FAILED) {
24562
- if (input.substr(peg$currPos, 4) === peg$c115) {
24563
- s0 = peg$c115;
24876
+ if (input.substr(peg$currPos, 4) === peg$c116) {
24877
+ s0 = peg$c116;
24564
24878
  peg$currPos += 4;
24565
24879
  } else {
24566
24880
  s0 = peg$FAILED;
24567
24881
  if (peg$silentFails === 0) {
24568
- peg$fail(peg$e119);
24882
+ peg$fail(peg$e120);
24569
24883
  }
24570
24884
  }
24571
24885
  if (s0 === peg$FAILED) {
24572
- if (input.substr(peg$currPos, 8) === peg$c116) {
24573
- s0 = peg$c116;
24886
+ if (input.substr(peg$currPos, 8) === peg$c117) {
24887
+ s0 = peg$c117;
24574
24888
  peg$currPos += 8;
24575
24889
  } else {
24576
24890
  s0 = peg$FAILED;
24577
24891
  if (peg$silentFails === 0) {
24578
- peg$fail(peg$e120);
24892
+ peg$fail(peg$e121);
24579
24893
  }
24580
24894
  }
24581
24895
  if (s0 === peg$FAILED) {
24582
- if (input.substr(peg$currPos, 5) === peg$c117) {
24583
- s0 = peg$c117;
24896
+ if (input.substr(peg$currPos, 5) === peg$c118) {
24897
+ s0 = peg$c118;
24584
24898
  peg$currPos += 5;
24585
24899
  } else {
24586
24900
  s0 = peg$FAILED;
24587
24901
  if (peg$silentFails === 0) {
24588
- peg$fail(peg$e121);
24902
+ peg$fail(peg$e122);
24589
24903
  }
24590
24904
  }
24591
24905
  if (s0 === peg$FAILED) {
24592
- if (input.substr(peg$currPos, 4) === peg$c118) {
24593
- s0 = peg$c118;
24906
+ if (input.substr(peg$currPos, 4) === peg$c119) {
24907
+ s0 = peg$c119;
24594
24908
  peg$currPos += 4;
24595
24909
  } else {
24596
24910
  s0 = peg$FAILED;
24597
24911
  if (peg$silentFails === 0) {
24598
- peg$fail(peg$e122);
24912
+ peg$fail(peg$e123);
24599
24913
  }
24600
24914
  }
24601
24915
  if (s0 === peg$FAILED) {
24602
- if (input.substr(peg$currPos, 7) === peg$c119) {
24603
- s0 = peg$c119;
24916
+ if (input.substr(peg$currPos, 7) === peg$c120) {
24917
+ s0 = peg$c120;
24604
24918
  peg$currPos += 7;
24605
24919
  } else {
24606
24920
  s0 = peg$FAILED;
24607
24921
  if (peg$silentFails === 0) {
24608
- peg$fail(peg$e123);
24922
+ peg$fail(peg$e124);
24609
24923
  }
24610
24924
  }
24611
24925
  if (s0 === peg$FAILED) {
24612
- if (input.substr(peg$currPos, 6) === peg$c120) {
24613
- s0 = peg$c120;
24926
+ if (input.substr(peg$currPos, 6) === peg$c121) {
24927
+ s0 = peg$c121;
24614
24928
  peg$currPos += 6;
24615
24929
  } else {
24616
24930
  s0 = peg$FAILED;
24617
24931
  if (peg$silentFails === 0) {
24618
- peg$fail(peg$e124);
24932
+ peg$fail(peg$e125);
24619
24933
  }
24620
24934
  }
24621
24935
  if (s0 === peg$FAILED) {
24622
- if (input.substr(peg$currPos, 4) === peg$c121) {
24623
- s0 = peg$c121;
24936
+ if (input.substr(peg$currPos, 4) === peg$c122) {
24937
+ s0 = peg$c122;
24624
24938
  peg$currPos += 4;
24625
24939
  } else {
24626
24940
  s0 = peg$FAILED;
24627
24941
  if (peg$silentFails === 0) {
24628
- peg$fail(peg$e125);
24942
+ peg$fail(peg$e126);
24629
24943
  }
24630
24944
  }
24631
24945
  if (s0 === peg$FAILED) {
24632
- if (input.substr(peg$currPos, 5) === peg$c122) {
24633
- s0 = peg$c122;
24946
+ if (input.substr(peg$currPos, 5) === peg$c123) {
24947
+ s0 = peg$c123;
24634
24948
  peg$currPos += 5;
24635
24949
  } else {
24636
24950
  s0 = peg$FAILED;
24637
24951
  if (peg$silentFails === 0) {
24638
- peg$fail(peg$e126);
24952
+ peg$fail(peg$e127);
24639
24953
  }
24640
24954
  }
24641
24955
  if (s0 === peg$FAILED) {
24642
- if (input.substr(peg$currPos, 6) === peg$c123) {
24643
- s0 = peg$c123;
24956
+ if (input.substr(peg$currPos, 6) === peg$c124) {
24957
+ s0 = peg$c124;
24644
24958
  peg$currPos += 6;
24645
24959
  } else {
24646
24960
  s0 = peg$FAILED;
24647
24961
  if (peg$silentFails === 0) {
24648
- peg$fail(peg$e127);
24962
+ peg$fail(peg$e128);
24649
24963
  }
24650
24964
  }
24651
24965
  if (s0 === peg$FAILED) {
24652
- if (input.substr(peg$currPos, 4) === peg$c124) {
24653
- s0 = peg$c124;
24966
+ if (input.substr(peg$currPos, 4) === peg$c125) {
24967
+ s0 = peg$c125;
24654
24968
  peg$currPos += 4;
24655
24969
  } else {
24656
24970
  s0 = peg$FAILED;
24657
24971
  if (peg$silentFails === 0) {
24658
- peg$fail(peg$e128);
24972
+ peg$fail(peg$e129);
24659
24973
  }
24660
24974
  }
24661
24975
  if (s0 === peg$FAILED) {
24662
- if (input.substr(peg$currPos, 6) === peg$c125) {
24663
- s0 = peg$c125;
24976
+ if (input.substr(peg$currPos, 6) === peg$c126) {
24977
+ s0 = peg$c126;
24664
24978
  peg$currPos += 6;
24665
24979
  } else {
24666
24980
  s0 = peg$FAILED;
24667
24981
  if (peg$silentFails === 0) {
24668
- peg$fail(peg$e129);
24982
+ peg$fail(peg$e130);
24669
24983
  }
24670
24984
  }
24671
24985
  if (s0 === peg$FAILED) {
24672
- if (input.substr(peg$currPos, 3) === peg$c126) {
24673
- s0 = peg$c126;
24986
+ if (input.substr(peg$currPos, 3) === peg$c127) {
24987
+ s0 = peg$c127;
24674
24988
  peg$currPos += 3;
24675
24989
  } else {
24676
24990
  s0 = peg$FAILED;
24677
24991
  if (peg$silentFails === 0) {
24678
- peg$fail(peg$e130);
24992
+ peg$fail(peg$e131);
24679
24993
  }
24680
24994
  }
24681
24995
  if (s0 === peg$FAILED) {
24682
- if (input.substr(peg$currPos, 6) === peg$c127) {
24683
- s0 = peg$c127;
24996
+ if (input.substr(peg$currPos, 6) === peg$c128) {
24997
+ s0 = peg$c128;
24684
24998
  peg$currPos += 6;
24685
24999
  } else {
24686
25000
  s0 = peg$FAILED;
24687
25001
  if (peg$silentFails === 0) {
24688
- peg$fail(peg$e131);
25002
+ peg$fail(peg$e132);
24689
25003
  }
24690
25004
  }
24691
25005
  if (s0 === peg$FAILED) {
24692
- if (input.substr(peg$currPos, 4) === peg$c128) {
24693
- s0 = peg$c128;
25006
+ if (input.substr(peg$currPos, 4) === peg$c129) {
25007
+ s0 = peg$c129;
24694
25008
  peg$currPos += 4;
24695
25009
  } else {
24696
25010
  s0 = peg$FAILED;
24697
25011
  if (peg$silentFails === 0) {
24698
- peg$fail(peg$e132);
25012
+ peg$fail(peg$e133);
24699
25013
  }
24700
25014
  }
24701
25015
  if (s0 === peg$FAILED) {
24702
- if (input.substr(peg$currPos, 6) === peg$c129) {
24703
- s0 = peg$c129;
25016
+ if (input.substr(peg$currPos, 6) === peg$c130) {
25017
+ s0 = peg$c130;
24704
25018
  peg$currPos += 6;
24705
25019
  } else {
24706
25020
  s0 = peg$FAILED;
24707
25021
  if (peg$silentFails === 0) {
24708
- peg$fail(peg$e133);
25022
+ peg$fail(peg$e134);
24709
25023
  }
24710
25024
  }
24711
25025
  if (s0 === peg$FAILED) {
24712
- if (input.substr(peg$currPos, 5) === peg$c130) {
24713
- s0 = peg$c130;
25026
+ if (input.substr(peg$currPos, 5) === peg$c131) {
25027
+ s0 = peg$c131;
24714
25028
  peg$currPos += 5;
24715
25029
  } else {
24716
25030
  s0 = peg$FAILED;
24717
25031
  if (peg$silentFails === 0) {
24718
- peg$fail(peg$e134);
25032
+ peg$fail(peg$e135);
24719
25033
  }
24720
25034
  }
24721
25035
  if (s0 === peg$FAILED) {
24722
- if (input.substr(peg$currPos, 6) === peg$c131) {
24723
- s0 = peg$c131;
25036
+ if (input.substr(peg$currPos, 6) === peg$c132) {
25037
+ s0 = peg$c132;
24724
25038
  peg$currPos += 6;
24725
25039
  } else {
24726
25040
  s0 = peg$FAILED;
24727
25041
  if (peg$silentFails === 0) {
24728
- peg$fail(peg$e135);
25042
+ peg$fail(peg$e136);
24729
25043
  }
24730
25044
  }
24731
25045
  }
@@ -24752,13 +25066,125 @@ function peg$parse(input, options) {
24752
25066
  }
24753
25067
  return s0;
24754
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
+ }
24755
25181
  function peg$parsebitmarkMinusMinus() {
24756
25182
  let s0, s1;
24757
25183
  peg$silentFails++;
24758
25184
  s0 = peg$currPos;
24759
25185
  s1 = peg$parsebitmarkMinusMinusString();
24760
25186
  peg$savedPos = s0;
24761
- s1 = peg$f91(s1);
25187
+ s1 = peg$f92(s1);
24762
25188
  s0 = s1;
24763
25189
  peg$silentFails--;
24764
25190
  return s0;
@@ -24784,7 +25210,7 @@ function peg$parse(input, options) {
24784
25210
  }
24785
25211
  }
24786
25212
  peg$savedPos = s0;
24787
- s0 = peg$f92(s1, s2);
25213
+ s0 = peg$f93(s1, s2);
24788
25214
  peg$silentFails--;
24789
25215
  return s0;
24790
25216
  }
@@ -24794,7 +25220,7 @@ function peg$parse(input, options) {
24794
25220
  s1 = peg$parseNL();
24795
25221
  if (s1 !== peg$FAILED) {
24796
25222
  peg$savedPos = s0;
24797
- s1 = peg$f93();
25223
+ s1 = peg$f94();
24798
25224
  }
24799
25225
  s0 = s1;
24800
25226
  if (s0 === peg$FAILED) {
@@ -24923,7 +25349,7 @@ function peg$parse(input, options) {
24923
25349
  }
24924
25350
  if (s1 !== peg$FAILED) {
24925
25351
  peg$savedPos = s0;
24926
- s1 = peg$f94(s1);
25352
+ s1 = peg$f95(s1);
24927
25353
  }
24928
25354
  s0 = s1;
24929
25355
  }
@@ -24932,12 +25358,12 @@ function peg$parse(input, options) {
24932
25358
  function peg$parseBoldHalfTag() {
24933
25359
  let s0;
24934
25360
  if (input.charCodeAt(peg$currPos) === 42) {
24935
- s0 = peg$c132;
25361
+ s0 = peg$c133;
24936
25362
  peg$currPos++;
24937
25363
  } else {
24938
25364
  s0 = peg$FAILED;
24939
25365
  if (peg$silentFails === 0) {
24940
- peg$fail(peg$e136);
25366
+ peg$fail(peg$e137);
24941
25367
  }
24942
25368
  }
24943
25369
  return s0;
@@ -24945,12 +25371,12 @@ function peg$parse(input, options) {
24945
25371
  function peg$parseItalicHalfTag() {
24946
25372
  let s0;
24947
25373
  if (input.charCodeAt(peg$currPos) === 95) {
24948
- s0 = peg$c133;
25374
+ s0 = peg$c134;
24949
25375
  peg$currPos++;
24950
25376
  } else {
24951
25377
  s0 = peg$FAILED;
24952
25378
  if (peg$silentFails === 0) {
24953
- peg$fail(peg$e137);
25379
+ peg$fail(peg$e138);
24954
25380
  }
24955
25381
  }
24956
25382
  return s0;
@@ -24958,12 +25384,12 @@ function peg$parse(input, options) {
24958
25384
  function peg$parseLightHalfTag() {
24959
25385
  let s0;
24960
25386
  if (input.charCodeAt(peg$currPos) === 96) {
24961
- s0 = peg$c134;
25387
+ s0 = peg$c135;
24962
25388
  peg$currPos++;
24963
25389
  } else {
24964
25390
  s0 = peg$FAILED;
24965
25391
  if (peg$silentFails === 0) {
24966
- peg$fail(peg$e138);
25392
+ peg$fail(peg$e139);
24967
25393
  }
24968
25394
  }
24969
25395
  return s0;
@@ -24971,12 +25397,12 @@ function peg$parse(input, options) {
24971
25397
  function peg$parseHighlightHalfTag() {
24972
25398
  let s0;
24973
25399
  if (input.charCodeAt(peg$currPos) === 33) {
24974
- s0 = peg$c135;
25400
+ s0 = peg$c136;
24975
25401
  peg$currPos++;
24976
25402
  } else {
24977
25403
  s0 = peg$FAILED;
24978
25404
  if (peg$silentFails === 0) {
24979
- peg$fail(peg$e139);
25405
+ peg$fail(peg$e140);
24980
25406
  }
24981
25407
  }
24982
25408
  return s0;
@@ -25059,13 +25485,13 @@ function peg$parse(input, options) {
25059
25485
  }
25060
25486
  function peg$parseBodyBitOpenTag() {
25061
25487
  let s0;
25062
- if (input.substr(peg$currPos, 2) === peg$c136) {
25063
- s0 = peg$c136;
25488
+ if (input.substr(peg$currPos, 2) === peg$c137) {
25489
+ s0 = peg$c137;
25064
25490
  peg$currPos += 2;
25065
25491
  } else {
25066
25492
  s0 = peg$FAILED;
25067
25493
  if (peg$silentFails === 0) {
25068
- peg$fail(peg$e140);
25494
+ peg$fail(peg$e141);
25069
25495
  }
25070
25496
  }
25071
25497
  return s0;
@@ -25073,12 +25499,12 @@ function peg$parse(input, options) {
25073
25499
  function peg$parseBodyBitCloseTag() {
25074
25500
  let s0;
25075
25501
  if (input.charCodeAt(peg$currPos) === 93) {
25076
- s0 = peg$c137;
25502
+ s0 = peg$c138;
25077
25503
  peg$currPos++;
25078
25504
  } else {
25079
25505
  s0 = peg$FAILED;
25080
25506
  if (peg$silentFails === 0) {
25081
- peg$fail(peg$e141);
25507
+ peg$fail(peg$e142);
25082
25508
  }
25083
25509
  }
25084
25510
  return s0;
@@ -25124,7 +25550,7 @@ function peg$parse(input, options) {
25124
25550
  s3 = peg$parseBodyBitCloseTag();
25125
25551
  if (s3 !== peg$FAILED) {
25126
25552
  peg$savedPos = s0;
25127
- s0 = peg$f95(s2);
25553
+ s0 = peg$f96(s2);
25128
25554
  } else {
25129
25555
  peg$currPos = s0;
25130
25556
  s0 = peg$FAILED;
@@ -25214,7 +25640,7 @@ function peg$parse(input, options) {
25214
25640
  s3 = peg$parseBoldTag();
25215
25641
  if (s3 !== peg$FAILED) {
25216
25642
  peg$savedPos = s0;
25217
- s0 = peg$f96(s2);
25643
+ s0 = peg$f97(s2);
25218
25644
  } else {
25219
25645
  peg$currPos = s0;
25220
25646
  s0 = peg$FAILED;
@@ -25300,7 +25726,7 @@ function peg$parse(input, options) {
25300
25726
  s3 = peg$parseItalicTag();
25301
25727
  if (s3 !== peg$FAILED) {
25302
25728
  peg$savedPos = s0;
25303
- s0 = peg$f97(s2);
25729
+ s0 = peg$f98(s2);
25304
25730
  } else {
25305
25731
  peg$currPos = s0;
25306
25732
  s0 = peg$FAILED;
@@ -25386,7 +25812,7 @@ function peg$parse(input, options) {
25386
25812
  s3 = peg$parseLightTag();
25387
25813
  if (s3 !== peg$FAILED) {
25388
25814
  peg$savedPos = s0;
25389
- s0 = peg$f98(s2);
25815
+ s0 = peg$f99(s2);
25390
25816
  } else {
25391
25817
  peg$currPos = s0;
25392
25818
  s0 = peg$FAILED;
@@ -25472,7 +25898,7 @@ function peg$parse(input, options) {
25472
25898
  s3 = peg$parseHighlightTag();
25473
25899
  if (s3 !== peg$FAILED) {
25474
25900
  peg$savedPos = s0;
25475
- s0 = peg$f99(s2);
25901
+ s0 = peg$f100(s2);
25476
25902
  } else {
25477
25903
  peg$currPos = s0;
25478
25904
  s0 = peg$FAILED;
@@ -25557,22 +25983,22 @@ function peg$parse(input, options) {
25557
25983
  let s0, s1;
25558
25984
  peg$silentFails++;
25559
25985
  if (input.charCodeAt(peg$currPos) === 10) {
25560
- s0 = peg$c138;
25986
+ s0 = peg$c139;
25561
25987
  peg$currPos++;
25562
25988
  } else {
25563
25989
  s0 = peg$FAILED;
25564
25990
  if (peg$silentFails === 0) {
25565
- peg$fail(peg$e143);
25991
+ peg$fail(peg$e144);
25566
25992
  }
25567
25993
  }
25568
25994
  if (s0 === peg$FAILED) {
25569
- if (input.substr(peg$currPos, 2) === peg$c139) {
25570
- s0 = peg$c139;
25995
+ if (input.substr(peg$currPos, 2) === peg$c140) {
25996
+ s0 = peg$c140;
25571
25997
  peg$currPos += 2;
25572
25998
  } else {
25573
25999
  s0 = peg$FAILED;
25574
26000
  if (peg$silentFails === 0) {
25575
- peg$fail(peg$e144);
26001
+ peg$fail(peg$e145);
25576
26002
  }
25577
26003
  }
25578
26004
  if (s0 === peg$FAILED) {
@@ -25582,7 +26008,7 @@ function peg$parse(input, options) {
25582
26008
  } else {
25583
26009
  s0 = peg$FAILED;
25584
26010
  if (peg$silentFails === 0) {
25585
- peg$fail(peg$e145);
26011
+ peg$fail(peg$e146);
25586
26012
  }
25587
26013
  }
25588
26014
  }
@@ -25591,7 +26017,7 @@ function peg$parse(input, options) {
25591
26017
  if (s0 === peg$FAILED) {
25592
26018
  s1 = peg$FAILED;
25593
26019
  if (peg$silentFails === 0) {
25594
- peg$fail(peg$e142);
26020
+ peg$fail(peg$e143);
25595
26021
  }
25596
26022
  }
25597
26023
  return s0;
@@ -25604,7 +26030,7 @@ function peg$parse(input, options) {
25604
26030
  } else {
25605
26031
  s0 = peg$FAILED;
25606
26032
  if (peg$silentFails === 0) {
25607
- peg$fail(peg$e146);
26033
+ peg$fail(peg$e147);
25608
26034
  }
25609
26035
  }
25610
26036
  return s0;
@@ -25638,35 +26064,35 @@ function peg$parse(input, options) {
25638
26064
  let s0, s1, s2, s3, s4, s5, s6, s7, s8;
25639
26065
  s0 = peg$currPos;
25640
26066
  s1 = peg$currPos;
25641
- if (input.substr(peg$currPos, 4) === peg$c140) {
25642
- s2 = peg$c140;
26067
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26068
+ s2 = peg$c141;
25643
26069
  peg$currPos += 4;
25644
26070
  } else {
25645
26071
  s2 = peg$FAILED;
25646
26072
  if (peg$silentFails === 0) {
25647
- peg$fail(peg$e147);
26073
+ peg$fail(peg$e148);
25648
26074
  }
25649
26075
  }
25650
26076
  if (s2 !== peg$FAILED) {
25651
26077
  if (input.charCodeAt(peg$currPos) === 115) {
25652
- s3 = peg$c141;
26078
+ s3 = peg$c142;
25653
26079
  peg$currPos++;
25654
26080
  } else {
25655
26081
  s3 = peg$FAILED;
25656
26082
  if (peg$silentFails === 0) {
25657
- peg$fail(peg$e148);
26083
+ peg$fail(peg$e149);
25658
26084
  }
25659
26085
  }
25660
26086
  if (s3 === peg$FAILED) {
25661
26087
  s3 = null;
25662
26088
  }
25663
- if (input.substr(peg$currPos, 3) === peg$c142) {
25664
- s4 = peg$c142;
26089
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26090
+ s4 = peg$c143;
25665
26091
  peg$currPos += 3;
25666
26092
  } else {
25667
26093
  s4 = peg$FAILED;
25668
26094
  if (peg$silentFails === 0) {
25669
- peg$fail(peg$e149);
26095
+ peg$fail(peg$e150);
25670
26096
  }
25671
26097
  }
25672
26098
  if (s4 !== peg$FAILED) {
@@ -25744,35 +26170,35 @@ function peg$parse(input, options) {
25744
26170
  s0 = peg$currPos;
25745
26171
  s1 = peg$currPos;
25746
26172
  s2 = peg$currPos;
25747
- if (input.substr(peg$currPos, 4) === peg$c140) {
25748
- s3 = peg$c140;
26173
+ if (input.substr(peg$currPos, 4) === peg$c141) {
26174
+ s3 = peg$c141;
25749
26175
  peg$currPos += 4;
25750
26176
  } else {
25751
26177
  s3 = peg$FAILED;
25752
26178
  if (peg$silentFails === 0) {
25753
- peg$fail(peg$e147);
26179
+ peg$fail(peg$e148);
25754
26180
  }
25755
26181
  }
25756
26182
  if (s3 !== peg$FAILED) {
25757
26183
  if (input.charCodeAt(peg$currPos) === 115) {
25758
- s4 = peg$c141;
26184
+ s4 = peg$c142;
25759
26185
  peg$currPos++;
25760
26186
  } else {
25761
26187
  s4 = peg$FAILED;
25762
26188
  if (peg$silentFails === 0) {
25763
- peg$fail(peg$e148);
26189
+ peg$fail(peg$e149);
25764
26190
  }
25765
26191
  }
25766
26192
  if (s4 === peg$FAILED) {
25767
26193
  s4 = null;
25768
26194
  }
25769
- if (input.substr(peg$currPos, 3) === peg$c142) {
25770
- s5 = peg$c142;
26195
+ if (input.substr(peg$currPos, 3) === peg$c143) {
26196
+ s5 = peg$c143;
25771
26197
  peg$currPos += 3;
25772
26198
  } else {
25773
26199
  s5 = peg$FAILED;
25774
26200
  if (peg$silentFails === 0) {
25775
- peg$fail(peg$e149);
26201
+ peg$fail(peg$e150);
25776
26202
  }
25777
26203
  }
25778
26204
  if (s5 !== peg$FAILED) {
@@ -25787,13 +26213,13 @@ function peg$parse(input, options) {
25787
26213
  s2 = peg$FAILED;
25788
26214
  }
25789
26215
  if (s2 === peg$FAILED) {
25790
- if (input.substr(peg$currPos, 7) === peg$c143) {
25791
- s2 = peg$c143;
26216
+ if (input.substr(peg$currPos, 7) === peg$c144) {
26217
+ s2 = peg$c144;
25792
26218
  peg$currPos += 7;
25793
26219
  } else {
25794
26220
  s2 = peg$FAILED;
25795
26221
  if (peg$silentFails === 0) {
25796
- peg$fail(peg$e150);
26222
+ peg$fail(peg$e151);
25797
26223
  }
25798
26224
  }
25799
26225
  }
@@ -25858,7 +26284,7 @@ function peg$parse(input, options) {
25858
26284
  }
25859
26285
  s2 = input.substring(s2, peg$currPos);
25860
26286
  peg$savedPos = s0;
25861
- s0 = peg$f100(s1, s2);
26287
+ s0 = peg$f101(s1, s2);
25862
26288
  } else {
25863
26289
  peg$currPos = s0;
25864
26290
  s0 = peg$FAILED;
@@ -25873,7 +26299,7 @@ function peg$parse(input, options) {
25873
26299
  } else {
25874
26300
  s0 = peg$FAILED;
25875
26301
  if (peg$silentFails === 0) {
25876
- peg$fail(peg$e151);
26302
+ peg$fail(peg$e152);
25877
26303
  }
25878
26304
  }
25879
26305
  return s0;
@@ -44217,6 +44643,8 @@ var ConfigBuilder = class {
44217
44643
  format = "bitmark";
44218
44644
  } else if (tag.format === TagFormat.number) {
44219
44645
  format = "number";
44646
+ } else if (tag.format === TagFormat.coordinates) {
44647
+ format = "coordinates";
44220
44648
  }
44221
44649
  } else if (tagType === BitTagConfigKeyType.resource) {
44222
44650
  format = "string";