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