@milkdown/preset-commonmark 5.1.0 → 5.2.1

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 (81) hide show
  1. package/lib/index.cjs.js +261 -0
  2. package/lib/index.cjs.js.map +1 -0
  3. package/lib/index.d.ts +4 -4
  4. package/lib/index.es.js +1389 -0
  5. package/lib/index.es.js.map +1 -0
  6. package/lib/mark/code-inline.d.ts +1 -1
  7. package/lib/mark/em.d.ts +1 -1
  8. package/lib/mark/index.d.ts +1 -1
  9. package/lib/mark/index.d.ts.map +1 -1
  10. package/lib/mark/link.d.ts +1 -1
  11. package/lib/mark/strong.d.ts +1 -1
  12. package/lib/node/blockquote.d.ts +1 -1
  13. package/lib/node/bullet-list.d.ts +1 -1
  14. package/lib/node/code-fence.d.ts +3 -1
  15. package/lib/node/code-fence.d.ts.map +1 -1
  16. package/lib/node/doc.d.ts +1 -1
  17. package/lib/node/hardbreak.d.ts +1 -2
  18. package/lib/node/hardbreak.d.ts.map +1 -1
  19. package/lib/node/heading.d.ts +1 -2
  20. package/lib/node/heading.d.ts.map +1 -1
  21. package/lib/node/hr.d.ts +1 -1
  22. package/lib/node/image.d.ts +1 -1
  23. package/lib/node/image.d.ts.map +1 -1
  24. package/lib/node/index.d.ts +2 -2
  25. package/lib/node/list-item.d.ts +1 -1
  26. package/lib/node/list-item.d.ts.map +1 -1
  27. package/lib/node/ordered-list.d.ts +1 -1
  28. package/lib/node/paragraph.d.ts +1 -1
  29. package/lib/node/text.d.ts +1 -1
  30. package/lib/plugin/index.d.ts +1 -1
  31. package/lib/plugin/index.d.ts.map +1 -1
  32. package/package.json +16 -10
  33. package/src/node/code-fence.ts +16 -10
  34. package/src/node/hardbreak.ts +38 -3
  35. package/src/node/heading.ts +1 -2
  36. package/src/node/image.ts +20 -2
  37. package/src/node/list-item.ts +1 -2
  38. package/lib/index.js +0 -32
  39. package/lib/index.js.map +0 -1
  40. package/lib/mark/code-inline.js +0 -47
  41. package/lib/mark/code-inline.js.map +0 -1
  42. package/lib/mark/em.js +0 -41
  43. package/lib/mark/em.js.map +0 -1
  44. package/lib/mark/index.js +0 -11
  45. package/lib/mark/index.js.map +0 -1
  46. package/lib/mark/link.js +0 -110
  47. package/lib/mark/link.js.map +0 -1
  48. package/lib/mark/strong.js +0 -47
  49. package/lib/mark/strong.js.map +0 -1
  50. package/lib/node/blockquote.js +0 -47
  51. package/lib/node/blockquote.js.map +0 -1
  52. package/lib/node/bullet-list.js +0 -38
  53. package/lib/node/bullet-list.js.map +0 -1
  54. package/lib/node/code-fence.js +0 -290
  55. package/lib/node/code-fence.js.map +0 -1
  56. package/lib/node/doc.js +0 -24
  57. package/lib/node/doc.js.map +0 -1
  58. package/lib/node/hardbreak.js +0 -39
  59. package/lib/node/hardbreak.js.map +0 -1
  60. package/lib/node/heading.js +0 -89
  61. package/lib/node/heading.js.map +0 -1
  62. package/lib/node/hr.js +0 -63
  63. package/lib/node/hr.js.map +0 -1
  64. package/lib/node/image.js +0 -279
  65. package/lib/node/image.js.map +0 -1
  66. package/lib/node/index.js +0 -40
  67. package/lib/node/index.js.map +0 -1
  68. package/lib/node/list-item.js +0 -64
  69. package/lib/node/list-item.js.map +0 -1
  70. package/lib/node/ordered-list.js +0 -57
  71. package/lib/node/ordered-list.js.map +0 -1
  72. package/lib/node/paragraph.js +0 -52
  73. package/lib/node/paragraph.js.map +0 -1
  74. package/lib/node/text.js +0 -21
  75. package/lib/node/text.js.map +0 -1
  76. package/lib/plugin/filter-html.js +0 -32
  77. package/lib/plugin/filter-html.js.map +0 -1
  78. package/lib/plugin/index.js +0 -10
  79. package/lib/plugin/index.js.map +0 -1
  80. package/lib/supported-keys.js +0 -22
  81. package/lib/supported-keys.js.map +0 -1
@@ -1,290 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { css } from '@emotion/css';
3
- import { createCmd, createCmdKey, themeToolCtx } from '@milkdown/core';
4
- import { setBlockType, textblockTypeInputRule } from '@milkdown/prose';
5
- import { createNode, createShortcut } from '@milkdown/utils';
6
- import { SupportedKeys } from '../supported-keys';
7
- const languageOptions = [
8
- '',
9
- 'javascript',
10
- 'typescript',
11
- 'bash',
12
- 'sql',
13
- 'json',
14
- 'html',
15
- 'css',
16
- 'c',
17
- 'cpp',
18
- 'java',
19
- 'ruby',
20
- 'python',
21
- 'go',
22
- 'rust',
23
- 'markdown',
24
- ];
25
- const inputRegex = /^```(?<language>[a-z]*)? $/;
26
- export const TurnIntoCodeFence = createCmdKey();
27
- const id = 'fence';
28
- export const codeFence = createNode((utils, options) => {
29
- const style = utils.getStyle(({ palette, mixin, size, font }) => {
30
- const { shadow, scrollbar, border } = mixin;
31
- const { lineWidth, radius } = size;
32
- return css `
33
- background-color: ${palette('background')};
34
- color: ${palette('neutral')};
35
- font-size: 0.85rem;
36
- padding: 1.2rem 0.4rem 1.4rem;
37
- border-radius: ${radius};
38
- font-family: ${font.typography};
39
-
40
- * {
41
- margin: 0;
42
- }
43
-
44
- .code-fence_select-wrapper {
45
- position: relative;
46
- }
47
-
48
- .code-fence_value {
49
- width: 10.25rem;
50
- box-sizing: border-box;
51
- border-radius: ${size.radius};
52
- margin: 0 1.2rem 1.2rem;
53
- ${border()};
54
- ${shadow()};
55
- cursor: pointer;
56
- background-color: ${palette('surface')};
57
- position: relative;
58
- display: flex;
59
- color: ${palette('neutral', 0.87)};
60
- letter-spacing: 0.5px;
61
- height: 2.625rem;
62
- align-items: center;
63
-
64
- & > *:last-child {
65
- width: 2.625rem;
66
- height: 100%;
67
- display: flex;
68
- justify-content: center;
69
- align-items: center;
70
- color: ${palette('solid', 0.87)};
71
- border-left: ${lineWidth} solid ${palette('line')};
72
-
73
- text-align: center;
74
- transition: all 0.2s ease-in-out;
75
- &:hover {
76
- background: ${palette('background')};
77
- color: ${palette('primary')};
78
- }
79
- }
80
-
81
- > span:first-child {
82
- padding-left: 1rem;
83
- flex: 1;
84
- font-weight: 500;
85
- }
86
- }
87
-
88
- .code-fence_select-option {
89
- list-style: none;
90
- line-height: 2rem;
91
- padding-left: 1rem;
92
- cursor: pointer;
93
- :hover {
94
- background: ${palette('secondary', 0.12)};
95
- color: ${palette('primary')};
96
- }
97
- }
98
-
99
- .code-fence_select {
100
- &[data-fold='true'] {
101
- display: none;
102
- }
103
-
104
- font-weight: 500;
105
- position: absolute;
106
- z-index: 1;
107
- top: 2.625rem;
108
- box-sizing: border-box;
109
- left: 1.2rem;
110
- padding: 0.5rem 0;
111
- max-height: 16.75rem;
112
- width: 10.25rem;
113
- ${border()};
114
- ${shadow()};
115
- background-color: ${palette('surface')};
116
- border-top: none;
117
- overflow-y: auto;
118
- display: flex;
119
- flex-direction: column;
120
-
121
- ${scrollbar('y')}
122
- }
123
-
124
- code {
125
- line-height: 1.5;
126
- font-family: ${font.code};
127
- }
128
-
129
- pre {
130
- font-family: ${font.code};
131
- margin: 0 1.2rem !important;
132
- overflow-x: scroll;
133
- white-space: pre !important;
134
-
135
- padding-bottom: 1.4rem;
136
-
137
- ${scrollbar('x')}
138
- }
139
- `;
140
- });
141
- return {
142
- id,
143
- schema: () => ({
144
- content: 'text*',
145
- group: 'block',
146
- marks: '',
147
- defining: true,
148
- code: true,
149
- attrs: {
150
- language: {
151
- default: '',
152
- },
153
- fold: {
154
- default: true,
155
- },
156
- },
157
- parseDOM: [
158
- {
159
- tag: 'pre',
160
- preserveWhitespace: 'full',
161
- getAttrs: (dom) => {
162
- if (!(dom instanceof HTMLElement)) {
163
- throw new Error('Parse DOM error.');
164
- }
165
- return { language: dom.dataset.language };
166
- },
167
- },
168
- ],
169
- toDOM: (node) => {
170
- return [
171
- 'div',
172
- {
173
- 'data-language': node.attrs.language,
174
- class: utils.getClassName(node.attrs, 'code-fence', style),
175
- },
176
- ['pre', ['code', { spellCheck: 'false' }, 0]],
177
- ];
178
- },
179
- parseMarkdown: {
180
- match: ({ type }) => type === 'code',
181
- runner: (state, node, type) => {
182
- const language = node.lang;
183
- const value = node.value;
184
- state.openNode(type, { language });
185
- state.addText(value);
186
- state.closeNode();
187
- },
188
- },
189
- toMarkdown: {
190
- match: (node) => node.type.name === id,
191
- runner: (state, node) => {
192
- var _a;
193
- state.addNode('code', undefined, ((_a = node.content.firstChild) === null || _a === void 0 ? void 0 : _a.text) || '', {
194
- lang: node.attrs.language,
195
- });
196
- },
197
- },
198
- }),
199
- inputRules: (nodeType) => [
200
- textblockTypeInputRule(inputRegex, nodeType, ([ok, language]) => {
201
- if (!ok)
202
- return;
203
- return { language };
204
- }),
205
- ],
206
- commands: (nodeType) => [createCmd(TurnIntoCodeFence, () => setBlockType(nodeType))],
207
- shortcuts: {
208
- [SupportedKeys.CodeFence]: createShortcut(TurnIntoCodeFence, 'Mod-Alt-c'),
209
- },
210
- view: (ctx) => (node, view, getPos) => {
211
- const container = document.createElement('div');
212
- const selectWrapper = document.createElement('div');
213
- const select = document.createElement('ul');
214
- const pre = document.createElement('pre');
215
- const code = document.createElement('code');
216
- const valueWrapper = document.createElement('div');
217
- valueWrapper.className = 'code-fence_value';
218
- const value = document.createElement('span');
219
- valueWrapper.appendChild(value);
220
- valueWrapper.appendChild(ctx.get(themeToolCtx).slots.icon('downArrow'));
221
- select.className = 'code-fence_select';
222
- select.addEventListener('mousedown', (e) => {
223
- e.preventDefault();
224
- e.stopPropagation();
225
- if (!view.editable)
226
- return;
227
- const el = e.target;
228
- if (!(el instanceof HTMLLIElement))
229
- return;
230
- const { tr } = view.state;
231
- view.dispatch(tr.setNodeMarkup(getPos(), undefined, {
232
- fold: true,
233
- language: el.dataset.value,
234
- }));
235
- });
236
- valueWrapper.addEventListener('mousedown', (e) => {
237
- e.preventDefault();
238
- e.stopPropagation();
239
- if (!view.editable)
240
- return;
241
- const { tr } = view.state;
242
- view.dispatch(tr.setNodeMarkup(getPos(), undefined, {
243
- fold: false,
244
- language: container.dataset.language,
245
- }));
246
- });
247
- document.addEventListener('mousedown', () => {
248
- if (!view.editable || select.dataset.fold === 'true')
249
- return;
250
- const { tr } = view.state;
251
- view.dispatch(tr.setNodeMarkup(getPos(), undefined, {
252
- fold: true,
253
- language: container.dataset.language,
254
- }));
255
- });
256
- ((options === null || options === void 0 ? void 0 : options.languageList) || languageOptions).forEach((lang) => {
257
- const option = document.createElement('li');
258
- option.className = 'code-fence_select-option';
259
- option.innerText = lang || '--';
260
- select.appendChild(option);
261
- option.setAttribute('data-value', lang);
262
- });
263
- code.spellcheck = false;
264
- selectWrapper.className = 'code-fence_select-wrapper';
265
- selectWrapper.contentEditable = 'false';
266
- selectWrapper.append(valueWrapper);
267
- selectWrapper.append(select);
268
- pre.append(code);
269
- container.append(selectWrapper, pre);
270
- container.setAttribute('class', utils.getClassName(node.attrs, 'code-fence', style));
271
- container.setAttribute('data-language', node.attrs.language);
272
- value.innerText = node.attrs.language || '--';
273
- select.setAttribute('data-fold', node.attrs.fold ? 'true' : 'false');
274
- return {
275
- dom: container,
276
- contentDOM: code,
277
- update: (updatedNode) => {
278
- if (updatedNode.type.name !== id)
279
- return false;
280
- const lang = updatedNode.attrs.language;
281
- container.dataset.language = lang;
282
- value.innerText = lang || '--';
283
- select.setAttribute('data-fold', updatedNode.attrs.fold ? 'true' : 'false');
284
- return true;
285
- },
286
- };
287
- },
288
- };
289
- });
290
- //# sourceMappingURL=code-fence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-fence.js","sourceRoot":"","sources":["../../src/node/code-fence.ts"],"names":[],"mappings":"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"}
package/lib/node/doc.js DELETED
@@ -1,24 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { createNode } from '@milkdown/utils';
3
- export const doc = createNode(() => {
4
- return {
5
- id: 'doc',
6
- schema: () => ({
7
- content: 'block+',
8
- parseMarkdown: {
9
- match: ({ type }) => type === 'root',
10
- runner: (state, node, type) => {
11
- state.injectRoot(node, type);
12
- },
13
- },
14
- toMarkdown: {
15
- match: (node) => node.type.name === 'doc',
16
- runner: (state, node) => {
17
- state.openNode('root');
18
- state.next(node.content);
19
- },
20
- },
21
- }),
22
- };
23
- });
24
- //# sourceMappingURL=doc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doc.js","sourceRoot":"","sources":["../../src/node/doc.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;IAC/B,OAAO;QACH,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE;gBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM;gBACpC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,CAAC;aACJ;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;gBACzC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;aACJ;SACJ,CAAC;KACL,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,39 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { createCmd, createCmdKey } from '@milkdown/core';
3
- import { createNode, createShortcut } from '@milkdown/utils';
4
- import { SupportedKeys } from '../supported-keys';
5
- export const InsertHardbreak = createCmdKey();
6
- export const hardbreak = createNode((utils) => {
7
- return {
8
- id: 'hardbreak',
9
- schema: () => ({
10
- inline: true,
11
- group: 'inline',
12
- selectable: false,
13
- parseDOM: [{ tag: 'br' }],
14
- toDOM: (node) => ['br', { class: utils.getClassName(node.attrs, 'hardbreak') }],
15
- parseMarkdown: {
16
- match: ({ type }) => type === 'break',
17
- runner: (state, _, type) => {
18
- state.addNode(type);
19
- },
20
- },
21
- toMarkdown: {
22
- match: (node) => node.type.name === 'hardbreak',
23
- runner: (state) => {
24
- state.addNode('break');
25
- },
26
- },
27
- }),
28
- commands: (type) => [
29
- createCmd(InsertHardbreak, () => (state, dispatch) => {
30
- dispatch === null || dispatch === void 0 ? void 0 : dispatch(state.tr.replaceSelectionWith(type.create()).scrollIntoView());
31
- return true;
32
- }),
33
- ],
34
- shortcuts: {
35
- [SupportedKeys.HardBreak]: createShortcut(InsertHardbreak, 'Shift-Enter'),
36
- },
37
- };
38
- });
39
- //# sourceMappingURL=hardbreak.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardbreak.js","sourceRoot":"","sources":["../../src/node/hardbreak.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAsB,CAAC,KAAK,EAAE,EAAE;IAC/D,OAAO;QACH,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;YAC/E,aAAa,EAAE;gBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO;gBACrC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;oBACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;aACJ;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;gBAC/C,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACd,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;aACJ;SACJ,CAAC;QACF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACjD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;SACL;QACD,SAAS,EAAE;YACP,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC;SAC5E;KACJ,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,89 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { css } from '@emotion/css';
3
- import { createCmd, createCmdKey } from '@milkdown/core';
4
- import { setBlockType, textblockTypeInputRule } from '@milkdown/prose';
5
- import { createNode, createShortcut } from '@milkdown/utils';
6
- import { SupportedKeys } from '../supported-keys';
7
- const headingIndex = Array(6)
8
- .fill(0)
9
- .map((_, i) => i + 1);
10
- export const TurnIntoHeading = createCmdKey();
11
- export const heading = createNode((utils, options) => {
12
- const id = 'heading';
13
- const headingMap = {
14
- 1: css `
15
- font-size: 3rem;
16
- line-height: 3.5rem;
17
- `,
18
- 2: css `
19
- font-size: 2.125rem;
20
- line-height: 2.25rem;
21
- `,
22
- 3: css `
23
- font-size: 1.5rem;
24
- line-height: 1.5rem;
25
- `,
26
- };
27
- const style = (level) => (options === null || options === void 0 ? void 0 : options.headless)
28
- ? null
29
- : css `
30
- ${headingMap[level] || ''}
31
- margin: 2.5rem 0 !important;
32
- font-weight: 400;
33
- `;
34
- return {
35
- id,
36
- schema: () => ({
37
- content: 'inline*',
38
- group: 'block',
39
- attrs: {
40
- level: {
41
- default: 1,
42
- },
43
- id: {
44
- default: '',
45
- },
46
- },
47
- parseDOM: headingIndex.map((x) => ({ tag: `h${x}`, attrs: { level: x } })),
48
- toDOM: (node) => {
49
- return [
50
- `h${node.attrs.level}`,
51
- {
52
- class: utils.getClassName(node.attrs, `heading h${node.attrs.level}`, style(node.attrs.level)),
53
- },
54
- 0,
55
- ];
56
- },
57
- parseMarkdown: {
58
- match: ({ type }) => type === id,
59
- runner: (state, node, type) => {
60
- const depth = node.depth;
61
- state.openNode(type, { level: depth });
62
- state.next(node.children);
63
- state.closeNode();
64
- },
65
- },
66
- toMarkdown: {
67
- match: (node) => node.type.name === id,
68
- runner: (state, node) => {
69
- state.openNode('heading', undefined, { depth: node.attrs.level });
70
- state.next(node.content);
71
- state.closeNode();
72
- },
73
- },
74
- }),
75
- inputRules: (type) => headingIndex.map((x) => textblockTypeInputRule(new RegExp(`^(#{1,${x}})\\s$`), type, () => ({
76
- level: x,
77
- }))),
78
- commands: (type) => [createCmd(TurnIntoHeading, (level = 1) => setBlockType(type, { level }))],
79
- shortcuts: {
80
- [SupportedKeys.H1]: createShortcut(TurnIntoHeading, 'Mod-Alt-1', 1),
81
- [SupportedKeys.H2]: createShortcut(TurnIntoHeading, 'Mod-Alt-2', 2),
82
- [SupportedKeys.H3]: createShortcut(TurnIntoHeading, 'Mod-Alt-3', 3),
83
- [SupportedKeys.H4]: createShortcut(TurnIntoHeading, 'Mod-Alt-4', 4),
84
- [SupportedKeys.H5]: createShortcut(TurnIntoHeading, 'Mod-Alt-5', 5),
85
- [SupportedKeys.H6]: createShortcut(TurnIntoHeading, 'Mod-Alt-6', 6),
86
- },
87
- };
88
- });
89
- //# sourceMappingURL=heading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heading.js","sourceRoot":"","sources":["../../src/node/heading.ts"],"names":[],"mappings":"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"}
package/lib/node/hr.js DELETED
@@ -1,63 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { css } from '@emotion/css';
3
- import { createCmd, createCmdKey, schemaCtx } from '@milkdown/core';
4
- import { InputRule, Selection } from '@milkdown/prose';
5
- import { createNode } from '@milkdown/utils';
6
- const id = 'hr';
7
- export const InsertHr = createCmdKey();
8
- export const hr = createNode((utils) => {
9
- const style = utils.getStyle((themeTool) => css `
10
- height: ${themeTool.size.lineWidth};
11
- background-color: ${themeTool.palette('line')};
12
- border-width: 0;
13
- `);
14
- return {
15
- id,
16
- schema: () => ({
17
- group: 'block',
18
- parseDOM: [{ tag: 'hr' }],
19
- toDOM: (node) => ['hr', { class: utils.getClassName(node.attrs, id, style) }],
20
- parseMarkdown: {
21
- match: ({ type }) => type === 'thematicBreak',
22
- runner: (state, _, type) => {
23
- state.addNode(type);
24
- },
25
- },
26
- toMarkdown: {
27
- match: (node) => node.type.name === id,
28
- runner: (state) => {
29
- state.addNode('thematicBreak');
30
- },
31
- },
32
- }),
33
- inputRules: (type) => [
34
- new InputRule(/^(?:---|___\s|\*\*\*\s)$/, (state, match, start, end) => {
35
- const { tr } = state;
36
- if (match[0]) {
37
- tr.replaceWith(start - 1, end, type.create());
38
- }
39
- return tr;
40
- }),
41
- ],
42
- commands: (type, ctx) => [
43
- createCmd(InsertHr, () => (state, dispatch) => {
44
- if (!dispatch)
45
- return true;
46
- const { tr, selection } = state;
47
- const from = selection.from;
48
- const node = type.create();
49
- if (!node) {
50
- return true;
51
- }
52
- const _tr = tr.replaceSelectionWith(node).insert(from, ctx.get(schemaCtx).node('paragraph'));
53
- const sel = Selection.findFrom(_tr.doc.resolve(from), 1, true);
54
- if (!sel) {
55
- return true;
56
- }
57
- dispatch(_tr.setSelection(sel).scrollIntoView());
58
- return true;
59
- }),
60
- ],
61
- };
62
- });
63
- //# sourceMappingURL=hr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hr.js","sourceRoot":"","sources":["../../src/node/hr.ts"],"names":[],"mappings":"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"}