@antdv-next/x-markdown 0.0.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 (39) hide show
  1. package/README.md +154 -0
  2. package/dist/XMarkdown/components/AnimationText.vue.d.ts +12 -0
  3. package/dist/XMarkdown/components/AnimationText.vue.d.ts.map +1 -0
  4. package/dist/XMarkdown/components/DebugPanel.vue.d.ts +7 -0
  5. package/dist/XMarkdown/components/DebugPanel.vue.d.ts.map +1 -0
  6. package/dist/XMarkdown/components/TailIndicator.vue.d.ts +9 -0
  7. package/dist/XMarkdown/components/TailIndicator.vue.d.ts.map +1 -0
  8. package/dist/XMarkdown/components/index.d.ts +4 -0
  9. package/dist/XMarkdown/components/index.d.ts.map +1 -0
  10. package/dist/XMarkdown/composables/useParser.d.ts +9 -0
  11. package/dist/XMarkdown/composables/useParser.d.ts.map +1 -0
  12. package/dist/XMarkdown/composables/useRenderer.d.ts +9 -0
  13. package/dist/XMarkdown/composables/useRenderer.d.ts.map +1 -0
  14. package/dist/XMarkdown/composables/useStreaming.d.ts +7 -0
  15. package/dist/XMarkdown/composables/useStreaming.d.ts.map +1 -0
  16. package/dist/XMarkdown/composables/useTail.d.ts +8 -0
  17. package/dist/XMarkdown/composables/useTail.d.ts.map +1 -0
  18. package/dist/XMarkdown/core/Parser.d.ts +21 -0
  19. package/dist/XMarkdown/core/Parser.d.ts.map +1 -0
  20. package/dist/XMarkdown/core/VueRenderer.d.ts +15 -0
  21. package/dist/XMarkdown/core/VueRenderer.d.ts.map +1 -0
  22. package/dist/XMarkdown/core/detectUnclosedComponentTags.d.ts +2 -0
  23. package/dist/XMarkdown/core/detectUnclosedComponentTags.d.ts.map +1 -0
  24. package/dist/XMarkdown/index.vue.d.ts +16 -0
  25. package/dist/XMarkdown/index.vue.d.ts.map +1 -0
  26. package/dist/XMarkdown/interface.d.ts +87 -0
  27. package/dist/XMarkdown/interface.d.ts.map +1 -0
  28. package/dist/XMarkdown/utils/tail.d.ts +5 -0
  29. package/dist/XMarkdown/utils/tail.d.ts.map +1 -0
  30. package/dist/index.css +1 -0
  31. package/dist/index.d.ts +15 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +740 -0
  34. package/dist/plugins/Latex/index.d.ts +9 -0
  35. package/dist/plugins/Latex/index.d.ts.map +1 -0
  36. package/dist/plugins/Latex/index.js +68 -0
  37. package/dist/themes/dark.css +204 -0
  38. package/dist/themes/light.css +204 -0
  39. package/package.json +45 -0
@@ -0,0 +1,9 @@
1
+ import { TokenizerAndRendererExtension } from 'marked';
2
+ import { KatexOptions } from 'katex';
3
+ export type LatexOption = {
4
+ katexOptions?: KatexOptions;
5
+ replaceAlignStart?: boolean;
6
+ };
7
+ declare const Latex: (options?: LatexOption) => TokenizerAndRendererExtension[];
8
+ export default Latex;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/Latex/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,QAAQ,CAAC;AAE5D,OAAc,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,0BAA0B,CAAC;AAOlC,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAgFF,QAAA,MAAM,KAAK,GAAI,UAAU,WAAW,KAAG,6BAA6B,EAgBnE,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,68 @@
1
+ import e from "katex";
2
+ import "katex/dist/katex.min.css";
3
+ //#region src/plugins/Latex/index.ts
4
+ var t = /^(?:\${1,2}([^$]{1,10000}?)\${1,2}|\\\(([\s\S]{1,10000}?)\\\)|\\\[((?:\\.|[^\\]){1,10000}?)\\\])/, n = /^(\${1,2})\n([\s\S]{1,10000}?)\n\1(?:\s*(?:\n|$))|^\\\[((?:\\.|[^\\]){1,10000}?)\\\]/;
5
+ function r(e) {
6
+ return e && e.replace(/\{align\*\}/g, "{aligned}");
7
+ }
8
+ function i(t, n) {
9
+ return (r) => e.renderToString(r.text, {
10
+ ...t,
11
+ displayMode: r.displayMode
12
+ }) + (n ? "\n" : "");
13
+ }
14
+ function a(e, n) {
15
+ return {
16
+ name: "inlineKatex",
17
+ level: "inline",
18
+ start(e) {
19
+ let t = [
20
+ e.indexOf("$"),
21
+ e.indexOf("\\("),
22
+ e.indexOf("\\[")
23
+ ].filter((e) => e !== -1);
24
+ return t.length > 0 ? Math.min(...t) : void 0;
25
+ },
26
+ tokenizer(e) {
27
+ let i = e.match(t);
28
+ if (!i) return;
29
+ let a = (i[1] || i[2] || i[3] || "").trim(), o = n ? r(a) : a;
30
+ return {
31
+ type: "inlineKatex",
32
+ raw: i[0],
33
+ text: o,
34
+ displayMode: !0
35
+ };
36
+ },
37
+ renderer: (t) => `<span class="inline-katex">${e(t)}</span>`
38
+ };
39
+ }
40
+ function o(e, t) {
41
+ return {
42
+ name: "blockKatex",
43
+ level: "block",
44
+ tokenizer(e) {
45
+ let i = e.match(n);
46
+ if (i) {
47
+ let e = r(i[2] || i[3].trim());
48
+ return t && (e = r(e)), {
49
+ type: "blockKatex",
50
+ raw: i[0],
51
+ text: e,
52
+ displayMode: !0
53
+ };
54
+ }
55
+ },
56
+ renderer: e
57
+ };
58
+ }
59
+ var s = (e) => {
60
+ let { replaceAlignStart: t = !0, katexOptions: n } = e || {}, r = {
61
+ output: "html",
62
+ throwOnError: !1,
63
+ ...n
64
+ }, s = i(r, !0), c = i(r, !0);
65
+ return [a(s, t), o(c, t)];
66
+ };
67
+ //#endregion
68
+ export { s as default };
@@ -0,0 +1,204 @@
1
+ .x-markdown-dark {
2
+ --font-size: 14px;
3
+ --primary-color: #1677ff;
4
+ --primary-color-hover: #4096ff;
5
+ --heading-color: #ffffff;
6
+ --text-color: rgba(255, 255, 255, 0.85);
7
+ --border-color: rgba(48, 48, 48, 1);
8
+ --line-color: rgba(253, 253, 253, 0.12);
9
+ --dark-bg: rgba(255, 255, 255, 0.1);
10
+ --table-head-bg: rgba(29, 29, 29, 1);
11
+ --table-body-bg: rgba(20, 20, 20, 1);
12
+ --cite-bg: rgba(255, 255, 255, 0.1);
13
+ --cite-hover-bg: rgba(255, 255, 255, 0.2);
14
+ --border-radius-middle: 6px;
15
+ --border-radius-small: 4px;
16
+ --td-th-padding: 10px 12px;
17
+ --border-font-weight: 600;
18
+ --margin-block: 0 0 16px 0;
19
+ --padding-ul-ol: 0 0 0 16px;
20
+ --margin-ul-ol: 0 0 16px 28px;
21
+ --margin-li: 0 0 14px 0;
22
+ --hr-margin: 24px 0;
23
+ --table-margin: 0 0 24px 0;
24
+ --margin-pre: 0 0 16px 0;
25
+ --padding-code: 16px;
26
+ --xmd-tail-color: var(--text-color);
27
+ }
28
+
29
+ .x-markdown-dark h1,
30
+ .x-markdown-dark h2,
31
+ .x-markdown-dark h3,
32
+ .x-markdown-dark h4 {
33
+ color: var(--heading-color);
34
+ font-weight: var(--border-font-weight);
35
+ margin: var(--margin-block);
36
+ }
37
+
38
+ .x-markdown-dark h1 {
39
+ font-size: 24px;
40
+ line-height: 36px;
41
+ }
42
+
43
+ .x-markdown-dark h2 {
44
+ font-size: 20px;
45
+ line-height: 32px;
46
+ }
47
+
48
+ .x-markdown-dark h3 {
49
+ font-size: 18px;
50
+ line-height: 30px;
51
+ }
52
+
53
+ .x-markdown-dark h4 {
54
+ font-size: 16px;
55
+ }
56
+
57
+ .x-markdown-dark p,
58
+ .x-markdown-dark li {
59
+ color: var(--text-color);
60
+ margin: var(--margin-block);
61
+ }
62
+
63
+ .x-markdown-dark li {
64
+ position: relative;
65
+ }
66
+
67
+ .x-markdown-dark li::marker {
68
+ font-size: 16px;
69
+ font-weight: 400;
70
+ line-height: 28px;
71
+ color: var(--heading-color);
72
+ }
73
+
74
+ .x-markdown-dark ul > li ul > li,
75
+ .x-markdown-dark ul > li ol > li {
76
+ list-style: circle;
77
+ }
78
+
79
+ .x-markdown-dark ul > li ul > li ul > li,
80
+ .x-markdown-dark ul > li ul > li ol > li,
81
+ .x-markdown-dark ul > li ol > li ul > li,
82
+ .x-markdown-dark ul > li ol > li ol > li {
83
+ list-style: square;
84
+ }
85
+
86
+ .x-markdown-dark ol > li ol > li,
87
+ .x-markdown-dark ol > li ul > li {
88
+ list-style: lower-alpha;
89
+ }
90
+
91
+ .x-markdown-dark ol > li ol > li ol > li,
92
+ .x-markdown-dark ol > li ol > li ul > li,
93
+ .x-markdown-dark ol > li ul > li ol > li,
94
+ .x-markdown-dark ol > li ul > li ul > li {
95
+ list-style: lower-roman;
96
+ }
97
+
98
+ .x-markdown-dark hr {
99
+ border: 0;
100
+ border-top: 1px solid var(--line-color);
101
+ margin: var(--hr-margin);
102
+ }
103
+
104
+ .x-markdown-dark table {
105
+ border-collapse: collapse;
106
+ overflow: hidden;
107
+ box-shadow: 0 1px 3px rgba(255, 255, 255, 0.05);
108
+ margin: var(--table-margin);
109
+ }
110
+
111
+ .x-markdown-dark thead {
112
+ background-color: var(--table-head-bg);
113
+ }
114
+
115
+ .x-markdown-dark tbody {
116
+ background-color: var(--table-body-bg);
117
+ }
118
+
119
+ .x-markdown-dark tbody tr {
120
+ background-color: var(--table-body-bg);
121
+ transition: background-color 200ms linear;
122
+ }
123
+
124
+ .x-markdown-dark tbody tr:hover {
125
+ background-color: var(--table-head-bg);
126
+ }
127
+
128
+ .x-markdown-dark th,
129
+ .x-markdown-dark td {
130
+ padding: var(--td-th-padding);
131
+ border: 1px solid var(--border-color);
132
+ }
133
+
134
+ .x-markdown-dark th {
135
+ color: var(--heading-color);
136
+ }
137
+
138
+ .x-markdown-dark td {
139
+ color: var(--text-color);
140
+ }
141
+
142
+ .x-markdown-dark blockquote {
143
+ border-left: 4px solid var(--border-color);
144
+ padding: 4px 12px;
145
+ margin: 16px 0;
146
+ background-color: var(--cite-bg);
147
+ border-radius: 0 var(--border-radius-middle) var(--border-radius-middle) 0;
148
+ transition: background-color 0.2s ease;
149
+ }
150
+
151
+ .x-markdown-dark blockquote:hover {
152
+ background-color: var(--cite-hover-bg);
153
+ }
154
+
155
+ .x-markdown-dark
156
+ pre
157
+ > code:not([class$="-highlightCode-code"]):not(
158
+ [class$="-codeHighlighter-code"]
159
+ ) {
160
+ display: block;
161
+ background: var(--dark-bg) !important;
162
+ padding: var(--padding-code);
163
+ color: var(--text-color) !important;
164
+ line-height: 1.3;
165
+ font-size: var(--font-size);
166
+ border-radius: var(--border-radius-middle);
167
+ margin: var(--margin-pre);
168
+ }
169
+
170
+ .x-markdown-dark
171
+ code:not(pre code):not([class$="-highlightCode-code"]):not(
172
+ [class$="-codeHighlighter-code"]
173
+ ) {
174
+ background-color: var(--dark-bg) !important;
175
+ color: var(--text-color) !important;
176
+ border-radius: var(--border-radius-small);
177
+ padding: 2px 6px;
178
+ margin-inline: 3px;
179
+ font-size: var(--font-size);
180
+ border: 1px solid var(--border-color);
181
+ }
182
+
183
+ .x-markdown-dark img {
184
+ max-width: 100%;
185
+ }
186
+
187
+ .x-markdown-dark a {
188
+ color: var(--primary-color);
189
+ text-decoration: none;
190
+ transition: color 0.2s ease;
191
+ position: relative;
192
+ }
193
+
194
+ .x-markdown-dark a:hover {
195
+ color: var(--primary-color-hover);
196
+ text-decoration: underline;
197
+ }
198
+
199
+ .x-markdown-dark a::after {
200
+ content: "\2197";
201
+ margin-left: 4px;
202
+ vertical-align: super;
203
+ opacity: 0.7;
204
+ }
@@ -0,0 +1,204 @@
1
+ .x-markdown-light {
2
+ --font-size: 14px;
3
+ --primary-color: #1677ff;
4
+ --primary-color-hover: #4096ff;
5
+ --heading-color: #000000;
6
+ --text-color: rgba(0, 0, 0, 0.85);
7
+ --border-color: rgba(240, 240, 240, 1);
8
+ --line-color: rgba(5, 5, 5, 0.06);
9
+ --light-bg: rgba(0, 0, 0, 0.04);
10
+ --table-head-bg: rgba(250, 250, 250, 1);
11
+ --table-body-bg: rgba(255, 255, 255, 1);
12
+ --cite-bg: rgba(0, 0, 0, 0.1);
13
+ --cite-hover-bg: rgba(0, 0, 0, 0.2);
14
+ --border-radius-middle: 6px;
15
+ --border-radius-small: 4px;
16
+ --td-th-padding: 10px 12px;
17
+ --border-font-weight: 600;
18
+ --margin-block: 0 0 16px 0;
19
+ --padding-ul-ol: 0 0 0 16px;
20
+ --margin-ul-ol: 0 0 16px 28px;
21
+ --margin-li: 0 0 14px 0;
22
+ --hr-margin: 24px 0;
23
+ --table-margin: 0 0 24px 0;
24
+ --margin-pre: 0 0 16px 0;
25
+ --padding-code: 16px;
26
+ --xmd-tail-color: var(--text-color);
27
+ }
28
+
29
+ .x-markdown-light h1,
30
+ .x-markdown-light h2,
31
+ .x-markdown-light h3,
32
+ .x-markdown-light h4 {
33
+ color: var(--heading-color);
34
+ font-weight: var(--border-font-weight);
35
+ margin: var(--margin-block);
36
+ }
37
+
38
+ .x-markdown-light h1 {
39
+ font-size: 24px;
40
+ line-height: 36px;
41
+ }
42
+
43
+ .x-markdown-light h2 {
44
+ font-size: 20px;
45
+ line-height: 32px;
46
+ }
47
+
48
+ .x-markdown-light h3 {
49
+ font-size: 18px;
50
+ line-height: 30px;
51
+ }
52
+
53
+ .x-markdown-light h4 {
54
+ font-size: 16px;
55
+ }
56
+
57
+ .x-markdown-light p,
58
+ .x-markdown-light li {
59
+ color: var(--text-color);
60
+ margin: var(--margin-block);
61
+ }
62
+
63
+ .x-markdown-light li {
64
+ position: relative;
65
+ }
66
+
67
+ .x-markdown-light li::marker {
68
+ font-size: 16px;
69
+ font-weight: 400;
70
+ line-height: 28px;
71
+ color: var(--heading-color);
72
+ }
73
+
74
+ .x-markdown-light ul > li ul > li,
75
+ .x-markdown-light ul > li ol > li {
76
+ list-style: circle;
77
+ }
78
+
79
+ .x-markdown-light ul > li ul > li ul > li,
80
+ .x-markdown-light ul > li ul > li ol > li,
81
+ .x-markdown-light ul > li ol > li ul > li,
82
+ .x-markdown-light ul > li ol > li ol > li {
83
+ list-style: square;
84
+ }
85
+
86
+ .x-markdown-light ol > li ol > li,
87
+ .x-markdown-light ol > li ul > li {
88
+ list-style: lower-alpha;
89
+ }
90
+
91
+ .x-markdown-light ol > li ol > li ol > li,
92
+ .x-markdown-light ol > li ol > li ul > li,
93
+ .x-markdown-light ol > li ul > li ol > li,
94
+ .x-markdown-light ol > li ul > li ul > li {
95
+ list-style: lower-roman;
96
+ }
97
+
98
+ .x-markdown-light hr {
99
+ border: 0;
100
+ border-top: 1px solid var(--line-color);
101
+ margin: var(--hr-margin);
102
+ }
103
+
104
+ .x-markdown-light table {
105
+ border-collapse: collapse;
106
+ overflow: hidden;
107
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
108
+ margin: var(--table-margin);
109
+ }
110
+
111
+ .x-markdown-light thead {
112
+ background-color: var(--table-head-bg);
113
+ }
114
+
115
+ .x-markdown-light tbody {
116
+ background-color: var(--table-body-bg);
117
+ }
118
+
119
+ .x-markdown-light tbody tr {
120
+ background-color: var(--table-body-bg);
121
+ transition: background-color 200ms linear;
122
+ }
123
+
124
+ .x-markdown-light tbody tr:hover {
125
+ background-color: var(--table-head-bg);
126
+ }
127
+
128
+ .x-markdown-light th,
129
+ .x-markdown-light td {
130
+ padding: var(--td-th-padding);
131
+ border: 1px solid var(--border-color);
132
+ }
133
+
134
+ .x-markdown-light th {
135
+ color: var(--heading-color);
136
+ }
137
+
138
+ .x-markdown-light td {
139
+ color: var(--text-color);
140
+ }
141
+
142
+ .x-markdown-light blockquote {
143
+ border-left: 4px solid var(--border-color);
144
+ padding: 4px 12px;
145
+ margin: 16px 0;
146
+ background-color: var(--cite-bg);
147
+ border-radius: 0 var(--border-radius-middle) var(--border-radius-middle) 0;
148
+ transition: background-color 0.2s ease;
149
+ }
150
+
151
+ .x-markdown-light blockquote:hover {
152
+ background-color: var(--cite-hover-bg);
153
+ }
154
+
155
+ .x-markdown-light
156
+ pre
157
+ > code:not([class$="-highlightCode-code"]):not(
158
+ [class$="-codeHighlighter-code"]
159
+ ) {
160
+ display: block;
161
+ background: var(--light-bg) !important;
162
+ padding: var(--padding-code);
163
+ color: var(--text-color) !important;
164
+ line-height: 1.3;
165
+ font-size: var(--font-size);
166
+ border-radius: var(--border-radius-middle);
167
+ margin: var(--margin-pre);
168
+ }
169
+
170
+ .x-markdown-light
171
+ code:not(pre code):not([class$="-highlightCode-code"]):not(
172
+ [class$="-codeHighlighter-code"]
173
+ ) {
174
+ background-color: var(--light-bg) !important;
175
+ color: var(--text-color) !important;
176
+ border-radius: var(--border-radius-small);
177
+ padding: 2px 6px;
178
+ margin-inline: 3px;
179
+ font-size: var(--font-size);
180
+ border: 1px solid var(--border-color);
181
+ }
182
+
183
+ .x-markdown-light img {
184
+ max-width: 100%;
185
+ }
186
+
187
+ .x-markdown-light a {
188
+ color: var(--primary-color);
189
+ text-decoration: none;
190
+ transition: color 0.2s ease;
191
+ position: relative;
192
+ }
193
+
194
+ .x-markdown-light a:hover {
195
+ color: var(--primary-color-hover);
196
+ text-decoration: underline;
197
+ }
198
+
199
+ .x-markdown-light a::after {
200
+ content: "\2197";
201
+ margin-left: 4px;
202
+ vertical-align: super;
203
+ opacity: 0.7;
204
+ }
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@antdv-next/x-markdown",
3
+ "version": "0.0.1",
4
+ "files": [
5
+ "dist"
6
+ ],
7
+ "type": "module",
8
+ "sideEffects": [
9
+ "**/*.css"
10
+ ],
11
+ "main": "./dist/index.js",
12
+ "module": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ },
19
+ "./plugins/*": {
20
+ "types": "./dist/plugins/*/index.d.ts",
21
+ "import": "./dist/plugins/*/index.js"
22
+ },
23
+ "./themes/light.css": "./dist/themes/light.css",
24
+ "./themes/dark.css": "./dist/themes/dark.css",
25
+ "./package.json": "./package.json"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "dependencies": {
31
+ "dompurify": "^3.1.0",
32
+ "katex": "^0.16.25",
33
+ "marked": "^12.0.0"
34
+ },
35
+ "devDependencies": {
36
+ "@types/dompurify": "^3.0.5"
37
+ },
38
+ "peerDependencies": {
39
+ "vue": ">=3.5.0"
40
+ },
41
+ "scripts": {
42
+ "type-check": "vue-tsc --project tsconfig.build.json --noEmit",
43
+ "build": "vp build --config vite.build.config.ts && node ./scripts/copy-themes.mjs"
44
+ }
45
+ }