@milkdown/preset-commonmark 5.2.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 (56) hide show
  1. package/lib/index.cjs.js +261 -0
  2. package/lib/index.cjs.js.map +1 -0
  3. package/lib/index.es.js +1389 -0
  4. package/lib/index.es.js.map +1 -0
  5. package/lib/node/code-fence.d.ts +2 -0
  6. package/lib/node/code-fence.d.ts.map +1 -1
  7. package/lib/node/hardbreak.d.ts.map +1 -1
  8. package/lib/node/list-item.d.ts.map +1 -1
  9. package/package.json +16 -10
  10. package/src/node/code-fence.ts +10 -2
  11. package/src/node/hardbreak.ts +2 -1
  12. package/src/node/list-item.ts +1 -2
  13. package/lib/index.js +0 -32
  14. package/lib/index.js.map +0 -1
  15. package/lib/mark/code-inline.js +0 -47
  16. package/lib/mark/code-inline.js.map +0 -1
  17. package/lib/mark/em.js +0 -41
  18. package/lib/mark/em.js.map +0 -1
  19. package/lib/mark/index.js +0 -11
  20. package/lib/mark/index.js.map +0 -1
  21. package/lib/mark/link.js +0 -110
  22. package/lib/mark/link.js.map +0 -1
  23. package/lib/mark/strong.js +0 -47
  24. package/lib/mark/strong.js.map +0 -1
  25. package/lib/node/blockquote.js +0 -47
  26. package/lib/node/blockquote.js.map +0 -1
  27. package/lib/node/bullet-list.js +0 -38
  28. package/lib/node/bullet-list.js.map +0 -1
  29. package/lib/node/code-fence.js +0 -288
  30. package/lib/node/code-fence.js.map +0 -1
  31. package/lib/node/doc.js +0 -24
  32. package/lib/node/doc.js.map +0 -1
  33. package/lib/node/hardbreak.js +0 -70
  34. package/lib/node/hardbreak.js.map +0 -1
  35. package/lib/node/heading.js +0 -89
  36. package/lib/node/heading.js.map +0 -1
  37. package/lib/node/hr.js +0 -63
  38. package/lib/node/hr.js.map +0 -1
  39. package/lib/node/image.js +0 -297
  40. package/lib/node/image.js.map +0 -1
  41. package/lib/node/index.js +0 -40
  42. package/lib/node/index.js.map +0 -1
  43. package/lib/node/list-item.js +0 -64
  44. package/lib/node/list-item.js.map +0 -1
  45. package/lib/node/ordered-list.js +0 -57
  46. package/lib/node/ordered-list.js.map +0 -1
  47. package/lib/node/paragraph.js +0 -52
  48. package/lib/node/paragraph.js.map +0 -1
  49. package/lib/node/text.js +0 -21
  50. package/lib/node/text.js.map +0 -1
  51. package/lib/plugin/filter-html.js +0 -32
  52. package/lib/plugin/filter-html.js.map +0 -1
  53. package/lib/plugin/index.js +0 -10
  54. package/lib/plugin/index.js.map +0 -1
  55. package/lib/supported-keys.js +0 -22
  56. package/lib/supported-keys.js.map +0 -1
@@ -1,47 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { css } from '@emotion/css';
3
- import { createCmd, createCmdKey } from '@milkdown/core';
4
- import { markRule, toggleMark } from '@milkdown/prose';
5
- import { createMark, createShortcut } from '@milkdown/utils';
6
- import { SupportedKeys } from '../supported-keys';
7
- const id = 'strong';
8
- export const ToggleBold = createCmdKey();
9
- export const strong = createMark((utils) => {
10
- const style = utils.getStyle(() => css `
11
- font-weight: 600;
12
- `);
13
- return {
14
- id,
15
- schema: () => ({
16
- parseDOM: [
17
- { tag: 'b' },
18
- { tag: 'strong' },
19
- { style: 'font-style', getAttrs: (value) => (value === 'bold') },
20
- ],
21
- toDOM: (mark) => ['strong', { class: utils.getClassName(mark.attrs, id, style) }],
22
- parseMarkdown: {
23
- match: (node) => node.type === 'strong',
24
- runner: (state, node, markType) => {
25
- state.openMark(markType);
26
- state.next(node.children);
27
- state.closeMark(markType);
28
- },
29
- },
30
- toMarkdown: {
31
- match: (mark) => mark.type.name === id,
32
- runner: (state, mark) => {
33
- state.withMark(mark, 'strong');
34
- },
35
- },
36
- }),
37
- inputRules: (markType) => [
38
- markRule(/(?:__)([^_]+)(?:__)$/, markType),
39
- markRule(/(?:\*\*)([^*]+)(?:\*\*)$/, markType),
40
- ],
41
- commands: (markType) => [createCmd(ToggleBold, () => toggleMark(markType))],
42
- shortcuts: {
43
- [SupportedKeys.Bold]: createShortcut(ToggleBold, 'Mod-b'),
44
- },
45
- };
46
- });
47
- //# sourceMappingURL=strong.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strong.js","sourceRoot":"","sources":["../../src/mark/strong.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,EAAE,GAAG,QAAQ,CAAC;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAO,CAAC,KAAK,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CACxB,GAAG,EAAE,CACD,GAAG,CAAA;;aAEF,CACR,CAAC;IACF,OAAO;QACH,EAAE;QACF,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,QAAQ,EAAE;gBACN,EAAE,GAAG,EAAE,GAAG,EAAE;gBACZ,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACjB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,MAAM,CAAU,EAAE;aAC5E;YACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YACjF,aAAa,EAAE;gBACX,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACvC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBAC9B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1B,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;aACJ;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;gBACtC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnC,CAAC;aACJ;SACJ,CAAC;QACF,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC;YAC1C,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC;SACjD;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,SAAS,EAAE;YACP,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC;SAC5D;KACJ,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,47 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { css } from '@emotion/css';
3
- import { createCmd, createCmdKey } from '@milkdown/core';
4
- import { wrapIn, wrappingInputRule } from '@milkdown/prose';
5
- import { createNode, createShortcut } from '@milkdown/utils';
6
- import { SupportedKeys } from '../supported-keys';
7
- const id = 'blockquote';
8
- export const WrapInBlockquote = createCmdKey();
9
- export const blockquote = createNode((utils) => {
10
- const style = utils.getStyle((themeTool) => css `
11
- padding-left: 1.875rem;
12
- line-height: 1.75rem;
13
- border-left: 4px solid ${themeTool.palette('primary')};
14
- * {
15
- font-size: 1rem;
16
- line-height: 1.5rem;
17
- }
18
- `);
19
- return {
20
- id,
21
- schema: () => ({
22
- content: 'block+',
23
- group: 'block',
24
- defining: true,
25
- parseDOM: [{ tag: 'blockquote' }],
26
- toDOM: (node) => ['blockquote', { class: utils.getClassName(node.attrs, id, style) }, 0],
27
- parseMarkdown: {
28
- match: ({ type }) => type === id,
29
- runner: (state, node, type) => {
30
- state.openNode(type).next(node.children).closeNode();
31
- },
32
- },
33
- toMarkdown: {
34
- match: (node) => node.type.name === id,
35
- runner: (state, node) => {
36
- state.openNode('blockquote').next(node.content).closeNode();
37
- },
38
- },
39
- }),
40
- inputRules: (nodeType) => [wrappingInputRule(/^\s*>\s$/, nodeType)],
41
- commands: (nodeType) => [createCmd(WrapInBlockquote, () => wrapIn(nodeType))],
42
- shortcuts: {
43
- [SupportedKeys.Blockquote]: createShortcut(WrapInBlockquote, 'Mod-Shift-b'),
44
- },
45
- };
46
- });
47
- //# sourceMappingURL=blockquote.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blockquote.js","sourceRoot":"","sources":["../../src/node/blockquote.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,EAAE,GAAG,YAAY,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAO,CAAC,KAAK,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CACxB,CAAC,SAAS,EAAE,EAAE,CACV,GAAG,CAAA;;;yCAG0B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;;;;;aAKxD,CACR,CAAC;IAEF,OAAO;QACH,EAAE;QACF,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;YACjC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACxF,aAAa,EAAE;gBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE;gBAChC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;gBACzD,CAAC;aACJ;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;gBACtC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChE,CAAC;aACJ;SACJ,CAAC;QACF,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,SAAS,EAAE;YACP,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,EAAE,aAAa,CAAC;SAC9E;KACJ,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,38 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { createCmd, createCmdKey } from '@milkdown/core';
3
- import { wrapIn, wrappingInputRule } from '@milkdown/prose';
4
- import { createNode, createShortcut } from '@milkdown/utils';
5
- import { SupportedKeys } from '../supported-keys';
6
- export const WrapInBulletList = createCmdKey();
7
- export const bulletList = createNode((utils) => {
8
- const id = 'bullet_list';
9
- return {
10
- id,
11
- schema: () => ({
12
- content: 'listItem+',
13
- group: 'block',
14
- parseDOM: [{ tag: 'ul' }],
15
- toDOM: (node) => {
16
- return ['ul', { class: utils.getClassName(node.attrs, 'bullet-list') }, 0];
17
- },
18
- parseMarkdown: {
19
- match: ({ type, ordered }) => type === 'list' && !ordered,
20
- runner: (state, node, type) => {
21
- state.openNode(type).next(node.children).closeNode();
22
- },
23
- },
24
- toMarkdown: {
25
- match: (node) => node.type.name === id,
26
- runner: (state, node) => {
27
- state.openNode('list', undefined, { ordered: false }).next(node.content).closeNode();
28
- },
29
- },
30
- }),
31
- inputRules: (nodeType) => [wrappingInputRule(/^\s*([-+*])\s$/, nodeType)],
32
- commands: (nodeType) => [createCmd(WrapInBulletList, () => wrapIn(nodeType))],
33
- shortcuts: {
34
- [SupportedKeys.BulletList]: createShortcut(WrapInBulletList, 'Mod-Shift-8'),
35
- },
36
- };
37
- });
38
- //# sourceMappingURL=bullet-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bullet-list.js","sourceRoot":"","sources":["../../src/node/bullet-list.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAO,CAAC,KAAK,EAAE,EAAE;IACjD,MAAM,EAAE,GAAG,aAAa,CAAC;IACzB,OAAO;QACH,EAAE;QACF,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACZ,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,aAAa,EAAE;gBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO;gBACzD,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;gBACzD,CAAC;aACJ;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;gBACtC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;gBACzF,CAAC;aACJ;SACJ,CAAC;QACF,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,SAAS,EAAE;YACP,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,EAAE,aAAa,CAAC;SAC9E;KACJ,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,288 +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
- }
133
- `;
134
- });
135
- return {
136
- id,
137
- schema: () => ({
138
- content: 'text*',
139
- group: 'block',
140
- marks: '',
141
- defining: true,
142
- code: true,
143
- attrs: {
144
- language: {
145
- default: '',
146
- },
147
- fold: {
148
- default: true,
149
- },
150
- },
151
- parseDOM: [
152
- {
153
- tag: 'pre',
154
- preserveWhitespace: 'full',
155
- getAttrs: (dom) => {
156
- if (!(dom instanceof HTMLElement)) {
157
- throw new Error('Parse DOM error.');
158
- }
159
- return { language: dom.dataset.language };
160
- },
161
- },
162
- ],
163
- toDOM: (node) => {
164
- return [
165
- 'div',
166
- {
167
- 'data-language': node.attrs.language,
168
- class: utils.getClassName(node.attrs, 'code-fence', style),
169
- },
170
- ['pre', ['code', { spellCheck: 'false' }, 0]],
171
- ];
172
- },
173
- parseMarkdown: {
174
- match: ({ type }) => type === 'code',
175
- runner: (state, node, type) => {
176
- const language = node.lang;
177
- const value = node.value;
178
- state.openNode(type, { language });
179
- if (value) {
180
- state.addText(value);
181
- }
182
- state.closeNode();
183
- },
184
- },
185
- toMarkdown: {
186
- match: (node) => node.type.name === id,
187
- runner: (state, node) => {
188
- var _a;
189
- state.addNode('code', undefined, ((_a = node.content.firstChild) === null || _a === void 0 ? void 0 : _a.text) || '', {
190
- lang: node.attrs.language,
191
- });
192
- },
193
- },
194
- }),
195
- inputRules: (nodeType) => [
196
- textblockTypeInputRule(inputRegex, nodeType, ([ok, language]) => {
197
- if (!ok)
198
- return;
199
- return { language };
200
- }),
201
- ],
202
- commands: (nodeType) => [createCmd(TurnIntoCodeFence, () => setBlockType(nodeType))],
203
- shortcuts: {
204
- [SupportedKeys.CodeFence]: createShortcut(TurnIntoCodeFence, 'Mod-Alt-c'),
205
- },
206
- view: (ctx) => (node, view, getPos) => {
207
- const container = document.createElement('div');
208
- const selectWrapper = document.createElement('div');
209
- const select = document.createElement('ul');
210
- const pre = document.createElement('pre');
211
- const code = document.createElement('code');
212
- const valueWrapper = document.createElement('div');
213
- valueWrapper.className = 'code-fence_value';
214
- const value = document.createElement('span');
215
- valueWrapper.appendChild(value);
216
- valueWrapper.appendChild(ctx.get(themeToolCtx).slots.icon('downArrow'));
217
- select.className = 'code-fence_select';
218
- select.addEventListener('mousedown', (e) => {
219
- e.preventDefault();
220
- e.stopPropagation();
221
- if (!view.editable)
222
- return;
223
- const el = e.target;
224
- if (!(el instanceof HTMLLIElement))
225
- return;
226
- const { tr } = view.state;
227
- view.dispatch(tr.setNodeMarkup(getPos(), undefined, {
228
- fold: true,
229
- language: el.dataset.value,
230
- }));
231
- });
232
- valueWrapper.addEventListener('mousedown', (e) => {
233
- e.preventDefault();
234
- e.stopPropagation();
235
- if (!view.editable)
236
- return;
237
- const { tr } = view.state;
238
- view.dispatch(tr.setNodeMarkup(getPos(), undefined, {
239
- fold: false,
240
- language: container.dataset.language,
241
- }));
242
- });
243
- document.addEventListener('mousedown', () => {
244
- if (!view.editable || select.dataset.fold === 'true')
245
- return;
246
- const { tr } = view.state;
247
- view.dispatch(tr.setNodeMarkup(getPos(), undefined, {
248
- fold: true,
249
- language: container.dataset.language,
250
- }));
251
- });
252
- ((options === null || options === void 0 ? void 0 : options.languageList) || languageOptions).forEach((lang) => {
253
- const option = document.createElement('li');
254
- option.className = 'code-fence_select-option';
255
- option.innerText = lang || '--';
256
- select.appendChild(option);
257
- option.setAttribute('data-value', lang);
258
- });
259
- code.spellcheck = false;
260
- selectWrapper.className = 'code-fence_select-wrapper';
261
- selectWrapper.contentEditable = 'false';
262
- selectWrapper.append(valueWrapper);
263
- selectWrapper.append(select);
264
- pre.append(code);
265
- const codeContent = document.createElement('div');
266
- code.append(codeContent);
267
- container.append(selectWrapper, pre);
268
- container.setAttribute('class', utils.getClassName(node.attrs, 'code-fence', style));
269
- container.setAttribute('data-language', node.attrs.language);
270
- value.innerText = node.attrs.language || '--';
271
- select.setAttribute('data-fold', node.attrs.fold ? 'true' : 'false');
272
- return {
273
- dom: container,
274
- contentDOM: codeContent,
275
- update: (updatedNode) => {
276
- if (updatedNode.type.name !== id)
277
- return false;
278
- const lang = updatedNode.attrs.language;
279
- container.dataset.language = lang;
280
- value.innerText = lang || '--';
281
- select.setAttribute('data-fold', updatedNode.attrs.fold ? 'true' : 'false');
282
- return true;
283
- },
284
- };
285
- },
286
- };
287
- });
288
- //# 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,70 +0,0 @@
1
- /* Copyright 2021, Milkdown by Mirone. */
2
- import { createCmd, createCmdKey } from '@milkdown/core';
3
- import { AddMarkStep, Plugin, ReplaceStep } from '@milkdown/prose';
4
- import { createNode, createShortcut } from '@milkdown/utils';
5
- import { SupportedKeys } from '../supported-keys';
6
- export const InsertHardbreak = createCmdKey();
7
- export const hardbreak = createNode((utils) => {
8
- return {
9
- id: 'hardbreak',
10
- schema: () => ({
11
- inline: true,
12
- group: 'inline',
13
- selectable: false,
14
- parseDOM: [{ tag: 'br' }],
15
- toDOM: (node) => ['br', { class: utils.getClassName(node.attrs, 'hardbreak') }],
16
- parseMarkdown: {
17
- match: ({ type }) => type === 'break',
18
- runner: (state, _, type) => {
19
- state.addNode(type);
20
- },
21
- },
22
- toMarkdown: {
23
- match: (node) => node.type.name === 'hardbreak',
24
- runner: (state) => {
25
- state.addNode('break');
26
- },
27
- },
28
- }),
29
- commands: (type) => [
30
- createCmd(InsertHardbreak, () => (state, dispatch) => {
31
- dispatch === null || dispatch === void 0 ? void 0 : dispatch(state.tr.setMeta('hardbreak', true).replaceSelectionWith(type.create()).scrollIntoView());
32
- return true;
33
- }),
34
- ],
35
- shortcuts: {
36
- [SupportedKeys.HardBreak]: createShortcut(InsertHardbreak, 'Shift-Enter'),
37
- },
38
- prosePlugins: (type) => [
39
- new Plugin({
40
- appendTransaction: (trs, _oldState, newState) => {
41
- if (!trs.length)
42
- return;
43
- const [tr] = trs;
44
- const [step] = tr.steps;
45
- const isInsertHr = tr.getMeta('hardbreak');
46
- if (isInsertHr) {
47
- if (!(step instanceof ReplaceStep)) {
48
- return;
49
- }
50
- const { from } = step;
51
- return newState.tr.setNodeMarkup(from, type, undefined, []);
52
- }
53
- const isAddMarkStep = step instanceof AddMarkStep;
54
- if (isAddMarkStep) {
55
- let _tr = newState.tr;
56
- const { from, to } = step;
57
- newState.doc.nodesBetween(from, to, (node, pos) => {
58
- if (node.type === type) {
59
- _tr = _tr.setNodeMarkup(pos, type, undefined, []);
60
- }
61
- });
62
- return _tr;
63
- }
64
- return;
65
- },
66
- }),
67
- ],
68
- };
69
- });
70
- //# sourceMappingURL=hardbreak.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardbreak.js","sourceRoot":"","sources":["../../src/node/hardbreak.ts"],"names":[],"mappings":"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"}
@@ -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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"}