@ant-design/x-markdown-mini 0.1.0-beta.0

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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -0
  3. package/dist/components/Markdown/index.acss +103 -0
  4. package/dist/components/Markdown/index.axml +12 -0
  5. package/dist/components/Markdown/index.js +93 -0
  6. package/dist/components/Markdown/index.json +7 -0
  7. package/dist/components/MiniNodeRenderer/index.acss +11 -0
  8. package/dist/components/MiniNodeRenderer/index.axml +113 -0
  9. package/dist/components/MiniNodeRenderer/index.js +37 -0
  10. package/dist/components/MiniNodeRenderer/index.json +7 -0
  11. package/dist/components/MiniNodeRenderer/index.sjs +63 -0
  12. package/dist/es/Markdown/index.acss +103 -0
  13. package/dist/es/Markdown/index.axml +12 -0
  14. package/dist/es/Markdown/index.js +93 -0
  15. package/dist/es/Markdown/index.json +7 -0
  16. package/dist/es/MiniNodeRenderer/index.acss +11 -0
  17. package/dist/es/MiniNodeRenderer/index.axml +113 -0
  18. package/dist/es/MiniNodeRenderer/index.js +37 -0
  19. package/dist/es/MiniNodeRenderer/index.json +7 -0
  20. package/dist/es/MiniNodeRenderer/index.sjs +63 -0
  21. package/dist/index.d.mts +508 -0
  22. package/dist/index.d.ts +508 -0
  23. package/dist/index.js +3151 -0
  24. package/dist/index.mjs +3111 -0
  25. package/dist/miniprogram_dist/components/Markdown/index.js +85 -0
  26. package/dist/miniprogram_dist/components/Markdown/index.json +10 -0
  27. package/dist/miniprogram_dist/components/Markdown/index.wxml +11 -0
  28. package/dist/miniprogram_dist/components/Markdown/index.wxss +103 -0
  29. package/dist/miniprogram_dist/components/MiniNodeRenderer/index.js +39 -0
  30. package/dist/miniprogram_dist/components/MiniNodeRenderer/index.json +10 -0
  31. package/dist/miniprogram_dist/components/MiniNodeRenderer/index.wxml +112 -0
  32. package/dist/miniprogram_dist/components/MiniNodeRenderer/index.wxs +40 -0
  33. package/dist/miniprogram_dist/components/MiniNodeRenderer/index.wxss +11 -0
  34. package/dist/miniprogram_dist/es/Markdown/index.js +85 -0
  35. package/dist/miniprogram_dist/es/Markdown/index.json +10 -0
  36. package/dist/miniprogram_dist/es/Markdown/index.wxml +11 -0
  37. package/dist/miniprogram_dist/es/Markdown/index.wxss +103 -0
  38. package/dist/miniprogram_dist/es/MiniNodeRenderer/index.js +39 -0
  39. package/dist/miniprogram_dist/es/MiniNodeRenderer/index.json +10 -0
  40. package/dist/miniprogram_dist/es/MiniNodeRenderer/index.wxml +112 -0
  41. package/dist/miniprogram_dist/es/MiniNodeRenderer/index.wxs +40 -0
  42. package/dist/miniprogram_dist/es/MiniNodeRenderer/index.wxss +11 -0
  43. package/dist/miniprogram_dist/index.js +3151 -0
  44. package/dist/miniprogram_dist/plugins/CodeHighlight/index.js +8038 -0
  45. package/dist/miniprogram_dist/plugins/CodeHighlight/style.wxss +105 -0
  46. package/dist/miniprogram_dist/plugins/Latex/index.js +14728 -0
  47. package/dist/miniprogram_dist/plugins/Latex/style.wxss +648 -0
  48. package/dist/miniprogram_dist/shared/flattenInline.js +100 -0
  49. package/dist/plugins/CodeHighlight/index.d.mts +27 -0
  50. package/dist/plugins/CodeHighlight/index.d.ts +27 -0
  51. package/dist/plugins/CodeHighlight/index.js +8038 -0
  52. package/dist/plugins/CodeHighlight/index.mjs +8028 -0
  53. package/dist/plugins/CodeHighlight/style.acss +105 -0
  54. package/dist/plugins/Latex/index.d.mts +12 -0
  55. package/dist/plugins/Latex/index.d.ts +12 -0
  56. package/dist/plugins/Latex/index.js +14728 -0
  57. package/dist/plugins/Latex/index.mjs +14705 -0
  58. package/dist/plugins/Latex/style.acss +648 -0
  59. package/dist/shared/flattenInline.js +100 -0
  60. package/dist/types-CegkonfJ.d.mts +83 -0
  61. package/dist/types-CegkonfJ.d.ts +83 -0
  62. package/package.json +93 -0
@@ -0,0 +1,103 @@
1
+ .md-root {
2
+ display: block;
3
+ font-size: 28rpx;
4
+ line-height: 1.65;
5
+ color: #1f1f1f;
6
+ word-break: break-word;
7
+ }
8
+
9
+ .md-paragraph {
10
+ display: block;
11
+ margin: 0 0 16rpx;
12
+ }
13
+
14
+ .md-heading {
15
+ display: block;
16
+ font-weight: 600;
17
+ margin: 24rpx 0 12rpx;
18
+ line-height: 1.3;
19
+ }
20
+ .md-h1 { font-size: 44rpx; }
21
+ .md-h2 { font-size: 38rpx; }
22
+ .md-h3 { font-size: 34rpx; }
23
+ .md-h4 { font-size: 30rpx; }
24
+ .md-h5 { font-size: 28rpx; }
25
+ .md-h6 { font-size: 26rpx; color: #666; }
26
+
27
+ .md-list {
28
+ display: block;
29
+ margin: 8rpx 0 16rpx;
30
+ padding-left: 32rpx;
31
+ }
32
+ .md-list-item {
33
+ display: list-item;
34
+ margin: 4rpx 0;
35
+ }
36
+
37
+ .md-blockquote {
38
+ display: block;
39
+ margin: 12rpx 0;
40
+ padding: 8rpx 16rpx;
41
+ border-left: 6rpx solid #d9d9d9;
42
+ color: #555;
43
+ background: #fafafa;
44
+ }
45
+
46
+ .md-code-block {
47
+ display: block;
48
+ margin: 12rpx 0;
49
+ padding: 16rpx;
50
+ background: #f6f8fa;
51
+ border-radius: 8rpx;
52
+ overflow-x: auto;
53
+ }
54
+
55
+ .md-code {
56
+ display: block;
57
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
58
+ font-size: 26rpx;
59
+ white-space: pre;
60
+ }
61
+
62
+ .md-inline-code {
63
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
64
+ font-size: 26rpx;
65
+ background: #f3f3f3;
66
+ padding: 0 6rpx;
67
+ border-radius: 4rpx;
68
+ }
69
+
70
+ .md-strong { font-weight: 600; }
71
+ .md-em { font-style: italic; }
72
+
73
+ .md-link {
74
+ color: #1677ff;
75
+ text-decoration: underline;
76
+ }
77
+
78
+ .md-img {
79
+ display: block;
80
+ max-width: 100%;
81
+ }
82
+
83
+ .md-hr {
84
+ display: block;
85
+ height: 2rpx;
86
+ background: #e5e5e5;
87
+ margin: 16rpx 0;
88
+ }
89
+
90
+ .md-table {
91
+ display: block;
92
+ width: 100%;
93
+ margin: 12rpx 0;
94
+ border-collapse: collapse;
95
+ }
96
+ .md-th, .md-td {
97
+ display: table-cell;
98
+ padding: 8rpx 12rpx;
99
+ border: 1rpx solid #e5e5e5;
100
+ }
101
+ .md-th { background: #fafafa; font-weight: 600; }
102
+
103
+ .md-html { display: block; }
@@ -0,0 +1,12 @@
1
+ <view class="md-root {{className}}">
2
+ <mini-node-renderer
3
+ nodes="{{nodes}}"
4
+ selectable="{{selectable}}"
5
+ animation="{{animation}}"
6
+ slotComponents="{{slotComponents}}"
7
+ onTap="onTap"
8
+ onAppear="onAppear"
9
+ >
10
+ <slot slot-scope="prop" data="{{prop.data}}" />
11
+ </mini-node-renderer>
12
+ </view>
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ // src/components/alipay/Markdown/index.ts
4
+ var import__ = require("../../index.js");
5
+ var import_flattenInline = require("../../shared/flattenInline.js");
6
+ var defaultProps = {
7
+ content: "",
8
+ streaming: false,
9
+ selectable: true,
10
+ className: "",
11
+ extensions: null,
12
+ components: null,
13
+ footnote: false
14
+ };
15
+ function sameList(a, b) {
16
+ const x = a != null ? a : [];
17
+ const y = b != null ? b : [];
18
+ if (x.length !== y.length) return false;
19
+ for (let i = 0; i < x.length; i++) if (x[i] !== y[i]) return false;
20
+ return true;
21
+ }
22
+ Component({
23
+ props: defaultProps,
24
+ data: {
25
+ nodes: [],
26
+ slotComponents: []
27
+ },
28
+ md: null,
29
+ didMount() {
30
+ this._build(this.props);
31
+ this._render(this.props);
32
+ },
33
+ didUpdate(prevProps) {
34
+ const p = this.props;
35
+ if (!sameList(prevProps.components, p.components) || prevProps.footnote !== p.footnote) {
36
+ this._build(p);
37
+ this._render(p);
38
+ return;
39
+ }
40
+ if (prevProps.content !== p.content || prevProps.streaming !== p.streaming || prevProps.selectable !== p.selectable || prevProps.extensions !== p.extensions || prevProps.gfm !== p.gfm || prevProps.breaks !== p.breaks) {
41
+ this._render(p);
42
+ }
43
+ },
44
+ didUnmount() {
45
+ var _a;
46
+ (_a = this.md) == null ? void 0 : _a.reset();
47
+ this.md = null;
48
+ },
49
+ methods: {
50
+ _build(props) {
51
+ var _a, _b;
52
+ const components = (_a = props.components) != null ? _a : [];
53
+ const extensions = props.footnote ? [(0, import__.Footnote)()] : [];
54
+ (_b = this.md) == null ? void 0 : _b.reset();
55
+ this.md = new import__.XMarkdownMini({ escapeText: false, components, extensions });
56
+ const slotComponents = props.footnote ? components.concat(["footnote"]) : components;
57
+ this.setData({ slotComponents });
58
+ },
59
+ _render(props) {
60
+ var _a;
61
+ this.md.renderNodes({
62
+ content: props.content,
63
+ platform: "alipay",
64
+ streaming: props.streaming,
65
+ selectable: props.selectable,
66
+ gfm: props.gfm,
67
+ breaks: props.breaks,
68
+ extensions: (_a = props.extensions) != null ? _a : void 0,
69
+ onRenderStart: () => {
70
+ var _a2;
71
+ return (_a2 = props.onRenderStart) == null ? void 0 : _a2.call(props);
72
+ },
73
+ onRenderProgress: (payload) => {
74
+ var _a2;
75
+ return (_a2 = props.onRenderProgress) == null ? void 0 : _a2.call(props, payload);
76
+ },
77
+ onRenderComplete: () => {
78
+ var _a2;
79
+ return (_a2 = props.onRenderComplete) == null ? void 0 : _a2.call(props);
80
+ },
81
+ onPatch: (nodes) => this.setData({ nodes: (0, import_flattenInline.flattenInlineNodes)(nodes) })
82
+ });
83
+ },
84
+ onTap(e) {
85
+ var _a, _b;
86
+ (_b = (_a = this.props).onTap) == null ? void 0 : _b.call(_a, e);
87
+ },
88
+ onAppear(e) {
89
+ var _a, _b;
90
+ (_b = (_a = this.props).onAppear) == null ? void 0 : _b.call(_a, e);
91
+ }
92
+ }
93
+ });
@@ -0,0 +1,7 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "shared",
4
+ "usingComponents": {
5
+ "mini-node-renderer": "../MiniNodeRenderer/index"
6
+ }
7
+ }
@@ -0,0 +1,11 @@
1
+ .md-animate-block {
2
+ animation-fill-mode: forwards;
3
+ animation-name: md-block-appear;
4
+ animation-timing-function: var(--md-animation-timing, ease-in);
5
+ animation-duration: var(--md-animation-duration, 300ms);
6
+ }
7
+
8
+ @keyframes md-block-appear {
9
+ 0% { opacity: 0; transform: translateY(4rpx); }
10
+ 100% { opacity: 1; transform: translateY(0); }
11
+ }
@@ -0,0 +1,113 @@
1
+ <import-sjs from="./index.sjs" name="u" />
2
+
3
+ <block a:for="{{nodes}}" a:for-item="node" a:for-index="i" a:key="i">
4
+ <!-- text leaf -->
5
+ <text
6
+ a:if="{{u.isText(node.name)}}"
7
+ class="{{u.classOf(node)}}"
8
+ selectable="{{selectable}}"
9
+ >{{u.valueOf(node)}}</text>
10
+
11
+ <!-- br -->
12
+ <text a:elif="{{u.isBr(node.name)}}">{{'\n'}}</text>
13
+
14
+ <!-- hr -->
15
+ <view a:elif="{{u.isHr(node.name)}}" class="{{u.classOf(node)}}" />
16
+
17
+ <!-- img -->
18
+ <image
19
+ a:elif="{{u.isImg(node.name)}}"
20
+ class="{{u.classOf(node)}}"
21
+ style="{{u.styleOf(node)}}"
22
+ src="{{u.srcOf(node)}}"
23
+ mode="widthFix"
24
+ data-data="{{node}}"
25
+ catchTap="_tap"
26
+ onAppear="_appear"
27
+ />
28
+
29
+ <!-- pre: scrollable code container -->
30
+ <scroll-view
31
+ a:elif="{{u.isPre(node.name)}}"
32
+ scroll-x
33
+ class="{{u.classOf(node)}}"
34
+ style="{{u.styleOf(node)}}"
35
+ data-data="{{node}}"
36
+ catchTap="_tap"
37
+ >
38
+ <mini-node-renderer
39
+ a:if="{{node.children}}"
40
+ nodes="{{node.children}}"
41
+ selectable="{{selectable}}"
42
+ animation="{{false}}"
43
+ slotComponents="{{slotComponents}}"
44
+ onTap="onTap"
45
+ onAppear="onAppear"
46
+ >
47
+ <slot slot-scope="prop" data="{{prop.data}}" />
48
+ </mini-node-renderer>
49
+ </scroll-view>
50
+
51
+ <!-- anchor: kept interactive, children are already flattened text runs -->
52
+ <text
53
+ a:elif="{{node.name === 'a'}}"
54
+ class="{{u.classOf(node)}}"
55
+ style="{{u.styleOf(node)}}"
56
+ selectable="{{selectable}}"
57
+ data-data="{{node}}"
58
+ catchTap="_tap"
59
+ >
60
+ <text
61
+ a:for="{{node.children}}"
62
+ a:for-item="c"
63
+ a:for-index="ci"
64
+ a:key="ci"
65
+ class="{{u.classOf(c)}}"
66
+ >{{u.valueOf(c)}}</text>
67
+ </text>
68
+
69
+ <!-- inline tag rendered as <text>: children are flat text runs -->
70
+ <text
71
+ a:elif="{{u.isInline(node.name)}}"
72
+ class="{{u.classOf(node)}}"
73
+ style="{{u.styleOf(node)}}"
74
+ selectable="{{selectable}}"
75
+ data-data="{{node}}"
76
+ catchTap="_tap"
77
+ >
78
+ <text
79
+ a:for="{{node.children}}"
80
+ a:for-item="c"
81
+ a:for-index="ci"
82
+ a:key="ci"
83
+ class="{{u.classOf(c)}}"
84
+ >{{u.valueOf(c)}}</text>
85
+ </text>
86
+
87
+ <!-- custom component: hand off to host scoped slot, keyed by node.tag -->
88
+ <slot
89
+ a:elif="{{u.isSlot(node.name, slotComponents)}}"
90
+ data="{{node}}"
91
+ />
92
+
93
+ <!-- block tag rendered as <view> -->
94
+ <view
95
+ a:else
96
+ class="{{u.classOf(node)}}"
97
+ style="{{u.styleOf(node)}}"
98
+ data-data="{{node}}"
99
+ catchTap="_tap"
100
+ >
101
+ <mini-node-renderer
102
+ a:if="{{node.children}}"
103
+ nodes="{{node.children}}"
104
+ selectable="{{selectable}}"
105
+ animation="{{animation}}"
106
+ slotComponents="{{slotComponents}}"
107
+ onTap="onTap"
108
+ onAppear="onAppear"
109
+ >
110
+ <slot slot-scope="prop" data="{{prop.data}}" />
111
+ </mini-node-renderer>
112
+ </view>
113
+ </block>
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/components/alipay/MiniNodeRenderer/index.ts
17
+ var MiniNodeRenderer_exports = {};
18
+ module.exports = __toCommonJS(MiniNodeRenderer_exports);
19
+ var defaultProps = {
20
+ nodes: [],
21
+ selectable: true,
22
+ animation: false,
23
+ slotComponents: []
24
+ };
25
+ Component({
26
+ props: defaultProps,
27
+ methods: {
28
+ _tap(e) {
29
+ var _a, _b;
30
+ (_b = (_a = this.props).onTap) == null ? void 0 : _b.call(_a, e);
31
+ },
32
+ _appear(e) {
33
+ var _a, _b;
34
+ (_b = (_a = this.props).onAppear) == null ? void 0 : _b.call(_a, e);
35
+ }
36
+ }
37
+ });
@@ -0,0 +1,7 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "shared",
4
+ "usingComponents": {
5
+ "mini-node-renderer": "./index"
6
+ }
7
+ }
@@ -0,0 +1,63 @@
1
+ var INLINE = { strong: 1, em: 1, del: 1, code: 1, a: 1, span: 1 };
2
+ var BLOCK = {
3
+ p: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1,
4
+ div: 1, blockquote: 1, ul: 1, ol: 1, li: 1,
5
+ pre: 1, hr: 1,
6
+ table: 1, thead: 1, tbody: 1, tr: 1, th: 1, td: 1,
7
+ };
8
+
9
+ function isInline(name) { return INLINE[name] === 1; }
10
+ function isBlock(name) { return BLOCK[name] === 1; }
11
+ function isText(name) { return name === 'text'; }
12
+ function isBr(name) { return name === 'br'; }
13
+ function isImg(name) { return name === 'img'; }
14
+ function isHr(name) { return name === 'hr'; }
15
+ function isPre(name) { return name === 'pre'; }
16
+ function isSlot(name, slotComponents) {
17
+ return !!slotComponents && slotComponents.indexOf(name) > -1;
18
+ }
19
+
20
+ function classOf(node) {
21
+ var attrs = node.attrs || {};
22
+ var cls = attrs['class'] || '';
23
+ if (node.animate) {
24
+ cls = cls ? cls + ' md-animate-block' : 'md-animate-block';
25
+ }
26
+ return cls;
27
+ }
28
+
29
+ function styleOf(node) {
30
+ var attrs = node.attrs || {};
31
+ return attrs.style || '';
32
+ }
33
+
34
+ function srcOf(node) {
35
+ var attrs = node.attrs || {};
36
+ return attrs.src || '';
37
+ }
38
+
39
+ function altOf(node) {
40
+ var attrs = node.attrs || {};
41
+ return attrs.alt || '';
42
+ }
43
+
44
+ function valueOf(node) {
45
+ var attrs = node.attrs || {};
46
+ return attrs.value || '';
47
+ }
48
+
49
+ export default {
50
+ isInline: isInline,
51
+ isBlock: isBlock,
52
+ isText: isText,
53
+ isBr: isBr,
54
+ isImg: isImg,
55
+ isHr: isHr,
56
+ isPre: isPre,
57
+ isSlot: isSlot,
58
+ classOf: classOf,
59
+ styleOf: styleOf,
60
+ srcOf: srcOf,
61
+ altOf: altOf,
62
+ valueOf: valueOf,
63
+ };