@hcengineering/text-markdown 0.7.5 → 0.7.18

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.
@@ -13,7 +13,7 @@
13
13
  // limitations under the License.
14
14
  //
15
15
 
16
- import { MarkupNode } from '@hcengineering/text-core'
16
+ import { MarkupNode, MarkupNodeType, MarkupMarkType } from '@hcengineering/text-core'
17
17
  import { markdownToMarkup, markupToMarkdown } from '..'
18
18
  import { isMarkdownsEquals } from '../compare'
19
19
 
@@ -912,6 +912,25 @@ Lorem ipsum dolor sit amet.
912
912
  }
913
913
  ]
914
914
  }
915
+ },
916
+ {
917
+ name: 'textColor',
918
+ markdown: '<span style="color: #abcdef" data-color="#abcdef">colored</span>',
919
+ markup: {
920
+ type: MarkupNodeType.doc,
921
+ content: [
922
+ {
923
+ type: MarkupNodeType.paragraph,
924
+ content: [
925
+ {
926
+ type: MarkupNodeType.text,
927
+ text: 'colored',
928
+ marks: [{ type: 'textColor' as MarkupMarkType, attrs: { color: '#abcdef' } }]
929
+ }
930
+ ]
931
+ }
932
+ ]
933
+ }
915
934
  }
916
935
  ]
917
936
 
@@ -924,11 +943,10 @@ Lorem ipsum dolor sit amet.
924
943
  })
925
944
  })
926
945
 
927
- describe('to markup and back', () => {
946
+ describe('to markdown', () => {
928
947
  tests.forEach(({ name, markdown, markup }) => {
929
948
  it(name, () => {
930
- const json = markdownToMarkup(markdown, options)
931
- const serialized = markupToMarkdown(json, options)
949
+ const serialized = markupToMarkdown(markup as MarkupNode, options)
932
950
  expect(serialized).toEqualMarkdown(markdown)
933
951
  })
934
952
  })
@@ -979,6 +997,109 @@ describe('markupToMarkdown', () => {
979
997
  }
980
998
  ]
981
999
  }
1000
+ },
1001
+ {
1002
+ name: 'textColor',
1003
+ markdown: '<span style="color: #abcdef" data-color="#abcdef">colored</span>',
1004
+ markup: {
1005
+ type: MarkupNodeType.doc,
1006
+ content: [
1007
+ {
1008
+ type: MarkupNodeType.paragraph,
1009
+ content: [
1010
+ {
1011
+ type: MarkupNodeType.text,
1012
+ text: 'colored',
1013
+ marks: [{ type: 'textColor' as MarkupMarkType, attrs: { color: '#abcdef' } }]
1014
+ }
1015
+ ]
1016
+ }
1017
+ ]
1018
+ }
1019
+ },
1020
+ {
1021
+ name: 'textColor + italic',
1022
+ markdown: '<span style="color: #abcdef" data-color="#abcdef">*styled*</span>',
1023
+ markup: {
1024
+ type: MarkupNodeType.doc,
1025
+ content: [
1026
+ {
1027
+ type: MarkupNodeType.paragraph,
1028
+ content: [
1029
+ {
1030
+ type: MarkupNodeType.text,
1031
+ text: 'styled',
1032
+ marks: [
1033
+ { type: 'textColor' as MarkupMarkType, attrs: { color: '#abcdef' } },
1034
+ { type: MarkupMarkType.em }
1035
+ ]
1036
+ }
1037
+ ]
1038
+ }
1039
+ ]
1040
+ }
1041
+ },
1042
+ {
1043
+ name: 'textStyle with font-family',
1044
+ markdown: '<span style="font-family: Arial">arial</span>',
1045
+ markup: {
1046
+ type: MarkupNodeType.doc,
1047
+ content: [
1048
+ {
1049
+ type: MarkupNodeType.paragraph,
1050
+ content: [
1051
+ {
1052
+ type: MarkupNodeType.text,
1053
+ text: 'arial',
1054
+ marks: [{ type: MarkupMarkType.textStyle, attrs: { fontFamily: 'Arial' } }]
1055
+ }
1056
+ ]
1057
+ }
1058
+ ]
1059
+ }
1060
+ },
1061
+ {
1062
+ name: 'textStyle with multiple properties',
1063
+ markdown: '<span style="font-family: Arial; font-size: 16px; font-weight: bold">styled</span>',
1064
+ markup: {
1065
+ type: MarkupNodeType.doc,
1066
+ content: [
1067
+ {
1068
+ type: MarkupNodeType.paragraph,
1069
+ content: [
1070
+ {
1071
+ type: MarkupNodeType.text,
1072
+ text: 'styled',
1073
+ marks: [
1074
+ {
1075
+ type: MarkupMarkType.textStyle,
1076
+ attrs: { fontFamily: 'Arial', fontSize: '16px', fontWeight: 'bold' }
1077
+ }
1078
+ ]
1079
+ }
1080
+ ]
1081
+ }
1082
+ ]
1083
+ }
1084
+ },
1085
+ {
1086
+ name: 'textStyle with color (no data-color)',
1087
+ markdown: '<span style="color: red">red</span>',
1088
+ markup: {
1089
+ type: MarkupNodeType.doc,
1090
+ content: [
1091
+ {
1092
+ type: MarkupNodeType.paragraph,
1093
+ content: [
1094
+ {
1095
+ type: MarkupNodeType.text,
1096
+ text: 'red',
1097
+ marks: [{ type: MarkupMarkType.textStyle, attrs: { color: 'red' } }]
1098
+ }
1099
+ ]
1100
+ }
1101
+ ]
1102
+ }
982
1103
  }
983
1104
  ]
984
1105
 
package/src/parser.ts CHANGED
@@ -50,8 +50,8 @@ interface ParsingMarkRule {
50
50
  }
51
51
 
52
52
  interface ParsingSpecialRule {
53
- type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType, node: boolean }
54
- getAttrs?: (tok: Token, state: MarkdownParseState) => Attrs
53
+ type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType, node: boolean } | undefined
54
+ getAttrs?: (tok: Token, state: MarkdownParseState) => Attrs | undefined
55
55
  }
56
56
 
57
57
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -161,8 +161,8 @@ class MarkdownParseState {
161
161
  if (tok === undefined) {
162
162
  break
163
163
  }
164
- // Check if we need to merge some content into
165
- // Merge <sub> </sub> into one html token
164
+
165
+ // Merge <sub> ... </sub> into one html token
166
166
  if (tok.type === 'html_inline' && tok.content.trim() === '<sub>') {
167
167
  while (_toks.length > 0) {
168
168
  const _tok = _toks.shift()
@@ -175,6 +175,19 @@ class MarkdownParseState {
175
175
  }
176
176
  }
177
177
 
178
+ // Merge <span ...> ... </span> into one html token
179
+ if (tok.type === 'html_inline' && tok.content.trim().startsWith('<span')) {
180
+ while (_toks.length > 0) {
181
+ const _tok = _toks.shift()
182
+ if (_tok !== undefined) {
183
+ tok.content += _tok.content
184
+ if (_tok.type === 'html_inline' && _tok.content.trim() === '</span>') {
185
+ break
186
+ }
187
+ }
188
+ }
189
+ }
190
+
178
191
  const handler = this.tokenHandlers[tok.type]
179
192
  if (handler === undefined) {
180
193
  throw new Error(`Token type '${String(tok.type)} not supported by Markdown parser`)
@@ -277,18 +290,22 @@ function addSpecMark (handlers: HandlersRecord, spec: ParsingMarkRule, type: str
277
290
  function addSpecialRule (handlers: HandlersRecord, spec: ParsingSpecialRule, type: string): void {
278
291
  handlers[type + '_open'] = (state, tok) => {
279
292
  const type = spec.type(state, tok)
280
- if (type.node) {
281
- state.openNode(type.type as MarkupNodeType, spec.getAttrs?.(tok, state) ?? {})
282
- } else {
283
- state.openMark({ type: type.type as MarkupMarkType, attrs: spec.getAttrs?.(tok, state) ?? {} })
293
+ if (type !== undefined) {
294
+ if (type.node) {
295
+ state.openNode(type.type as MarkupNodeType, spec.getAttrs?.(tok, state) ?? {})
296
+ } else {
297
+ state.openMark({ type: type.type as MarkupMarkType, attrs: spec.getAttrs?.(tok, state) ?? {} })
298
+ }
284
299
  }
285
300
  }
286
301
  handlers[type + '_close'] = (state, tok) => {
287
302
  const type = spec.type(state, tok)
288
- if (type.node) {
289
- state.closeNode()
290
- } else {
291
- state.closeMark(type.type as MarkupMarkType)
303
+ if (type !== undefined) {
304
+ if (type.node) {
305
+ state.closeNode()
306
+ } else {
307
+ state.closeMark(type.type as MarkupMarkType)
308
+ }
292
309
  }
293
310
  }
294
311
  }
@@ -696,7 +713,7 @@ export class MarkdownParser {
696
713
  }
697
714
 
698
715
  listRule: RuleCore = (state: TaskListStateCore): boolean => {
699
- const tokens = state.tokens
716
+ const tokens = (state as any).tokens
700
717
  const states: Array<{ closeIdx: number, lastItemIdx: number }> = []
701
718
 
702
719
  // step #1 - convert list items to todo items
@@ -783,7 +800,7 @@ function convertTodoItem (tokens: Token[], open: number): boolean {
783
800
  }
784
801
 
785
802
  const metaTok = inline.children.find(
786
- (tok) => tok.type === 'html_inline' && tok.content.startsWith('<!--') && tok.content.endsWith('-->')
803
+ (tok: Token) => tok.type === 'html_inline' && tok.content.startsWith('<!--') && tok.content.endsWith('-->')
787
804
  )
788
805
  if (metaTok !== undefined) {
789
806
  const metaValues = metaTok.content.slice(5, -4).split(',')
package/src/serializer.ts CHANGED
@@ -378,6 +378,49 @@ export const storeMarks: Record<string, MarkProcessor> = {
378
378
  mixable: false,
379
379
  expelEnclosingWhitespace: false,
380
380
  escape: false
381
+ },
382
+ textColor: {
383
+ open: (state, mark, parent, index) => {
384
+ if (mark.attrs?.color === undefined) {
385
+ return ''
386
+ }
387
+ return `<span style="color: ${mark.attrs.color}" data-color="${mark.attrs.color}">`
388
+ },
389
+ close: (state, mark, parent, index) => {
390
+ if (mark.attrs?.color === undefined) {
391
+ return ''
392
+ }
393
+ return '</span>'
394
+ },
395
+ mixable: false,
396
+ expelEnclosingWhitespace: false,
397
+ escape: false
398
+ },
399
+ textStyle: {
400
+ open: (state, mark, parent, index) => {
401
+ const attrs = mark.attrs ?? {}
402
+ if (Object.keys(attrs).length === 0) {
403
+ return ''
404
+ }
405
+ const styleAttrs = Object.entries(attrs)
406
+ .map(([key, value]) => {
407
+ const kebabKey = key.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)
408
+ return `${kebabKey}: ${value}`
409
+ })
410
+ .join('; ')
411
+
412
+ return `<span style="${styleAttrs}">`
413
+ },
414
+ close: (state, mark, parent, index) => {
415
+ const attrs = mark.attrs ?? {}
416
+ if (Object.keys(attrs).length === 0) {
417
+ return ''
418
+ }
419
+ return '</span>'
420
+ },
421
+ mixable: false,
422
+ expelEnclosingWhitespace: false,
423
+ escape: false
381
424
  }
382
425
  }
383
426
 
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAExG,OAAO,UAAU,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AA8D3D,UAAU,YAAY;IACpB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;CACb;AAGD,cAAM,kBAAkB;IAOpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAP3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;gBAG5E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAO3B,GAAG,IAAK,YAAY,GAAG,SAAS;IAIhC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAO5B,aAAa,CAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAY9D,OAAO,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAsB7B,QAAQ,CAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAKjC,SAAS,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,CAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI;IA8BxC,OAAO,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,UAAU,EAAO,GAAG,UAAU;IAcpF,QAAQ,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnD,SAAS,IAAK,UAAU;CAQzB;AA8ZD,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,OAAmC,CAAA;AAEjF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE5F,eAAO,MAAM,eAAe,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE3F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,qBAAa,cAAc;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJrC,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;IAC9E,UAAU,EAAE,UAAU,CAAA;gBAEQ,OAAO,EAAE,qBAAqB;IAW5D,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAahC,eAAe,EAAE,QAAQ,CAWxB;IAED,QAAQ,EAAE,QAAQ,CAgDjB;CACF"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAExG,OAAO,UAAU,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AA8D3D,UAAU,YAAY;IACpB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;CACb;AAGD,cAAM,kBAAkB;IAOpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAP3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;gBAG5E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAO3B,GAAG,IAAK,YAAY,GAAG,SAAS;IAIhC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAO5B,aAAa,CAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAY9D,OAAO,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAsB7B,QAAQ,CAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAKjC,SAAS,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,CAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI;IA2CxC,OAAO,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,UAAU,EAAO,GAAG,UAAU;IAcpF,QAAQ,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnD,SAAS,IAAK,UAAU;CAQzB;AAkaD,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,OAAmC,CAAA;AAEjF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE5F,eAAO,MAAM,eAAe,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE3F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,qBAAa,cAAc;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJrC,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;IAC9E,UAAU,EAAE,UAAU,CAAA;gBAEQ,OAAO,EAAE,qBAAqB;IAW5D,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAahC,eAAe,EAAE,QAAQ,CAWxB;IAED,QAAQ,EAAE,QAAQ,CAgDjB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}