@gmb/bitmark-parser-generator 1.34.0 → 1.35.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.
Files changed (114) hide show
  1. package/dist/browser/bitmark-parser-generator.min.js +1 -1
  2. package/dist/browser/bundle-report.html +2 -2
  3. package/dist/cjs/ast/Builder.js +18 -2
  4. package/dist/cjs/ast/Builder.js.map +1 -1
  5. package/dist/cjs/ast/writer/StreamWriter.js +13 -0
  6. package/dist/cjs/ast/writer/StreamWriter.js.map +1 -1
  7. package/dist/cjs/ast/writer/StringWriter.js +13 -0
  8. package/dist/cjs/ast/writer/StringWriter.js.map +1 -1
  9. package/dist/cjs/breakscaping/Breakscape.js +93 -91
  10. package/dist/cjs/breakscaping/Breakscape.js.map +1 -1
  11. package/dist/cjs/config/raw/bits.js +10 -0
  12. package/dist/cjs/config/raw/bits.js.map +1 -1
  13. package/dist/cjs/generated/build-info.js +1 -1
  14. package/dist/cjs/generated/parser/bitmark/bitmark-peggy-parser.js +311 -262
  15. package/dist/cjs/generated/parser/bitmark/bitmark-peggy-parser.js.map +1 -1
  16. package/dist/cjs/generator/bitmark/BitmarkGenerator.js +22 -2
  17. package/dist/cjs/generator/bitmark/BitmarkGenerator.js.map +1 -1
  18. package/dist/cjs/generator/json/JsonGenerator.js +75 -4
  19. package/dist/cjs/generator/json/JsonGenerator.js.map +1 -1
  20. package/dist/cjs/model/ast/NodeType.js +39 -36
  21. package/dist/cjs/model/ast/NodeType.js.map +1 -1
  22. package/dist/cjs/model/enum/BitType.js +1 -0
  23. package/dist/cjs/model/enum/BitType.js.map +1 -1
  24. package/dist/cjs/model/enum/TextFormat.js +1 -0
  25. package/dist/cjs/model/enum/TextFormat.js.map +1 -1
  26. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserHelper.js +13 -1
  27. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserHelper.js.map +1 -1
  28. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserProcessor.js +130 -43
  29. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserProcessor.js.map +1 -1
  30. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserTypes.js +3 -1
  31. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserTypes.js.map +1 -1
  32. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserValidator.js +3 -1
  33. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserValidator.js.map +1 -1
  34. package/dist/cjs/parser/json/JsonParser.js +13 -7
  35. package/dist/cjs/parser/json/JsonParser.js.map +1 -1
  36. package/dist/cjs/parser/text/TextParser.js +16 -1
  37. package/dist/cjs/parser/text/TextParser.js.map +1 -1
  38. package/dist/cjs/utils/StringUtils.js +40 -0
  39. package/dist/cjs/utils/StringUtils.js.map +1 -1
  40. package/dist/esm/ast/Builder.js +18 -2
  41. package/dist/esm/ast/Builder.js.map +1 -1
  42. package/dist/esm/ast/writer/StreamWriter.js +13 -0
  43. package/dist/esm/ast/writer/StreamWriter.js.map +1 -1
  44. package/dist/esm/ast/writer/StringWriter.js +13 -0
  45. package/dist/esm/ast/writer/StringWriter.js.map +1 -1
  46. package/dist/esm/breakscaping/Breakscape.js +93 -91
  47. package/dist/esm/breakscaping/Breakscape.js.map +1 -1
  48. package/dist/esm/config/raw/bits.js +10 -0
  49. package/dist/esm/config/raw/bits.js.map +1 -1
  50. package/dist/esm/generated/build-info.js +1 -1
  51. package/dist/esm/generated/parser/bitmark/bitmark-peggy-parser.js +311 -262
  52. package/dist/esm/generated/parser/bitmark/bitmark-peggy-parser.js.map +1 -1
  53. package/dist/esm/generator/bitmark/BitmarkGenerator.js +22 -2
  54. package/dist/esm/generator/bitmark/BitmarkGenerator.js.map +1 -1
  55. package/dist/esm/generator/json/JsonGenerator.js +75 -4
  56. package/dist/esm/generator/json/JsonGenerator.js.map +1 -1
  57. package/dist/esm/model/ast/NodeType.js +39 -36
  58. package/dist/esm/model/ast/NodeType.js.map +1 -1
  59. package/dist/esm/model/enum/BitType.js +1 -0
  60. package/dist/esm/model/enum/BitType.js.map +1 -1
  61. package/dist/esm/model/enum/TextFormat.js +1 -0
  62. package/dist/esm/model/enum/TextFormat.js.map +1 -1
  63. package/dist/esm/parser/bitmark/peg/BitmarkPegParserHelper.js +13 -1
  64. package/dist/esm/parser/bitmark/peg/BitmarkPegParserHelper.js.map +1 -1
  65. package/dist/esm/parser/bitmark/peg/BitmarkPegParserProcessor.js +130 -43
  66. package/dist/esm/parser/bitmark/peg/BitmarkPegParserProcessor.js.map +1 -1
  67. package/dist/esm/parser/bitmark/peg/BitmarkPegParserTypes.js +3 -1
  68. package/dist/esm/parser/bitmark/peg/BitmarkPegParserTypes.js.map +1 -1
  69. package/dist/esm/parser/bitmark/peg/BitmarkPegParserValidator.js +3 -1
  70. package/dist/esm/parser/bitmark/peg/BitmarkPegParserValidator.js.map +1 -1
  71. package/dist/esm/parser/json/JsonParser.js +13 -7
  72. package/dist/esm/parser/json/JsonParser.js.map +1 -1
  73. package/dist/esm/parser/text/TextParser.js +16 -1
  74. package/dist/esm/parser/text/TextParser.js.map +1 -1
  75. package/dist/esm/utils/StringUtils.js +40 -0
  76. package/dist/esm/utils/StringUtils.js.map +1 -1
  77. package/dist/types/ast/Builder.d.ts +14 -4
  78. package/dist/types/ast/Builder.d.ts.map +1 -1
  79. package/dist/types/ast/writer/StreamWriter.d.ts +2 -0
  80. package/dist/types/ast/writer/StreamWriter.d.ts.map +1 -1
  81. package/dist/types/ast/writer/StringWriter.d.ts +2 -0
  82. package/dist/types/ast/writer/StringWriter.d.ts.map +1 -1
  83. package/dist/types/ast/writer/Writer.d.ts +6 -0
  84. package/dist/types/ast/writer/Writer.d.ts.map +1 -1
  85. package/dist/types/breakscaping/Breakscape.d.ts +4 -0
  86. package/dist/types/breakscaping/Breakscape.d.ts.map +1 -1
  87. package/dist/types/config/raw/bits.d.ts.map +1 -1
  88. package/dist/types/generated/parser/bitmark/bitmark-peggy-parser.d.ts.map +1 -1
  89. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts +3 -1
  90. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts.map +1 -1
  91. package/dist/types/generator/json/JsonGenerator.d.ts +8 -0
  92. package/dist/types/generator/json/JsonGenerator.d.ts.map +1 -1
  93. package/dist/types/model/ast/NodeType.d.ts +78 -72
  94. package/dist/types/model/ast/NodeType.d.ts.map +1 -1
  95. package/dist/types/model/ast/Nodes.d.ts +7 -1
  96. package/dist/types/model/ast/Nodes.d.ts.map +1 -1
  97. package/dist/types/model/ast/TextNodes.d.ts +1 -1
  98. package/dist/types/model/ast/TextNodes.d.ts.map +1 -1
  99. package/dist/types/model/enum/BitType.d.ts +2 -0
  100. package/dist/types/model/enum/BitType.d.ts.map +1 -1
  101. package/dist/types/model/enum/TextFormat.d.ts +2 -0
  102. package/dist/types/model/enum/TextFormat.d.ts.map +1 -1
  103. package/dist/types/parser/bitmark/peg/BitmarkPegParserHelper.d.ts +1 -0
  104. package/dist/types/parser/bitmark/peg/BitmarkPegParserHelper.d.ts.map +1 -1
  105. package/dist/types/parser/bitmark/peg/BitmarkPegParserProcessor.d.ts +9 -2
  106. package/dist/types/parser/bitmark/peg/BitmarkPegParserProcessor.d.ts.map +1 -1
  107. package/dist/types/parser/bitmark/peg/BitmarkPegParserTypes.d.ts +8 -4
  108. package/dist/types/parser/bitmark/peg/BitmarkPegParserTypes.d.ts.map +1 -1
  109. package/dist/types/parser/bitmark/peg/BitmarkPegParserValidator.d.ts.map +1 -1
  110. package/dist/types/parser/json/JsonParser.d.ts.map +1 -1
  111. package/dist/types/parser/text/TextParser.d.ts.map +1 -1
  112. package/dist/types/utils/StringUtils.d.ts +24 -0
  113. package/dist/types/utils/StringUtils.d.ts.map +1 -1
  114. package/package.json +1 -1
@@ -14,6 +14,7 @@ class StringWriter {
14
14
  constructor() {
15
15
  this._string = '';
16
16
  this.endOfLineString = '\n';
17
+ this.lastWrite = '';
17
18
  }
18
19
  get isSync() {
19
20
  return true;
@@ -61,9 +62,11 @@ class StringWriter {
61
62
  return this;
62
63
  if (value != null) {
63
64
  this._buffer.push(value + this.endOfLineString);
65
+ this.lastWrite = value + this.endOfLineString;
64
66
  }
65
67
  else {
66
68
  this._buffer.push(this.endOfLineString);
69
+ this.lastWrite = this.endOfLineString;
67
70
  }
68
71
  return this;
69
72
  }
@@ -72,14 +75,19 @@ class StringWriter {
72
75
  return this;
73
76
  if (!values)
74
77
  return this;
78
+ let str = '';
75
79
  for (let i = 0, len = values.length; i < len; i++) {
76
80
  const value = values[i];
77
81
  this._buffer.push(value);
82
+ str += value;
78
83
  if (delimiter && i < len - 1) {
79
84
  this._buffer.push(delimiter);
85
+ str += delimiter;
80
86
  }
81
87
  this._buffer.push(this.endOfLineString);
88
+ str += this.endOfLineString;
82
89
  }
90
+ this.lastWrite = str;
83
91
  return this;
84
92
  }
85
93
  write(value) {
@@ -87,6 +95,8 @@ class StringWriter {
87
95
  return this;
88
96
  if (value == null)
89
97
  return this;
98
+ if (value)
99
+ this.lastWrite = value;
90
100
  this._buffer.push(value);
91
101
  return this;
92
102
  }
@@ -94,6 +104,9 @@ class StringWriter {
94
104
  this.write(' ');
95
105
  return this;
96
106
  }
107
+ getLastWrite() {
108
+ return this.lastWrite;
109
+ }
97
110
  }
98
111
  export { StringWriter };
99
112
  //# sourceMappingURL=StringWriter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringWriter.js","sourceRoot":"","sources":["../../../../src/ast/writer/StringWriter.ts"],"names":[],"mappings":";;;;;;;;;AAEA;;GAEG;AACH,MAAM,YAAY;IAAlB;QAEU,YAAO,GAAW,EAAE,CAAC;QACtB,oBAAe,GAAG,IAAI,CAAC;IAiFhC,CAAC;IA/EC,IAAW,MAAM;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEY,IAAI;;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KAAA;IAEY,KAAK;;YAChB,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KAAA;IAEM,QAAQ;QACb,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAEM,SAAS,CAAC,KAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,MAAgB,EAAE,SAAkB;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,SAAS,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"StringWriter.js","sourceRoot":"","sources":["../../../../src/ast/writer/StringWriter.ts"],"names":[],"mappings":"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"}
@@ -9,103 +9,101 @@ import { StringUtils } from '../utils/StringUtils';
9
9
  * being broken (split) by a special charater.
10
10
  *
11
11
  * The special character is ^
12
- * To include the special character in a text where it breakscapes, use ^^ (once), ^^^ (twice), etc.
12
+ * To include the special character in a text which is breakscaped, use ^^ (once), ^^^ (twice), etc.
13
13
  *
14
- * The following sequences can be breakscaped:
15
- * - inline: == ==> =^=
16
- * - title block: (SOL)[##]#(space) ==> (SOL)[##]#^(space)
17
- * - new block: (SOL)|(WS EOL) ==> (SOL)|^(WS EOL)
18
- * - code block: (SOL)|code(:type) ==> (SOL)|^code(:type)
19
- * - image block: (SOL)|image:(url) ==> (SOL)|^image:(url)
20
- * - bullet list: (SOL)•(space) ==> (SOL)•^(space)
21
- * - ordered list: (SOL)•1(space) ==> (SOL)•^1(space)
22
- * - tag list +: (SOL)•+(space) ==> (SOL)•^+(space)
23
- * - tag list -: (SOL)•-(space) ==> (SOL)•^-(space)
24
- * - bold: ** ==> *^*
25
- * - light: `` ==> `^`
26
- * - italic: __ ==> _^_
27
- * - highlight: !! ==> !^!
28
- * - start of bit: [. ==> [^.
29
- * - start of property: [@ ==> [^@
30
- * - start of title: [# ==> [^#
31
- * - start of anchor: [▼ ==> [^▼
32
- * - start of reference: [► ==> [^►
33
- * - start of item/lead: [% ==> [^%
34
- * - start of instruction: [! ==> [^!
35
- * - start of hint: [? ==> [^?
36
- * - start of true statement: [+ ==> [^+
37
- * - start of false statement: [- ==> [^-
38
- * - start of sample solution: [$ ==> [^$
39
- * - start of gap: [_ ==> [^_
40
- * - start of mark: [= ==> [^=
41
- * - start of resource: [& ==> [^&
42
- * - end of tag: ] ==> ^]
14
+ * Any sequence can be breakscaped by breaking it with a ^ character.
43
15
  *
16
+ * The following unbreakscaping rules are applied when unbreakscaping text:
17
+ * - hat: ^ ==>
18
+ * - hat: ^^ ==> ^
19
+ * - hat: ^..N ==> ^..N-1
44
20
  *
45
- * The following are breakscaped with ^ in between. Just add more ^s to increase the number of ^ string:
46
- * - inline / card set start: =^= ==> =^^=
47
- * - footer: ~^~ ==> ~^^~
48
- * - title block: (SOL)[##]#^(space) ==> (SOL)[##]#^^(space)
49
- * - new block: (SOL)|^(WS EOL) ==> (SOL)|^^(WS EOL)
50
- * - code block: (SOL)|^code(:type) ==> (SOL)|^^code(:type)
51
- * - image block: (SOL)|^image:(url) ==> (SOL)|^^image:(url)
52
- * - bullet list: (SOL)•^(space) ==> (SOL)•^^(space)
53
- * - ordered list: (SOL)•^1(space) ==> (SOL)•^^1(space)
54
- * - tag list +: (SOL)•^+(space) ==> (SOL)•^^+(space)
55
- * - tag list -: (SOL)•^-(space) ==> (SOL)•^^-(space)
56
- * - bold: *^* ==> *^^*
57
- * - light: `^` ==> `^^`
58
- * - italic: _^_ ==> _^^_
59
- * - highlight: !^! ==> !^^!
60
- * - start of bit: [^. ==> [^^.
61
- * - start of property: [^@ ==> [^^@
62
- * - start of title: [^# ==> [^^#
63
- * - start of anchor: [^▼ ==> [^^▼
64
- * - start of reference: [^► ==> [^^►
65
- * - start of item/lead: [^% ==> [^^%
66
- * - start of instruction: [^! ==> [^^!
67
- * - start of hint: [^? ==> [^^?
68
- * - start of true statement: [^+ ==> [^^+
69
- * - start of false statement: [^- ==> [^^-
70
- * - start of sample solution: [^$ ==> [^^$
71
- * - start of gap: [^_ ==> [^^_
72
- * - start of mark: [^= ==> [^^=
73
- * - start of resource: [^& ==> [^^&
74
- * - end of tag: ^] ==> ^^]
21
+ * The following breakscaping rules are applied when breakscaping text:
22
+ * - hat: ^ ==> ^^
23
+ * - hat: ^^ ==> ^^^
24
+ * - hat: ^..N ==> ^..N+1
25
+ * - inline: == ==> =^=
26
+ * - title block: (SOL)[##]#(space) ==> (SOL)[##]#^(space)
27
+ * - new block: (SOL)|(WS EOL) ==> (SOL)|^(WS EOL)
28
+ * - code block: (SOL)|code(:type) ==> (SOL)|^code(:type)
29
+ * - image block: (SOL)|image:(url) ==> (SOL)|^image:(url)
30
+ * - bullet list: (SOL)(space) ==> (SOL)•^(space)
31
+ * - simple list: (SOL)•_(space) ==> (SOL)•^_(space)
32
+ * - ordered list (numeric): (SOL)•<numbers>(space) ==> (SOL)•^<numbers>(space)
33
+ * - ordered list: (roman,lower) (SOL)•<numbers>i(space) ==> (SOL)•^<numbers>i(space)
34
+ * - ordered list: (roman,upper) (SOL)•<numbers>I(space) ==> (SOL)•^<numbers>I(space)
35
+ * - ordered list: (SOL)•<letters>(space) ==> (SOL)•^<letters>(space)
36
+ * - tag list +: (SOL)•+(space) ==> (SOL)•^+(space)
37
+ * - tag list -: (SOL)•-(space) ==> (SOL)•^-(space)
38
+ * - bold: ** ==> *^*
39
+ * - half-bold (at end): *<end> ==> *^<end>
40
+ * - half-bold (at start): <start>* ==> <start>^*
41
+ * - light: `` ==> `^`
42
+ * - half-light (at end): `<end> ==> `^<end>
43
+ * - half-light (at start): <start>` ==> <start>^`
44
+ * - italic: __ ==> _^_
45
+ * - half-italic (at end): _<end> ==> _^<end>
46
+ * - half-italic (at start): <start>_ ==> <start>^_
47
+ * - highlight: !! ==> !^!
48
+ * - half-highlight (at end): !<end> ==> !^<end>
49
+ * - half-highlight (at start): <start>! ==> <start>^!
50
+ * - start of bit (at end): [<end> ==> [^<end>
51
+ * - start of bit: [. ==> [^.
52
+ * - start of property: [@ ==> [^@
53
+ * - start of title: [# ==> [^#
54
+ * - start of anchor: [▼ ==> [^▼
55
+ * - start of reference: [► ==> [^►
56
+ * - start of item/lead: [% ==> [^%
57
+ * - start of instruction: [! ==> [^!
58
+ * - start of hint: [? ==> [^?
59
+ * - start of true statement: [+ ==> [^+
60
+ * - start of false statement: [- ==> [^-
61
+ * - start of sample solution: [$ ==> [^$
62
+ * - start of gap: [_ ==> [^_
63
+ * - start of mark: [= ==> [^=
64
+ * - start of resource: [& ==> [^&
65
+ * - end of tag: ] ==> ^]
66
+ *
67
+ * In non- bitmark++ / bitmark-- text, breakscaping is only applied to bit tags.
68
+ * This is true for both breakscaping and unbreakscaping.
69
+ *
70
+ * The following unbreakscaping rules are applied when unbreakscaping plain text:
71
+ * - start of bit: <line start>[^. ==> <line start>[.
72
+ * - start of bit: <line start>[^^. ==> <line start>[^.
73
+ * - start of bit: <line start>[^..N. ==> <line start>[^..N-1.
74
+ *
75
+ * The following breakscaping rules are applied when breakscaping plain text:
76
+ * - start of bit: <line start>[. ==> <line start>[^.
77
+ * - start of bit: <line start>[^. ==> <line start>[^^.
78
+ * - start of bit: <line start>[^..N. ==> <line start>[^..N+1.
75
79
  */
76
80
  //
77
81
  // Breakscaping
78
82
  //
79
- const REGEX_MARKS = /([*`_!=~])([\^]*)\1/;
80
- const REGEX_BLOCKS = /^(\|)([\^]*)(code[\s]*|code:|image:|[\s]*$)/;
81
- const REGEX_TITLE_BLOCKS = /^([#]{1,3})([\^]*)([^\S\r\n]+)/;
82
- const REGEX_LIST_BLOCKS = /^()([\^]*)(1|\+|-|)([^\S\r\n]+)/;
83
- const REGEX_START_OF_TAG = /(\[)([\^]*)([.@#▼►%!?+\-$_=&])/;
84
- const REGEX_END_OF_TAG = /([\^]*)(])/;
85
- const BREAKSCAPE_REGEX_SOURCE = `${REGEX_MARKS.source}|${REGEX_BLOCKS.source}|${REGEX_TITLE_BLOCKS.source}|${REGEX_LIST_BLOCKS.source}|${REGEX_START_OF_TAG.source}|${REGEX_END_OF_TAG.source}`;
86
- const UNBREAKSCAPE_REGEX_SOURCE = BREAKSCAPE_REGEX_SOURCE.replace(/(\(\[\\\^\]\*\))/g, '\\^$1'); // Add ^ into the regex
87
- // Regex groups in BODY (bitmark++):
88
- // 1: start of MARK
89
- // 2: ^ in MARK
90
- // 3: start of BLOCK
91
- // 4: ^ in BLOCK
92
- // 5: end of BLOCK
93
- // 6: start of TITLE_BLOCK
94
- // 7: ^ in TITLE_BLOCK
95
- // 8: end of TITLE_BLOCK
96
- // 9: start of LIST_BLOCK
97
- // 10: ^ in LIST_BLOCK
98
- // 11: end of LIST_BLOCK part 1
99
- // 12: end of LIST_BLOCK part 2
100
- // 13: start of START_OF_TAG block
101
- // 14: ^ in START_OF_TAG block
102
- // 15: end of START_OF_TAG block
103
- // 16: ^ in END_OF_TAG block
104
- // 17: end of END_OF_TAG block
83
+ const REGEX_MARKS = /([*`_!=])\1/; // $1^$1
84
+ const REGEX_START = /^([*`_!=])/; // ^$2
85
+ const REGEX_END = /([*`_!=\\[])$/; // $3^
86
+ const REGEX_BLOCKS = /^(\|)(code[\s]*|code:|image:|[\s]*$)/; // $4^$5
87
+ const REGEX_TITLE_BLOCKS = /^([#]{1,3})([^\S\r\n]+)/; // $6^$7
88
+ const REGEX_LIST_BLOCKS = /^(•)([0-9]+[iI]*|[a-zA-Z]{1}|_|\+|-|)([^\S\r\n]+)/; // $8^$9$10
89
+ const REGEX_START_OF_TAG = /(\[)([.@#▼►%!?+\-$_=&])/; // $11^$12
90
+ const REGEX_FOOTER_DIVIDER = /^(~)(~~~)/; // $13^$14
91
+ const REGEX_PLAIN_TEXT_DIVIDER = /^(\$)(\$\$\$)/; // $15^$16
92
+ const REGEX_END_OF_TAG = /(\^*])/; // ^$17
93
+ const REGEX_HATS = /(\^+)/; // $18^ // Must be last
94
+ // const BREAKSCAPE_REGEX_SOURCE = `${REGEX_MARKS.source}|${REGEX_BLOCKS.source}|${REGEX_TITLE_BLOCKS.source}|${REGEX_LIST_BLOCKS.source}|${REGEX_START_OF_TAG.source}|${REGEX_FOOTER_DIVIDER.source}|${REGEX_PLAIN_TEXT_DIVIDER.source}|${REGEX_END_OF_TAG.source}|${REGEX_HATS.source}`;
95
+ const BREAKSCAPE_REGEX_SOURCE = `${REGEX_MARKS.source}|${REGEX_START.source}|${REGEX_END.source}|${REGEX_BLOCKS.source}|${REGEX_TITLE_BLOCKS.source}|${REGEX_LIST_BLOCKS.source}|${REGEX_START_OF_TAG.source}|${REGEX_FOOTER_DIVIDER.source}|${REGEX_PLAIN_TEXT_DIVIDER.source}|${REGEX_END_OF_TAG.source}|${REGEX_HATS.source}`;
105
96
  const BREAKSCAPE_REGEX = new RegExp(BREAKSCAPE_REGEX_SOURCE, 'gm');
106
- const BREAKSCAPE_REGEX_REPLACER = '$1$3$6$9$13^$2$1$4$5$7$8$10$11$12$14$15$16$17';
107
- const UNBREAKSCAPE_REGEX = new RegExp(UNBREAKSCAPE_REGEX_SOURCE, 'gm');
108
- const UNBREAKSCAPE_REGEX_REPLACER = BREAKSCAPE_REGEX_REPLACER.replace(/\^/g, ''); // Remove ^ from the regex replacer
97
+ // const BREAKSCAPE_REGEX_REPLACER = '$1$2$4$6$9$11$13$16^$1$3$5$7$8$10$12$14$15';
98
+ const BREAKSCAPE_REGEX_REPLACER = '$1$3$4$6$8$11$13$15$18^$1$2$5$7$9$10$12$14$16$17';
99
+ const BREAKSCAPE_BIT_TAG_ONLY_REGEX = new RegExp('^(\\[)(\\^*)(\\.)', 'gm');
100
+ const BREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER = '$1^$2$3';
101
+ // const UNBREAKSCAPE_REGEX = new RegExp(UNBREAKSCAPE_REGEX_SOURCE, 'gm');
102
+ // const UNBREAKSCAPE_REGEX_REPLACER = BREAKSCAPE_REGEX_REPLACER.replace(/\^/g, ''); // Remove ^ from the regex replacer
103
+ const UNBREAKSCAPE_REGEX = new RegExp('\\^([\\^]*)', 'gm');
104
+ const UNBREAKSCAPE_REGEX_REPLACER = '$1';
105
+ const UNBREAKSCAPE_BIT_TAG_ONLY_REGEX = new RegExp('^(\\[)\\^(\\^*)(\\.)', 'gm');
106
+ const UNBREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER = '$1$2$3';
109
107
  // Regex explanation:
110
108
  // - match a single | or • or # character at the start of a line and capture in group 1
111
109
  // This will capture all new block characters within the code text.
@@ -132,7 +130,9 @@ class Breakscape {
132
130
  const breakscapeStr = (str) => {
133
131
  if (!str)
134
132
  return str;
135
- str = str.replace(BREAKSCAPE_REGEX, BREAKSCAPE_REGEX_REPLACER);
133
+ const regex = opts.bitTagOnly ? BREAKSCAPE_BIT_TAG_ONLY_REGEX : BREAKSCAPE_REGEX;
134
+ const replacer = opts.bitTagOnly ? BREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER : BREAKSCAPE_REGEX_REPLACER;
135
+ str = str.replace(regex, replacer);
136
136
  return str;
137
137
  };
138
138
  if (Array.isArray(val)) {
@@ -165,7 +165,9 @@ class Breakscape {
165
165
  const unbreakscapeStr = (str) => {
166
166
  if (!str)
167
167
  return str;
168
- str = str.replace(UNBREAKSCAPE_REGEX, UNBREAKSCAPE_REGEX_REPLACER);
168
+ const regex = opts.bitTagOnly ? UNBREAKSCAPE_BIT_TAG_ONLY_REGEX : UNBREAKSCAPE_REGEX;
169
+ const replacer = opts.bitTagOnly ? UNBREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER : UNBREAKSCAPE_REGEX_REPLACER;
170
+ str = str.replace(regex, replacer);
169
171
  return str;
170
172
  };
171
173
  if (Array.isArray(val)) {
@@ -1 +1 @@
1
- {"version":3,"file":"Breakscape.js","sourceRoot":"","sources":["../../../src/breakscaping/Breakscape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Breakscape.js","sourceRoot":"","sources":["../../../src/breakscaping/Breakscape.ts"],"names":[],"mappings":"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"}
@@ -497,6 +497,16 @@ const BITS = {
497
497
  ],
498
498
  textFormatDefault: TextFormat.text,
499
499
  },
500
+ [BitType.formula]: {
501
+ since: '1.35.0',
502
+ tags: [
503
+ {
504
+ type: BitTagType.group,
505
+ configKey: GroupConfigKey.group_standardTags,
506
+ },
507
+ ],
508
+ textFormatDefault: TextFormat.latex,
509
+ },
500
510
  [BitType.appCodeCell]: { since: '1.4.3', baseBitType: BitType.code },
501
511
  [BitType.appCodeEditor]: { since: '1.4.3', baseBitType: BitType.code },
502
512
  [BitType.appCodeIde]: { since: '1.4.3', baseBitType: BitType.code },