ds-markdown 1.0.5-beta.1 → 1.2.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.
- package/README.md +2 -0
- package/README.zh.md +2 -0
- package/es/components/CodeComponent/HighlightCode/index.d.ts.map +1 -1
- package/es/components/CodeComponent/HighlightCode/index.js +0 -1
- package/es/components/CodeComponent/HighlightCode/index.js.map +1 -1
- package/es/components/ui/Segmented/index.d.ts +1 -1
- package/es/components/ui/Segmented/index.d.ts.map +1 -1
- package/es/components/ui/Segmented/index.js +1 -1
- package/es/components/ui/Segmented/index.js.map +1 -1
- package/es/index.css +0 -26
- package/package.json +6 -4
- package/es/AutoScroll/index.d.ts +0 -7
- package/es/AutoScroll/index.d.ts.map +0 -1
- package/es/AutoScroll/index.js +0 -6
- package/es/AutoScroll/index.js.map +0 -1
- package/es/components/TableComponent/index.css +0 -24
- package/es/components/TableComponent/index.d.ts +0 -8
- package/es/components/TableComponent/index.d.ts.map +0 -1
- package/es/components/TableComponent/index.js +0 -7
- package/es/components/TableComponent/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -154,6 +154,8 @@ import DsMarkdown, { MarkdownCMD } from 'ds-markdown';
|
|
|
154
154
|
| `disableTyping` | `boolean` | Disable typing animation effects | `false` |
|
|
155
155
|
| `autoStartTyping` | `boolean` | Whether to automatically start typing animation, set to false for manual trigger, does not support dynamic modification | `true` |
|
|
156
156
|
| `codeBlock` | `IMarkdownCode` | Code block configuration | `{headerActions: true}` |
|
|
157
|
+
| `experimentalIncrementalRender` | `boolean` | **Experimental** incremental render mode. When enabled, avoids full markdown re-parse on every typed character, improving performance for long content | `false` |
|
|
158
|
+
| `incrementalFlushThreshold` | `number` | Tail size threshold for incremental mode flush decisions. Only effective when `experimentalIncrementalRender` is enabled | - |
|
|
157
159
|
|
|
158
160
|
> Note: If `disableTyping` changes from `true` to `false` during typing, it will only continue from the current position and will not replay the skipped animation; to replay from the beginning, please call the instance method `restart()`.
|
|
159
161
|
|
package/README.zh.md
CHANGED
|
@@ -154,6 +154,8 @@ import DsMarkdown, { MarkdownCMD } from 'ds-markdown';
|
|
|
154
154
|
| `disableTyping` | `boolean` | 禁用打字动画效果 | `false` |
|
|
155
155
|
| `autoStartTyping` | `boolean` | 是否自动开始打字动画,设为 false 时需手动触发,不支持动态修改 | `true` |
|
|
156
156
|
| `codeBlock` | `IMarkdownCode` | 代码块配置 | `{headerActions: true}` |
|
|
157
|
+
| `experimentalIncrementalRender` | `boolean` | **实验性** 增量渲染模式。开启后避免每次打字时全量重新解析 Markdown,提升长内容场景下的性能 | `false` |
|
|
158
|
+
| `incrementalFlushThreshold` | `number` | 增量模式下的尾部大小阈值,用于决定何时刷新。仅在 `experimentalIncrementalRender` 开启时有效 | - |
|
|
157
159
|
|
|
158
160
|
> 注意:打字进行中将 `disableTyping` 从 `true` 改为 `false` 只会从当前位置继续,不会回放已跳过的动画;若需从头播放,请调用实例方法 `restart()`。
|
|
159
161
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/CodeComponent/HighlightCode/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAMpC,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CAC/C;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/CodeComponent/HighlightCode/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAMpC,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CAC/C;;AAqBD,wBAAmC"}
|
|
@@ -4,7 +4,6 @@ import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
|
4
4
|
// Extract empty style object as constant to avoid creating new object on each render
|
|
5
5
|
const EMPTY_STYLE = {};
|
|
6
6
|
const HighlightCode = ({ code, language, cursorPlaceholder }) => {
|
|
7
|
-
console.log('code', code);
|
|
8
7
|
return (_jsx(SyntaxHighlighter, { useInlineStyles: false, language: language, style: EMPTY_STYLE, CodeTag: ({ children, ...props }) => (_jsxs("code", { ...props, children: [children, cursorPlaceholder && cursorPlaceholder] })), children: code }));
|
|
9
8
|
};
|
|
10
9
|
export default memo(HighlightCode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CodeComponent/HighlightCode/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,qFAAqF;AACrF,MAAM,WAAW,GAAG,EAAE,CAAC;AAQvB,MAAM,aAAa,GAAiC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE;IAC5F,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CodeComponent/HighlightCode/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,qFAAqF;AACrF,MAAM,WAAW,GAAG,EAAE,CAAC;AAQvB,MAAM,aAAa,GAAiC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE;IAC5F,OAAO,CACL,KAAC,iBAAiB,IAChB,eAAe,EAAE,KAAK,EACtB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACnC,mBAAU,KAAK,aACZ,QAAQ,EAER,iBAAiB,IAAI,iBAAiB,IAClC,CACR,YAEA,IAAI,GACa,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/Segmented/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/Segmented/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAcvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import './index.css';
|
|
3
|
-
const Segmented = ({
|
|
3
|
+
const Segmented = ({ items: segments, value, onChange }) => {
|
|
4
4
|
const handleClick = (itemValue) => {
|
|
5
5
|
onChange === null || onChange === void 0 ? void 0 : onChange(itemValue);
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/Segmented/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAatB,MAAM,SAAS,GAA6B,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/Segmented/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAatB,MAAM,SAAS,GAA6B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnF,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,EAAE;QACxC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,SAAS,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,wBAAwB,YACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,cAAsB,SAAS,EAAE,qBAAqB,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YACjI,IAAI,CAAC,KAAK,IADH,IAAI,CAAC,KAAK,CAEd,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
package/es/index.css
CHANGED
|
@@ -86,17 +86,6 @@
|
|
|
86
86
|
line-height: var(--ds-md-line-height);
|
|
87
87
|
margin: calc(var(--ds-md-zoom) * 16px) 0 calc(var(--ds-md-zoom) * 12px) 0;
|
|
88
88
|
}
|
|
89
|
-
.ds-markdown h1,
|
|
90
|
-
.ds-markdown h2,
|
|
91
|
-
.ds-markdown h3,
|
|
92
|
-
.ds-markdown h4,
|
|
93
|
-
.ds-markdown h5,
|
|
94
|
-
.ds-markdown h6 {
|
|
95
|
-
font-weight: var(--ds-font-weight-strong);
|
|
96
|
-
font-size: var(--ds-md-font-size);
|
|
97
|
-
line-height: var(--ds-md-line-height);
|
|
98
|
-
margin: calc(var(--ds-md-zoom) * 16px) 0 calc(var(--ds-md-zoom) * 12px) 0;
|
|
99
|
-
}
|
|
100
89
|
.ds-markdown h1 {
|
|
101
90
|
font-size: calc(var(--ds-md-zoom) * 24px);
|
|
102
91
|
line-height: 1.5;
|
|
@@ -219,21 +208,6 @@
|
|
|
219
208
|
.ds-markdown code:after {
|
|
220
209
|
margin-right: 4px;
|
|
221
210
|
}
|
|
222
|
-
ds-markdown-math {
|
|
223
|
-
text-align: center;
|
|
224
|
-
display: block;
|
|
225
|
-
overflow-x: auto;
|
|
226
|
-
overflow-y: hidden;
|
|
227
|
-
}
|
|
228
|
-
.ds-markdown > * .ds-markdown-math {
|
|
229
|
-
margin: calc(var(--ds-md-zoom) * 12px) 0;
|
|
230
|
-
}
|
|
231
|
-
.ds-markdown > * .ds-markdown-math:first-child {
|
|
232
|
-
margin-top: 0;
|
|
233
|
-
}
|
|
234
|
-
.ds-markdown > * .ds-markdown-math:last-child {
|
|
235
|
-
margin-bottom: 0;
|
|
236
|
-
}
|
|
237
211
|
.ds-markdown-code-copy-button {
|
|
238
212
|
background-color: rgba(var(--ds-rgba-transparent));
|
|
239
213
|
color: inherit;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ds-markdown",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"main": "./dist/esm/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
7
7
|
"style": "./dist/style.css",
|
|
@@ -65,6 +65,8 @@
|
|
|
65
65
|
"scripts": {
|
|
66
66
|
"dev": "vite",
|
|
67
67
|
"build:docs": "rimraf docs && vite build",
|
|
68
|
+
"build:nextra-docs-zh": "rimraf ./docs/zh && cd nextra-docs-zh && npm i && npm run build",
|
|
69
|
+
"build:nextra-docs-en": "rimraf ./docs/en && cd nextra-docs-en && npm i && npm run build",
|
|
68
70
|
"build": "node scripts/build-lib-ts.js",
|
|
69
71
|
"build:less": "lessc src/style.less dist/style.css && lessc src/katex.less dist/katex.css",
|
|
70
72
|
"lint": "eslint .",
|
|
@@ -77,8 +79,7 @@
|
|
|
77
79
|
"classnames": "^2.5.1",
|
|
78
80
|
"katex": "^0.16.22",
|
|
79
81
|
"react-markdown": "^10.1.0",
|
|
80
|
-
"react-markdown-typer": "
|
|
81
|
-
"react-router-dom": "^7.7.1",
|
|
82
|
+
"react-markdown-typer": "1.0.5",
|
|
82
83
|
"react-syntax-highlighter": "^15.6.1",
|
|
83
84
|
"rehype-katex": "^7.0.1",
|
|
84
85
|
"remark-gfm": "^4.0.1",
|
|
@@ -127,6 +128,7 @@
|
|
|
127
128
|
"react": "^19.1.0",
|
|
128
129
|
"react-dom": "^19.1.0",
|
|
129
130
|
"react-refresh": "^0.17.0",
|
|
131
|
+
"react-router-dom": "^7.7.1",
|
|
130
132
|
"rehype-stringify": "^10.0.1",
|
|
131
133
|
"remark-parse": "^11.0.0",
|
|
132
134
|
"remark-rehype": "^11.1.2",
|
|
@@ -156,6 +158,6 @@
|
|
|
156
158
|
"react-markdown"
|
|
157
159
|
],
|
|
158
160
|
"publishConfig": {
|
|
159
|
-
"tag": "
|
|
161
|
+
"tag": "latest"
|
|
160
162
|
}
|
|
161
163
|
}
|
package/es/AutoScroll/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AutoScroll/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAEzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/es/AutoScroll/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/AutoScroll/index.tsx"],"names":[],"mappings":";AAMA,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7D,OAAO,cAAK,SAAS,EAAC,yBAAyB,YAAE,QAAQ,GAAO,CAAC;AACnE,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
.ds-markdown .markdown-table-wrapper {
|
|
2
|
-
overflow-x: auto;
|
|
3
|
-
}
|
|
4
|
-
.ds-markdown .markdown-table-wrapper table {
|
|
5
|
-
width: max-content;
|
|
6
|
-
max-width: max-content;
|
|
7
|
-
min-width: 100%;
|
|
8
|
-
}
|
|
9
|
-
.ds-markdown .markdown-table-wrapper th,
|
|
10
|
-
.ds-markdown .markdown-table-wrapper td {
|
|
11
|
-
padding: 10px;
|
|
12
|
-
font-size: 15px;
|
|
13
|
-
line-height: 1.72;
|
|
14
|
-
}
|
|
15
|
-
.ds-markdown .markdown-table-wrapper th {
|
|
16
|
-
border-color: var(--dsr-border-1);
|
|
17
|
-
border-top: none;
|
|
18
|
-
}
|
|
19
|
-
.ds-markdown .markdown-table-wrapper td {
|
|
20
|
-
border-color: var(--dsr-border-2);
|
|
21
|
-
max-width: 320px;
|
|
22
|
-
min-width: 100px;
|
|
23
|
-
max-width: max(30vw, 320px);
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TableComponent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,CAAC;AAEtB,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import './index.css';
|
|
3
|
-
const TableComponent = ({ children }) => {
|
|
4
|
-
return (_jsx("div", { className: "markdown-table-wrapper", children: _jsx("table", { className: "ds-markdown-table", children: children }) }));
|
|
5
|
-
};
|
|
6
|
-
export default TableComponent;
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/TableComponent/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAMtB,MAAM,cAAc,GAAkC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrE,OAAO,CACL,cAAK,SAAS,EAAC,wBAAwB,YACrC,gBAAO,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAS,GACnD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|