@openleaf-editor/core 0.1.0-beta.1 → 0.1.0-beta.3

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 (101) hide show
  1. package/README.md +115 -0
  2. package/dist/autolink.d.ts +12 -0
  3. package/dist/autolink.d.ts.map +1 -0
  4. package/dist/autolink.js +136 -0
  5. package/dist/autolink.js.map +1 -0
  6. package/dist/command-helpers.d.ts +8 -0
  7. package/dist/command-helpers.d.ts.map +1 -0
  8. package/dist/command-helpers.js +36 -0
  9. package/dist/command-helpers.js.map +1 -0
  10. package/dist/commands.d.ts +43 -22
  11. package/dist/commands.d.ts.map +1 -1
  12. package/dist/commands.js +513 -115
  13. package/dist/commands.js.map +1 -1
  14. package/dist/css.d.ts +1 -123
  15. package/dist/css.d.ts.map +1 -1
  16. package/dist/css.js +1 -214
  17. package/dist/css.js.map +1 -1
  18. package/dist/disclosure.d.ts +21 -0
  19. package/dist/disclosure.d.ts.map +1 -0
  20. package/dist/disclosure.js +144 -0
  21. package/dist/disclosure.js.map +1 -0
  22. package/dist/elements.d.ts +2 -0
  23. package/dist/elements.d.ts.map +1 -0
  24. package/dist/elements.js +2 -0
  25. package/dist/elements.js.map +1 -0
  26. package/dist/embed.d.ts +2 -0
  27. package/dist/embed.d.ts.map +1 -0
  28. package/dist/embed.js +2 -0
  29. package/dist/embed.js.map +1 -0
  30. package/dist/errors.d.ts +38 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +40 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/extensions.d.ts +46 -5
  35. package/dist/extensions.d.ts.map +1 -1
  36. package/dist/extensions.js +292 -65
  37. package/dist/extensions.js.map +1 -1
  38. package/dist/formats.d.ts +44 -0
  39. package/dist/formats.d.ts.map +1 -0
  40. package/dist/formats.js +123 -0
  41. package/dist/formats.js.map +1 -0
  42. package/dist/html.d.ts +32 -2
  43. package/dist/html.d.ts.map +1 -1
  44. package/dist/html.js +185 -31
  45. package/dist/html.js.map +1 -1
  46. package/dist/index.d.ts +27 -6
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +44 -10
  49. package/dist/index.js.map +1 -1
  50. package/dist/insert-commands.d.ts +172 -0
  51. package/dist/insert-commands.d.ts.map +1 -0
  52. package/dist/insert-commands.js +560 -0
  53. package/dist/insert-commands.js.map +1 -0
  54. package/dist/isolating-selection.d.ts +41 -0
  55. package/dist/isolating-selection.d.ts.map +1 -0
  56. package/dist/isolating-selection.js +162 -0
  57. package/dist/isolating-selection.js.map +1 -0
  58. package/dist/keymap.d.ts.map +1 -1
  59. package/dist/keymap.js +6 -3
  60. package/dist/keymap.js.map +1 -1
  61. package/dist/noneditable.d.ts +14 -0
  62. package/dist/noneditable.d.ts.map +1 -0
  63. package/dist/noneditable.js +107 -0
  64. package/dist/noneditable.js.map +1 -0
  65. package/dist/plugins.d.ts +20 -2
  66. package/dist/plugins.d.ts.map +1 -1
  67. package/dist/plugins.js +27 -2
  68. package/dist/plugins.js.map +1 -1
  69. package/dist/preserve.d.ts +76 -0
  70. package/dist/preserve.d.ts.map +1 -1
  71. package/dist/preserve.js +308 -58
  72. package/dist/preserve.js.map +1 -1
  73. package/dist/schema.d.ts +15 -0
  74. package/dist/schema.d.ts.map +1 -1
  75. package/dist/schema.js +356 -76
  76. package/dist/schema.js.map +1 -1
  77. package/dist/structure.d.ts +76 -0
  78. package/dist/structure.d.ts.map +1 -0
  79. package/dist/structure.js +422 -0
  80. package/dist/structure.js.map +1 -0
  81. package/dist/tables.d.ts +60 -1
  82. package/dist/tables.d.ts.map +1 -1
  83. package/dist/tables.js +617 -35
  84. package/dist/tables.js.map +1 -1
  85. package/dist/testing.d.ts +3 -0
  86. package/dist/testing.d.ts.map +1 -0
  87. package/dist/testing.js +3 -0
  88. package/dist/testing.js.map +1 -0
  89. package/dist/tokens.d.ts +36 -0
  90. package/dist/tokens.d.ts.map +1 -0
  91. package/dist/tokens.js +116 -0
  92. package/dist/tokens.js.map +1 -0
  93. package/dist/url.d.ts +1 -25
  94. package/dist/url.d.ts.map +1 -1
  95. package/dist/url.js +1 -77
  96. package/dist/url.js.map +1 -1
  97. package/dist/visual-aids.d.ts +20 -0
  98. package/dist/visual-aids.d.ts.map +1 -0
  99. package/dist/visual-aids.js +149 -0
  100. package/dist/visual-aids.js.map +1 -0
  101. package/package.json +16 -1
package/dist/schema.js CHANGED
@@ -8,9 +8,11 @@
8
8
  * there rather than at the package boundary.
9
9
  */
10
10
  import { Schema } from 'prosemirror-model';
11
- import { applyStyleAttribute, parseDeclarations, safeAlign, safeColor } from './css.js';
12
- import { serializationTarget, unknownBlock, unknownInline } from './preserve.js';
11
+ import { INLINE_STYLE_PROPERTIES, applyStyleAttribute, indentCss, indentLevels, isFullyModelledStyle, modelledValue, parseDeclarations, safeAlign, safeColor, safeDir, safeFontFamily, safeFontSize, safeLang, safeLineHeight, safeListStyle, serializeDeclarations } from './css.js';
12
+ import { isLosslesslyUnwrappable, serializationTarget, unknownBlock, unknownInline } from './preserve.js';
13
+ import { audio, details, figcaption, figure, iframe, imageDomAttrs, imageParseAttrs, isEmptyNamedAnchorElement, named_anchor, page_break, summary, video, } from './structure.js';
13
14
  import { table, table_cell, table_header, table_row } from './tables.js';
15
+ import { safeId } from './tokens.js';
14
16
  import { isSafeUrl } from './url.js';
15
17
  /**
16
18
  * Read the attributes every text block shares: direction and alignment.
@@ -23,27 +25,61 @@ import { isSafeUrl } from './url.js';
23
25
  * declaration silently centres nothing.
24
26
  */
25
27
  function textBlockAttrs(el) {
26
- const dir = el.getAttribute('dir');
27
- const declaration = parseDeclarations(el.getAttribute('style')).get('text-align');
28
- return { dir, align: safeAlign(declaration ?? el.getAttribute('align'), dir) };
28
+ const dir = safeDir(el.getAttribute('dir'));
29
+ const declarations = parseDeclarations(el.getAttribute('style'));
30
+ return {
31
+ dir,
32
+ align: safeAlign(declarations.get('text-align') ?? el.getAttribute('align'), dir),
33
+ lineHeight: safeLineHeight(declarations.get('line-height') ?? null),
34
+ indent: readIndent(declarations),
35
+ };
36
+ }
37
+ function readIndent(declarations) {
38
+ for (const property of [
39
+ 'padding-inline-start',
40
+ 'margin-inline-start',
41
+ 'padding-left',
42
+ 'margin-left',
43
+ ]) {
44
+ const steps = indentLevels(declarations.get(property));
45
+ if (steps !== null)
46
+ return steps;
47
+ }
48
+ return null;
49
+ }
50
+ function headingAttrs(el, level) {
51
+ return { level, id: safeId(el.getAttribute('id')), ...textBlockAttrs(el) };
29
52
  }
30
53
  /**
31
54
  * Write them back.
32
55
  *
33
- * Alignment goes out as `style="text-align:..."` and never as the legacy
34
- * attribute, so stored content converges on the one form that is still valid
35
- * HTML. The `align` attribute the value may have been read from is dropped from
36
- * the carried residue by extensions.ts, which is what stops the two spellings
37
- * being emitted side by side with a chance to disagree.
56
+ * Alignment, line height and indent go out as a single `style` attribute in a
57
+ * stable order, never as the legacy `align` attribute, so stored content
58
+ * converges on the form that is still valid HTML. The `align` attribute the
59
+ * value may have been read from is dropped from the carried residue by
60
+ * extensions.ts.
38
61
  */
39
62
  function textBlockDOMAttrs(attrs) {
40
63
  const out = {};
41
64
  const dir = attrs['dir'];
42
65
  if (dir !== null)
43
66
  out['dir'] = dir;
67
+ const id = attrs['id'];
68
+ if (id)
69
+ out['id'] = id;
70
+ const declarations = new Map();
44
71
  const align = attrs['align'];
45
72
  if (align !== null)
46
- out['style'] = `text-align:${align}`;
73
+ declarations.set('text-align', align);
74
+ const lineHeight = attrs['lineHeight'];
75
+ if (lineHeight !== null)
76
+ declarations.set('line-height', lineHeight);
77
+ const indent = attrs['indent'];
78
+ if (indent !== null && indent > 0)
79
+ declarations.set('padding-inline-start', indentCss(indent));
80
+ const style = serializeDeclarations(declarations);
81
+ if (style !== null)
82
+ out['style'] = style;
47
83
  return out;
48
84
  }
49
85
  /**
@@ -72,6 +108,57 @@ function textBlockToDOM(tag, attrs) {
72
108
  return elementWithStyle(tag, domAttrs);
73
109
  return Object.keys(domAttrs).length > 0 ? [tag, domAttrs, 0] : [tag, 0];
74
110
  }
111
+ /**
112
+ * The `start` of an ordered list, or null when the attribute is not a number.
113
+ *
114
+ * `Number('abc')` is `NaN`, and `NaN` is a perfectly good value to store on a
115
+ * node -- so `<ol start="abc">` was stored as `NaN` and serialized as the string
116
+ * `start="NaN"`, turning a value the browser ignores into one it still ignores
117
+ * but that is now in the customer's database with our fingerprints on it.
118
+ * Returning null instead lets extensions.ts carry the original spelling as
119
+ * residue, so the attribute survives without being interpreted.
120
+ *
121
+ * Exported so that the carry mechanism asks the same question this does. Two
122
+ * copies of "is this a valid start" is how they would disagree and emit the
123
+ * attribute twice, or neither time.
124
+ */
125
+ export function listStart(value) {
126
+ if (value === null || value === undefined)
127
+ return null;
128
+ const parsed = Number.parseInt(value.trim(), 10);
129
+ return Number.isFinite(parsed) ? parsed : null;
130
+ }
131
+ function listAttrs(el, ordered) {
132
+ const declarations = parseDeclarations(el.getAttribute('style'));
133
+ const fromStyle = safeListStyle(declarations.get('list-style-type') ?? null);
134
+ const fromType = safeListStyle(el.getAttribute('type'));
135
+ const listStyle = fromStyle ?? fromType;
136
+ if (!ordered)
137
+ return { listStyle };
138
+ return { start: listStart(el.getAttribute('start')) ?? 1, listStyle };
139
+ }
140
+ function listToDOM(tag, attrs) {
141
+ const out = {};
142
+ if (tag === 'ol') {
143
+ const start = attrs['start'];
144
+ if (start !== 1)
145
+ out['start'] = String(start);
146
+ }
147
+ const listStyle = attrs['listStyle'];
148
+ if (listStyle !== null)
149
+ out['style'] = `list-style-type:${listStyle}`;
150
+ if (out['style'] !== undefined) {
151
+ const el = serializationTarget().createElement(tag);
152
+ for (const [name, value] of Object.entries(out)) {
153
+ if (name === 'style')
154
+ applyStyleAttribute(el, value);
155
+ else
156
+ el.setAttribute(name, value);
157
+ }
158
+ return { dom: el, contentDOM: el };
159
+ }
160
+ return Object.keys(out).length > 0 ? [tag, out, 0] : [tag, 0];
161
+ }
75
162
  /** The base node specs. Extensions are appended to these. */
76
163
  export const coreNodes = {
77
164
  doc: { content: 'block+' },
@@ -86,20 +173,32 @@ export const coreNodes = {
86
173
  // toolbar, so an author cannot see that a paragraph is centred or change
87
174
  // it. A formatting control the editor cannot express is a feature request
88
175
  // the schema is answering.
89
- attrs: { dir: { default: null }, align: { default: null } },
176
+ attrs: {
177
+ dir: { default: null },
178
+ align: { default: null },
179
+ lineHeight: { default: null },
180
+ indent: { default: null },
181
+ },
90
182
  content: 'inline*',
91
183
  group: 'block',
92
184
  parseDOM: [{ tag: 'p', getAttrs: (dom) => textBlockAttrs(dom) }],
93
185
  toDOM: (node) => textBlockToDOM('p', node.attrs),
94
186
  },
95
187
  heading: {
96
- attrs: { level: { default: 1 }, dir: { default: null }, align: { default: null } },
188
+ attrs: {
189
+ level: { default: 1 },
190
+ dir: { default: null },
191
+ align: { default: null },
192
+ lineHeight: { default: null },
193
+ indent: { default: null },
194
+ id: { default: null },
195
+ },
97
196
  content: 'inline*',
98
197
  group: 'block',
99
198
  defining: true,
100
199
  parseDOM: [1, 2, 3, 4, 5, 6].map((level) => ({
101
200
  tag: `h${level}`,
102
- getAttrs: (dom) => ({ level, ...textBlockAttrs(dom) }),
201
+ getAttrs: (dom) => headingAttrs(dom, level),
103
202
  })),
104
203
  toDOM: (node) => textBlockToDOM(`h${node.attrs['level']}`, node.attrs),
105
204
  },
@@ -146,32 +245,37 @@ export const coreNodes = {
146
245
  },
147
246
  horizontal_rule: {
148
247
  group: 'block',
149
- parseDOM: [{ tag: 'hr' }],
248
+ parseDOM: [
249
+ {
250
+ tag: 'hr',
251
+ getAttrs: (dom) => (dom.classList.contains('ol-pagebreak') ? false : null),
252
+ },
253
+ ],
150
254
  toDOM: () => ['hr'],
151
255
  },
152
256
  bullet_list: {
257
+ attrs: { listStyle: { default: null } },
153
258
  content: 'list_item+',
154
259
  group: 'block',
155
- parseDOM: [{ tag: 'ul' }],
156
- toDOM: () => ['ul', 0],
260
+ parseDOM: [
261
+ {
262
+ tag: 'ul',
263
+ getAttrs: (dom) => listAttrs(dom, false),
264
+ },
265
+ ],
266
+ toDOM: (node) => listToDOM('ul', node.attrs),
157
267
  },
158
268
  ordered_list: {
159
- attrs: { start: { default: 1 } },
269
+ attrs: { start: { default: 1 }, listStyle: { default: null } },
160
270
  content: 'list_item+',
161
271
  group: 'block',
162
272
  parseDOM: [
163
273
  {
164
274
  tag: 'ol',
165
- getAttrs(dom) {
166
- const start = dom.getAttribute('start');
167
- return { start: start ? Number(start) : 1 };
168
- },
275
+ getAttrs: (dom) => listAttrs(dom, true),
169
276
  },
170
277
  ],
171
- toDOM(node) {
172
- const start = node.attrs['start'];
173
- return start === 1 ? ['ol', 0] : ['ol', { start: String(start) }, 0];
174
- },
278
+ toDOM: (node) => listToDOM('ol', node.attrs),
175
279
  },
176
280
  list_item: {
177
281
  content: 'paragraph block*',
@@ -189,41 +293,16 @@ export const coreNodes = {
189
293
  title: { default: null },
190
294
  width: { default: null },
191
295
  height: { default: null },
296
+ align: { default: null },
297
+ className: { default: null },
192
298
  },
193
299
  parseDOM: [
194
300
  {
195
301
  tag: 'img[src]',
196
- getAttrs(dom) {
197
- const el = dom;
198
- // Returning false declines the rule, so an image with a
199
- // `javascript:` src is dropped rather than carried through.
200
- if (!isSafeUrl(el.getAttribute('src')))
201
- return false;
202
- return {
203
- src: el.getAttribute('src'),
204
- // An absent alt and alt="" mean different things to a screen
205
- // reader: "undescribed" versus "decorative". Never conflate them.
206
- alt: el.getAttribute('alt'),
207
- title: el.getAttribute('title'),
208
- width: el.getAttribute('width'),
209
- height: el.getAttribute('height'),
210
- };
211
- },
302
+ getAttrs: (dom) => imageParseAttrs(dom),
212
303
  },
213
304
  ],
214
- toDOM(node) {
215
- const { src, alt, title, width, height } = node.attrs;
216
- const attrs = { src: src };
217
- if (alt !== null)
218
- attrs['alt'] = alt;
219
- if (title !== null)
220
- attrs['title'] = title;
221
- if (width !== null)
222
- attrs['width'] = width;
223
- if (height !== null)
224
- attrs['height'] = height;
225
- return ['img', attrs];
226
- },
305
+ toDOM: (node) => ['img', imageDomAttrs(node.attrs)],
227
306
  },
228
307
  hard_break: {
229
308
  inline: true,
@@ -242,9 +321,69 @@ export const coreNodes = {
242
321
  table_row,
243
322
  table_cell,
244
323
  table_header,
324
+ // Media and structure: in the base schema so stored documents stay editable.
325
+ // The insert dialogs, character map and resize handles are the opt-in plugin.
326
+ video,
327
+ audio,
328
+ iframe,
329
+ details,
330
+ summary,
331
+ figure,
332
+ figcaption,
333
+ page_break,
334
+ named_anchor,
245
335
  unknown_block: unknownBlock,
246
336
  unknown_inline: unknownInline,
247
337
  };
338
+ /**
339
+ * True when a `<span>` carries nothing but formatting the mark set can express.
340
+ *
341
+ * The question a TAG rule on a mark has to ask, and the reason it is not
342
+ * `isFullyModelledStyle` alone: `background` is the shorthand Word writes, and
343
+ * the rule below reads it through `el.style.backgroundColor`, so the CSSOM has
344
+ * already expanded it and it is genuinely modelled even though the declaration
345
+ * name is not in the modelled list. Refusing it would turn every highlighted
346
+ * Word paste into an opaque atom.
347
+ *
348
+ * Any other attribute, or any declaration a mark cannot hold, and the answer is
349
+ * no -- because a mark that claims the element has nowhere to keep the rest.
350
+ */
351
+ function isSpanOnlyStyling(el) {
352
+ for (const attr of Array.from(el.attributes)) {
353
+ if (attr.name !== 'style')
354
+ return false;
355
+ }
356
+ const declarations = parseDeclarations(el.getAttribute('style'));
357
+ if (declarations.size === 0)
358
+ return false;
359
+ for (const [name, value] of declarations) {
360
+ if (name === 'background')
361
+ continue;
362
+ if (!INLINE_STYLE_PROPERTIES.includes(name))
363
+ return false;
364
+ if (modelledValue(name, value) === null)
365
+ return false;
366
+ }
367
+ return true;
368
+ }
369
+ /**
370
+ * True when a colour/font mark must not fire on this element.
371
+ *
372
+ * Those marks used to be `style:` rules. A style rule does not consume the
373
+ * element, which is why `<p style="color:red">` and a `<div>` wrapper still
374
+ * yield a mark -- and why a `<span style="color:red" class="hl">` yielded
375
+ * BOTH the mark and a preserved atom, nested. The preservation catch-all
376
+ * keeps any span `isLosslesslyUnwrappable` refuses, so the mark has to
377
+ * refuse the same elements.
378
+ *
379
+ * The replacement is a `tag: '*'` rule with `consuming: false`: same
380
+ * "applies to whoever carries the declaration" behaviour, but `getAttrs`
381
+ * receives the element and can decline. Hosts the schema models are not
382
+ * spans the catch-all would keep, so they still produce the mark.
383
+ */
384
+ function declineStyleMarkOnPreservedAtom(el) {
385
+ return el.nodeName.toLowerCase() === 'span' && !isLosslesslyUnwrappable(el);
386
+ }
248
387
  /** The base mark specs. */
249
388
  export const coreMarks = {
250
389
  strong: {
@@ -280,26 +419,36 @@ export const coreMarks = {
280
419
  * would have the second command overwrite the first's value with a default.
281
420
  * Two marks compose the way the toolbar's two controls do.
282
421
  *
283
- * Both are parsed through a `style` rule, not a tag rule, and that choice is
284
- * load-bearing. ProseMirror applies style rules to whatever element carries
285
- * the declaration, so `<span style="color:red">`, `<p style="color:red">` and
286
- * a `<div>` wrapper all yield the same mark -- whereas a `span[style]` tag rule
287
- * would claim the span, drop it, and quietly lose any other declaration on it.
422
+ * Parsed through a `tag: '*'` rule that does not consume the element, not a
423
+ * `span[style]` tag rule. The un-consuming match is load-bearing: it is how
424
+ * `<span style="color:red">`, `<p style="color:red">` and a `<div>` wrapper
425
+ * all yield the same mark -- whereas a `span[style]` rule would claim the
426
+ * span, drop it, and quietly lose any other declaration on it.
427
+ *
428
+ * It is not a `style:` rule either. Those also do not consume, but they
429
+ * never see the element, so they cannot decline when preservation is going
430
+ * to keep it. `declineStyleMarkOnPreservedAtom` is that decline.
288
431
  *
289
432
  * The value is normalized by `safeColor`, which folds `rgb(255, 0, 0)` back to
290
- * `#ff0000`. That is not cosmetic: ProseMirror reads style rules through the
291
- * CSSOM, which returns the functional form for an authored hex colour, so
292
- * without the fold every hex colour in an archive would be rewritten longer on
293
- * the first save.
433
+ * `#ff0000`. That is not cosmetic: the rule still reads through the CSSOM
434
+ * (`el.style.color`), which returns the functional form for an authored hex
435
+ * colour, so without the fold every hex colour in an archive would be
436
+ * rewritten longer on the first save.
294
437
  */
295
438
  text_color: {
296
439
  attrs: { color: {} },
297
440
  parseDOM: [
298
441
  {
299
- style: 'color',
300
- getAttrs(value) {
301
- const color = safeColor(value);
302
- return color ? { color } : false;
442
+ tag: '*',
443
+ consuming: false,
444
+ getAttrs(dom) {
445
+ const el = dom;
446
+ const color = safeColor(el.style.color);
447
+ if (!color)
448
+ return false;
449
+ if (declineStyleMarkOnPreservedAtom(el))
450
+ return false;
451
+ return { color };
303
452
  },
304
453
  },
305
454
  {
@@ -325,23 +474,127 @@ export const coreMarks = {
325
474
  attrs: { color: {} },
326
475
  parseDOM: [
327
476
  {
328
- // The CSSOM expands the `background` shorthand, so Word's
329
- // `style="background:yellow"` arrives here as well without a second rule.
330
- style: 'background-color',
331
- getAttrs(value) {
332
- const color = safeColor(value);
477
+ // Restricted to span so a cell's own background is not also read as a
478
+ // highlight mark on every character inside it. The CSSOM still expands
479
+ // the `background` shorthand on the element, so Word's
480
+ // `style="background:yellow"` arrives here without a second rule.
481
+ tag: 'span',
482
+ getAttrs(dom) {
483
+ const el = dom;
484
+ // Only when the span is nothing but formatting this mark can hold.
485
+ // A tag rule CONSUMES the element. Character marks now carry leftover
486
+ // attributes the way nodes do, but this rule still declines a span
487
+ // that is more than a highlight: claiming
488
+ // `<span class="hl" style="background-color:#ffff00;letter-spacing:1px">`
489
+ // would swallow declarations other style-marks and the preservation
490
+ // layer are meant to see. Declining leaves the element whole. This is
491
+ // the same bargain `font[color]` and `span[lang]` already strike a
492
+ // few lines away.
493
+ if (!isSpanOnlyStyling(el))
494
+ return false;
495
+ const fromAttr = parseDeclarations(el.getAttribute('style')).get('background-color');
496
+ const color = safeColor(el.style.backgroundColor) ?? safeColor(fromAttr);
333
497
  return color ? { color } : false;
334
498
  },
335
499
  },
336
500
  ],
337
501
  toDOM: (mark) => elementWithStyle('span', { style: `background-color:${mark.attrs['color']}` }),
338
502
  },
503
+ font_family: {
504
+ attrs: { family: {} },
505
+ parseDOM: [
506
+ {
507
+ tag: '*',
508
+ consuming: false,
509
+ getAttrs(dom) {
510
+ const el = dom;
511
+ const family = safeFontFamily(el.style.fontFamily);
512
+ if (!family)
513
+ return false;
514
+ if (declineStyleMarkOnPreservedAtom(el))
515
+ return false;
516
+ return { family };
517
+ },
518
+ },
519
+ {
520
+ tag: 'font[face]',
521
+ getAttrs(dom) {
522
+ const el = dom;
523
+ // Colour-only `<font>` is a different mark. Face plus anything else
524
+ // this mark cannot hold stays with the preservation layer.
525
+ if (el.attributes.length > 1)
526
+ return false;
527
+ const family = safeFontFamily(el.getAttribute('face'));
528
+ return family ? { family } : false;
529
+ },
530
+ },
531
+ ],
532
+ toDOM: (mark) => elementWithStyle('span', { style: `font-family:${mark.attrs['family']}` }),
533
+ },
534
+ font_size: {
535
+ attrs: { size: {} },
536
+ parseDOM: [
537
+ {
538
+ tag: '*',
539
+ consuming: false,
540
+ getAttrs(dom) {
541
+ const el = dom;
542
+ const size = safeFontSize(el.style.fontSize);
543
+ if (!size)
544
+ return false;
545
+ if (declineStyleMarkOnPreservedAtom(el))
546
+ return false;
547
+ return { size };
548
+ },
549
+ },
550
+ ],
551
+ toDOM: (mark) => elementWithStyle('span', { style: `font-size:${mark.attrs['size']}` }),
552
+ },
553
+ subscript: {
554
+ excludes: 'superscript',
555
+ parseDOM: [{ tag: 'sub' }, { style: 'vertical-align=sub' }],
556
+ toDOM: () => ['sub', 0],
557
+ },
558
+ superscript: {
559
+ excludes: 'subscript',
560
+ parseDOM: [{ tag: 'sup' }, { style: 'vertical-align=super' }],
561
+ toDOM: () => ['sup', 0],
562
+ },
563
+ language: {
564
+ // Content, not decoration -- the same claim `dir` makes as a node
565
+ // attribute. `clearFormatting` keeps this mark for that reason.
566
+ attrs: { lang: {} },
567
+ inclusive: false,
568
+ parseDOM: [
569
+ {
570
+ tag: 'span[lang]',
571
+ getAttrs(dom) {
572
+ const el = dom;
573
+ const lang = safeLang(el.getAttribute('lang'));
574
+ if (!lang)
575
+ return false;
576
+ for (const attr of Array.from(el.attributes)) {
577
+ if (attr.name === 'lang')
578
+ continue;
579
+ if (attr.name === 'style' && isFullyModelledStyle(attr.value))
580
+ continue;
581
+ return false;
582
+ }
583
+ return { lang };
584
+ },
585
+ },
586
+ ],
587
+ toDOM: (mark) => ['span', { lang: mark.attrs['lang'] }, 0],
588
+ },
339
589
  link: {
340
590
  attrs: {
341
- href: {},
591
+ // Null when the mark is a wrapped named destination (`<a id>` with
592
+ // text, no href). Empty `<a id></a>` is the `named_anchor` atom.
593
+ href: { default: null },
342
594
  title: { default: null },
343
595
  target: { default: null },
344
596
  rel: { default: null },
597
+ id: { default: null },
345
598
  },
346
599
  inclusive: false,
347
600
  parseDOM: [
@@ -359,19 +612,46 @@ export const coreMarks = {
359
612
  title: el.getAttribute('title'),
360
613
  target: el.getAttribute('target'),
361
614
  rel: el.getAttribute('rel'),
615
+ id: safeId(el.getAttribute('id')),
616
+ };
617
+ },
618
+ },
619
+ {
620
+ tag: 'a[id]',
621
+ getAttrs(dom) {
622
+ const el = dom;
623
+ if (el.hasAttribute('href'))
624
+ return false;
625
+ const id = safeId(el.getAttribute('id'));
626
+ if (!id)
627
+ return false;
628
+ // Empty `<a id>` belongs to `named_anchor`. This rule is the
629
+ // wrapped-text spelling, so the heading stays in the document.
630
+ if (isEmptyNamedAnchorElement(el))
631
+ return false;
632
+ return {
633
+ href: null,
634
+ title: el.getAttribute('title'),
635
+ target: el.getAttribute('target'),
636
+ rel: el.getAttribute('rel'),
637
+ id,
362
638
  };
363
639
  },
364
640
  },
365
641
  ],
366
642
  toDOM(node) {
367
- const { href, title, target, rel } = node.attrs;
368
- const attrs = { href: href };
643
+ const { href, title, target, rel, id } = node.attrs;
644
+ const attrs = {};
645
+ if (href !== null)
646
+ attrs['href'] = href;
369
647
  if (title !== null)
370
648
  attrs['title'] = title;
371
649
  if (target !== null)
372
650
  attrs['target'] = target;
373
651
  if (rel !== null)
374
652
  attrs['rel'] = rel;
653
+ if (id !== null)
654
+ attrs['id'] = id;
375
655
  return ['a', attrs, 0];
376
656
  },
377
657
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}