@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
@@ -12,103 +12,101 @@ const StringUtils_1 = require("../utils/StringUtils");
12
12
  * being broken (split) by a special charater.
13
13
  *
14
14
  * The special character is ^
15
- * To include the special character in a text where it breakscapes, use ^^ (once), ^^^ (twice), etc.
15
+ * To include the special character in a text which is breakscaped, use ^^ (once), ^^^ (twice), etc.
16
16
  *
17
- * The following sequences can be breakscaped:
18
- * - inline: == ==> =^=
19
- * - title block: (SOL)[##]#(space) ==> (SOL)[##]#^(space)
20
- * - new block: (SOL)|(WS EOL) ==> (SOL)|^(WS EOL)
21
- * - code block: (SOL)|code(:type) ==> (SOL)|^code(:type)
22
- * - image block: (SOL)|image:(url) ==> (SOL)|^image:(url)
23
- * - bullet list: (SOL)•(space) ==> (SOL)•^(space)
24
- * - ordered list: (SOL)•1(space) ==> (SOL)•^1(space)
25
- * - tag list +: (SOL)•+(space) ==> (SOL)•^+(space)
26
- * - tag list -: (SOL)•-(space) ==> (SOL)•^-(space)
27
- * - bold: ** ==> *^*
28
- * - light: `` ==> `^`
29
- * - italic: __ ==> _^_
30
- * - highlight: !! ==> !^!
31
- * - start of bit: [. ==> [^.
32
- * - start of property: [@ ==> [^@
33
- * - start of title: [# ==> [^#
34
- * - start of anchor: [▼ ==> [^▼
35
- * - start of reference: [► ==> [^►
36
- * - start of item/lead: [% ==> [^%
37
- * - start of instruction: [! ==> [^!
38
- * - start of hint: [? ==> [^?
39
- * - start of true statement: [+ ==> [^+
40
- * - start of false statement: [- ==> [^-
41
- * - start of sample solution: [$ ==> [^$
42
- * - start of gap: [_ ==> [^_
43
- * - start of mark: [= ==> [^=
44
- * - start of resource: [& ==> [^&
45
- * - end of tag: ] ==> ^]
17
+ * Any sequence can be breakscaped by breaking it with a ^ character.
46
18
  *
19
+ * The following unbreakscaping rules are applied when unbreakscaping text:
20
+ * - hat: ^ ==>
21
+ * - hat: ^^ ==> ^
22
+ * - hat: ^..N ==> ^..N-1
47
23
  *
48
- * The following are breakscaped with ^ in between. Just add more ^s to increase the number of ^ string:
49
- * - inline / card set start: =^= ==> =^^=
50
- * - footer: ~^~ ==> ~^^~
51
- * - title block: (SOL)[##]#^(space) ==> (SOL)[##]#^^(space)
52
- * - new block: (SOL)|^(WS EOL) ==> (SOL)|^^(WS EOL)
53
- * - code block: (SOL)|^code(:type) ==> (SOL)|^^code(:type)
54
- * - image block: (SOL)|^image:(url) ==> (SOL)|^^image:(url)
55
- * - bullet list: (SOL)•^(space) ==> (SOL)•^^(space)
56
- * - ordered list: (SOL)•^1(space) ==> (SOL)•^^1(space)
57
- * - tag list +: (SOL)•^+(space) ==> (SOL)•^^+(space)
58
- * - tag list -: (SOL)•^-(space) ==> (SOL)•^^-(space)
59
- * - bold: *^* ==> *^^*
60
- * - light: `^` ==> `^^`
61
- * - italic: _^_ ==> _^^_
62
- * - highlight: !^! ==> !^^!
63
- * - start of bit: [^. ==> [^^.
64
- * - start of property: [^@ ==> [^^@
65
- * - start of title: [^# ==> [^^#
66
- * - start of anchor: [^▼ ==> [^^▼
67
- * - start of reference: [^► ==> [^^►
68
- * - start of item/lead: [^% ==> [^^%
69
- * - start of instruction: [^! ==> [^^!
70
- * - start of hint: [^? ==> [^^?
71
- * - start of true statement: [^+ ==> [^^+
72
- * - start of false statement: [^- ==> [^^-
73
- * - start of sample solution: [^$ ==> [^^$
74
- * - start of gap: [^_ ==> [^^_
75
- * - start of mark: [^= ==> [^^=
76
- * - start of resource: [^& ==> [^^&
77
- * - end of tag: ^] ==> ^^]
24
+ * The following breakscaping rules are applied when breakscaping text:
25
+ * - hat: ^ ==> ^^
26
+ * - hat: ^^ ==> ^^^
27
+ * - hat: ^..N ==> ^..N+1
28
+ * - inline: == ==> =^=
29
+ * - title block: (SOL)[##]#(space) ==> (SOL)[##]#^(space)
30
+ * - new block: (SOL)|(WS EOL) ==> (SOL)|^(WS EOL)
31
+ * - code block: (SOL)|code(:type) ==> (SOL)|^code(:type)
32
+ * - image block: (SOL)|image:(url) ==> (SOL)|^image:(url)
33
+ * - bullet list: (SOL)(space) ==> (SOL)•^(space)
34
+ * - simple list: (SOL)•_(space) ==> (SOL)•^_(space)
35
+ * - ordered list (numeric): (SOL)•<numbers>(space) ==> (SOL)•^<numbers>(space)
36
+ * - ordered list: (roman,lower) (SOL)•<numbers>i(space) ==> (SOL)•^<numbers>i(space)
37
+ * - ordered list: (roman,upper) (SOL)•<numbers>I(space) ==> (SOL)•^<numbers>I(space)
38
+ * - ordered list: (SOL)•<letters>(space) ==> (SOL)•^<letters>(space)
39
+ * - tag list +: (SOL)•+(space) ==> (SOL)•^+(space)
40
+ * - tag list -: (SOL)•-(space) ==> (SOL)•^-(space)
41
+ * - bold: ** ==> *^*
42
+ * - half-bold (at end): *<end> ==> *^<end>
43
+ * - half-bold (at start): <start>* ==> <start>^*
44
+ * - light: `` ==> `^`
45
+ * - half-light (at end): `<end> ==> `^<end>
46
+ * - half-light (at start): <start>` ==> <start>^`
47
+ * - italic: __ ==> _^_
48
+ * - half-italic (at end): _<end> ==> _^<end>
49
+ * - half-italic (at start): <start>_ ==> <start>^_
50
+ * - highlight: !! ==> !^!
51
+ * - half-highlight (at end): !<end> ==> !^<end>
52
+ * - half-highlight (at start): <start>! ==> <start>^!
53
+ * - start of bit (at end): [<end> ==> [^<end>
54
+ * - start of bit: [. ==> [^.
55
+ * - start of property: [@ ==> [^@
56
+ * - start of title: [# ==> [^#
57
+ * - start of anchor: [▼ ==> [^▼
58
+ * - start of reference: [► ==> [^►
59
+ * - start of item/lead: [% ==> [^%
60
+ * - start of instruction: [! ==> [^!
61
+ * - start of hint: [? ==> [^?
62
+ * - start of true statement: [+ ==> [^+
63
+ * - start of false statement: [- ==> [^-
64
+ * - start of sample solution: [$ ==> [^$
65
+ * - start of gap: [_ ==> [^_
66
+ * - start of mark: [= ==> [^=
67
+ * - start of resource: [& ==> [^&
68
+ * - end of tag: ] ==> ^]
69
+ *
70
+ * In non- bitmark++ / bitmark-- text, breakscaping is only applied to bit tags.
71
+ * This is true for both breakscaping and unbreakscaping.
72
+ *
73
+ * The following unbreakscaping rules are applied when unbreakscaping plain text:
74
+ * - start of bit: <line start>[^. ==> <line start>[.
75
+ * - start of bit: <line start>[^^. ==> <line start>[^.
76
+ * - start of bit: <line start>[^..N. ==> <line start>[^..N-1.
77
+ *
78
+ * The following breakscaping rules are applied when breakscaping plain text:
79
+ * - start of bit: <line start>[. ==> <line start>[^.
80
+ * - start of bit: <line start>[^. ==> <line start>[^^.
81
+ * - start of bit: <line start>[^..N. ==> <line start>[^..N+1.
78
82
  */
79
83
  //
80
84
  // Breakscaping
81
85
  //
82
- const REGEX_MARKS = /([*`_!=~])([\^]*)\1/;
83
- const REGEX_BLOCKS = /^(\|)([\^]*)(code[\s]*|code:|image:|[\s]*$)/;
84
- const REGEX_TITLE_BLOCKS = /^([#]{1,3})([\^]*)([^\S\r\n]+)/;
85
- const REGEX_LIST_BLOCKS = /^()([\^]*)(1|\+|-|)([^\S\r\n]+)/;
86
- const REGEX_START_OF_TAG = /(\[)([\^]*)([.@#▼►%!?+\-$_=&])/;
87
- const REGEX_END_OF_TAG = /([\^]*)(])/;
88
- 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}`;
89
- const UNBREAKSCAPE_REGEX_SOURCE = BREAKSCAPE_REGEX_SOURCE.replace(/(\(\[\\\^\]\*\))/g, '\\^$1'); // Add ^ into the regex
90
- // Regex groups in BODY (bitmark++):
91
- // 1: start of MARK
92
- // 2: ^ in MARK
93
- // 3: start of BLOCK
94
- // 4: ^ in BLOCK
95
- // 5: end of BLOCK
96
- // 6: start of TITLE_BLOCK
97
- // 7: ^ in TITLE_BLOCK
98
- // 8: end of TITLE_BLOCK
99
- // 9: start of LIST_BLOCK
100
- // 10: ^ in LIST_BLOCK
101
- // 11: end of LIST_BLOCK part 1
102
- // 12: end of LIST_BLOCK part 2
103
- // 13: start of START_OF_TAG block
104
- // 14: ^ in START_OF_TAG block
105
- // 15: end of START_OF_TAG block
106
- // 16: ^ in END_OF_TAG block
107
- // 17: end of END_OF_TAG block
86
+ const REGEX_MARKS = /([*`_!=])\1/; // $1^$1
87
+ const REGEX_START = /^([*`_!=])/; // ^$2
88
+ const REGEX_END = /([*`_!=\\[])$/; // $3^
89
+ const REGEX_BLOCKS = /^(\|)(code[\s]*|code:|image:|[\s]*$)/; // $4^$5
90
+ const REGEX_TITLE_BLOCKS = /^([#]{1,3})([^\S\r\n]+)/; // $6^$7
91
+ const REGEX_LIST_BLOCKS = /^(•)([0-9]+[iI]*|[a-zA-Z]{1}|_|\+|-|)([^\S\r\n]+)/; // $8^$9$10
92
+ const REGEX_START_OF_TAG = /(\[)([.@#▼►%!?+\-$_=&])/; // $11^$12
93
+ const REGEX_FOOTER_DIVIDER = /^(~)(~~~)/; // $13^$14
94
+ const REGEX_PLAIN_TEXT_DIVIDER = /^(\$)(\$\$\$)/; // $15^$16
95
+ const REGEX_END_OF_TAG = /(\^*])/; // ^$17
96
+ const REGEX_HATS = /(\^+)/; // $18^ // Must be last
97
+ // 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}`;
98
+ 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}`;
108
99
  const BREAKSCAPE_REGEX = new RegExp(BREAKSCAPE_REGEX_SOURCE, 'gm');
109
- const BREAKSCAPE_REGEX_REPLACER = '$1$3$6$9$13^$2$1$4$5$7$8$10$11$12$14$15$16$17';
110
- const UNBREAKSCAPE_REGEX = new RegExp(UNBREAKSCAPE_REGEX_SOURCE, 'gm');
111
- const UNBREAKSCAPE_REGEX_REPLACER = BREAKSCAPE_REGEX_REPLACER.replace(/\^/g, ''); // Remove ^ from the regex replacer
100
+ // const BREAKSCAPE_REGEX_REPLACER = '$1$2$4$6$9$11$13$16^$1$3$5$7$8$10$12$14$15';
101
+ const BREAKSCAPE_REGEX_REPLACER = '$1$3$4$6$8$11$13$15$18^$1$2$5$7$9$10$12$14$16$17';
102
+ const BREAKSCAPE_BIT_TAG_ONLY_REGEX = new RegExp('^(\\[)(\\^*)(\\.)', 'gm');
103
+ const BREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER = '$1^$2$3';
104
+ // const UNBREAKSCAPE_REGEX = new RegExp(UNBREAKSCAPE_REGEX_SOURCE, 'gm');
105
+ // const UNBREAKSCAPE_REGEX_REPLACER = BREAKSCAPE_REGEX_REPLACER.replace(/\^/g, ''); // Remove ^ from the regex replacer
106
+ const UNBREAKSCAPE_REGEX = new RegExp('\\^([\\^]*)', 'gm');
107
+ const UNBREAKSCAPE_REGEX_REPLACER = '$1';
108
+ const UNBREAKSCAPE_BIT_TAG_ONLY_REGEX = new RegExp('^(\\[)\\^(\\^*)(\\.)', 'gm');
109
+ const UNBREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER = '$1$2$3';
112
110
  // Regex explanation:
113
111
  // - match a single | or • or # character at the start of a line and capture in group 1
114
112
  // This will capture all new block characters within the code text.
@@ -135,7 +133,9 @@ class Breakscape {
135
133
  const breakscapeStr = (str) => {
136
134
  if (!str)
137
135
  return str;
138
- str = str.replace(BREAKSCAPE_REGEX, BREAKSCAPE_REGEX_REPLACER);
136
+ const regex = opts.bitTagOnly ? BREAKSCAPE_BIT_TAG_ONLY_REGEX : BREAKSCAPE_REGEX;
137
+ const replacer = opts.bitTagOnly ? BREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER : BREAKSCAPE_REGEX_REPLACER;
138
+ str = str.replace(regex, replacer);
139
139
  return str;
140
140
  };
141
141
  if (Array.isArray(val)) {
@@ -168,7 +168,9 @@ class Breakscape {
168
168
  const unbreakscapeStr = (str) => {
169
169
  if (!str)
170
170
  return str;
171
- str = str.replace(UNBREAKSCAPE_REGEX, UNBREAKSCAPE_REGEX_REPLACER);
171
+ const regex = opts.bitTagOnly ? UNBREAKSCAPE_BIT_TAG_ONLY_REGEX : UNBREAKSCAPE_REGEX;
172
+ const replacer = opts.bitTagOnly ? UNBREAKSCAPE_BIT_TAG_ONLY_REGEX_REPLACER : UNBREAKSCAPE_REGEX_REPLACER;
173
+ str = str.replace(regex, replacer);
172
174
  return str;
173
175
  };
174
176
  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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"}
@@ -500,6 +500,16 @@ const BITS = {
500
500
  ],
501
501
  textFormatDefault: TextFormat_1.TextFormat.text,
502
502
  },
503
+ [BitType_1.BitType.formula]: {
504
+ since: '1.35.0',
505
+ tags: [
506
+ {
507
+ type: BitTagType_1.BitTagType.group,
508
+ configKey: GroupConfigKey_1.GroupConfigKey.group_standardTags,
509
+ },
510
+ ],
511
+ textFormatDefault: TextFormat_1.TextFormat.latex,
512
+ },
503
513
  [BitType_1.BitType.appCodeCell]: { since: '1.4.3', baseBitType: BitType_1.BitType.code },
504
514
  [BitType_1.BitType.appCodeEditor]: { since: '1.4.3', baseBitType: BitType_1.BitType.code },
505
515
  [BitType_1.BitType.appCodeIde]: { since: '1.4.3', baseBitType: BitType_1.BitType.code },