remons-render-markdown 2.0.1-beta.1 → 2.0.1-beta.4
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/dist/components/ImagePreview/index.d.ts +15 -6
- package/dist/components/MermaidRenderer/index.d.ts +27 -3
- package/dist/components/MermaidRenderer/mermaidRootRegistry.d.ts +25 -0
- package/dist/components/MermaidRenderer/renderMermaidWithControls.d.ts +22 -6
- package/dist/components/MermaidRenderer/useMermaidRender.d.ts +13 -4
- package/dist/components/MermaidRenderer/usePanzoom.d.ts +17 -3
- package/dist/components/RenderMarkdown/index.d.ts +60 -15
- package/dist/components/RenderMarkdown/utils/render-markdown/empty-task-lists.d.ts +2 -0
- package/dist/components/RenderMarkdown/utils/render-markdown/fence-state.d.ts +16 -0
- package/dist/components/RenderMarkdown/utils/render-markdown/index.d.ts +23 -2
- package/dist/components/RenderMarkdown/utils/render-markdown/render-tab.d.ts +2 -1
- package/dist/components/RenderMarkdown/utils/render-markdown/validate-link.d.ts +16 -0
- package/dist/components/TocSidebar/index.d.ts +15 -0
- package/dist/hooks/useIncrementalRender.d.ts +64 -0
- package/dist/hooks/useTheme.d.ts +8 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.mjs +19 -13
- package/dist/utils/cdn.d.ts +8 -1
- package/dist/utils/dom-contract.d.ts +24 -0
- package/dist/utils/driver.d.ts +3 -0
- package/dist/utils/preload.d.ts +1 -1
- package/package.json +93 -95
- package/readme.md +288 -70
- package/dist/components/ImagePreview/ImageToolbar.d.ts +0 -9
- package/dist/main.d.ts +0 -2
package/dist/utils/cdn.d.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
/** 默认 CDN
|
|
1
|
+
/** 默认 CDN 配置(可通过 registerCdn 覆盖,供库使用方全局定制) */
|
|
2
2
|
declare const defaultCdn: Record<string, string>;
|
|
3
|
+
/**
|
|
4
|
+
* 注册/覆盖全局默认 CDN 地址(初始化时调用一次,全局生效)
|
|
5
|
+
* @param name CDN 名称,如 'mermaid'
|
|
6
|
+
* @param url 完整脚本 URL;传空字符串视为删除该注册
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerCdn(name: string, url: string): void;
|
|
3
9
|
/**
|
|
4
10
|
* 获取 CDN URL
|
|
5
11
|
* @param name CDN 名称,如 'mermaid'
|
|
6
12
|
* @param cdn 外部传入的 CDN 配置,如 { mermaid: 'https://...' }
|
|
7
13
|
* @returns CDN URL,优先使用外部传入的配置
|
|
14
|
+
* @throws 当外部配置与默认配置均无该名称时抛错,避免静默加载失败
|
|
8
15
|
*/
|
|
9
16
|
export declare function getCdnUrl(name: string, cdn?: Record<string, string>): string;
|
|
10
17
|
export default defaultCdn;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 跨模块共享的 DOM 契约常量(纯常量、无任何依赖)。
|
|
3
|
+
*
|
|
4
|
+
* 单独成模块的原因:这些标记同时被三方读写——
|
|
5
|
+
* - useIncrementalRender(morphdom diff 时据此保护 / 摘除节点)
|
|
6
|
+
* - RenderMarkdown(代码块工具栏、源码隐藏 class)
|
|
7
|
+
* - MermaidRenderer 的 DOM 扫描(图表挂载点身份与复用判据)
|
|
8
|
+
* 若各自定义字面量,任何一处改名都会静默破坏另外两处的行为,且不会报错。
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* 标记「由 JS 动态插入、需跨增量渲染保留」的节点:
|
|
12
|
+
* 带此属性的节点在 morphdom diff 时不会被移除(如插件容器内的收起按钮、图表挂载点)。
|
|
13
|
+
*/
|
|
14
|
+
export declare const MD_PERSIST_ATTR = "data-md-persist";
|
|
15
|
+
/** 已挂载节点的业务身份 key:morphdom 与插件恢复逻辑据此跨渲染匹配同一个节点 */
|
|
16
|
+
export declare const MD_KEY_ATTR = "data-md-key";
|
|
17
|
+
/** Mermaid 图表挂载点的 class(React Root 挂在这个 div 上) */
|
|
18
|
+
export declare const MERMAID_ROOT_CLASS = "mermaid-react-root";
|
|
19
|
+
/**
|
|
20
|
+
* 挂载点上记录的「当前展示的是哪份源码」指纹。
|
|
21
|
+
* 源码没变就直接复用这个节点(不重挂、不重渲染),变了才更新 props——
|
|
22
|
+
* 这是流式场景下图表不闪白、不丢缩放/全屏状态的关键。
|
|
23
|
+
*/
|
|
24
|
+
export declare const MERMAID_SRC_ATTR = "data-md-mermaid-src";
|
package/dist/utils/driver.d.ts
CHANGED
|
@@ -15,6 +15,9 @@ type Data = Array<{
|
|
|
15
15
|
/**
|
|
16
16
|
* 用于渲染引导
|
|
17
17
|
* @param data 引导数据,数组结构,每一项为一个引导
|
|
18
|
+
*
|
|
19
|
+
* 语义:同一 data 引用只完整播放一次;播放过程中重复调用会被忽略(不再中途改写队列数据,
|
|
20
|
+
* 避免旧实现的 latestData 竞态:播放中更新 data 导致步骤与队列错位)。
|
|
18
21
|
*/
|
|
19
22
|
export default function driverRender(data: Data): void;
|
|
20
23
|
export {};
|
package/dist/utils/preload.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,95 +1,93 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "remons-render-markdown",
|
|
3
|
-
"version": "2.0.1-beta.
|
|
4
|
-
"description": "一个基于 React 的 Markdown 渲染组件,支持 GFM(GitHub Flavored Markdown)、代码高亮、Mermaid 图表、Tabs 渲染等功能。",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.mjs",
|
|
7
|
-
"module": "./dist/index.mjs",
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"exports": {
|
|
10
|
-
".": {
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
},
|
|
14
|
-
"./
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"build
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"@
|
|
53
|
-
"@
|
|
54
|
-
"@
|
|
55
|
-
"@
|
|
56
|
-
"eslint": "^
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"markdown-it": "^15.0.1",
|
|
81
|
-
"markdown-it-anchor": "^9.2.1",
|
|
82
|
-
"markdown-it-github-alerts": "^1.0.1",
|
|
83
|
-
"markdown-it-link-attributes": "^4.0.1",
|
|
84
|
-
"markdown-it-task-lists": "^2.1.1",
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "remons-render-markdown",
|
|
3
|
+
"version": "2.0.1-beta.4",
|
|
4
|
+
"description": "一个基于 React 的 Markdown 渲染组件,支持 GFM(GitHub Flavored Markdown)、代码高亮、Mermaid 图表、Tabs 渲染等功能。",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.mjs",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"./style.css": "./dist/index.css",
|
|
15
|
+
"./dist/index.css": "./dist/index.css"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "vite build --config vite.lib.config.ts",
|
|
22
|
+
"build:analyze": "vite-bundle-visualizer --config vite.lib.config.ts --output dist/stats.html --open",
|
|
23
|
+
"dev": "vite",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"lint": "eslint . --ext .ts,.tsx",
|
|
26
|
+
"format": "prettier --write .",
|
|
27
|
+
"changeset": "changeset",
|
|
28
|
+
"version": "changeset version",
|
|
29
|
+
"release": "changeset publish"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"markdown",
|
|
33
|
+
"react",
|
|
34
|
+
"render",
|
|
35
|
+
"gfm",
|
|
36
|
+
"mermaid"
|
|
37
|
+
],
|
|
38
|
+
"author": "remons",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"@ant-design/icons": ">=5.0.0",
|
|
42
|
+
"highlight.js": ">=11.0.0",
|
|
43
|
+
"react": ">=18.0.0",
|
|
44
|
+
"react-dom": ">=18.0.0"
|
|
45
|
+
},
|
|
46
|
+
"peerDependenciesMeta": {
|
|
47
|
+
"@ant-design/icons": {
|
|
48
|
+
"optional": false
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@ant-design/icons": "^6.3.2",
|
|
53
|
+
"@changesets/cli": "^2.27.0",
|
|
54
|
+
"@types/react": "^18.3.0",
|
|
55
|
+
"@types/react-dom": "^18.3.0",
|
|
56
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
57
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
58
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
59
|
+
"eslint": "^8.0.0",
|
|
60
|
+
"highlight.js": "^11.12.0",
|
|
61
|
+
"less": "^4.2.0",
|
|
62
|
+
"prettier": "^3.0.0",
|
|
63
|
+
"react": "^18.3.1",
|
|
64
|
+
"react-dom": "^18.3.1",
|
|
65
|
+
"terser": "^5.50.0",
|
|
66
|
+
"typescript": "^5.3.0",
|
|
67
|
+
"vite": "^8.0.0",
|
|
68
|
+
"vite-bundle-visualizer": "^1.2.1",
|
|
69
|
+
"vite-plugin-dts": "^4.0.0"
|
|
70
|
+
},
|
|
71
|
+
"publishConfig": {
|
|
72
|
+
"registry": "https://registry.npmjs.org/",
|
|
73
|
+
"access": "public"
|
|
74
|
+
},
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"@mdit/plugin-tab": "^2.0.0",
|
|
77
|
+
"@panzoom/panzoom": "^4.6.2",
|
|
78
|
+
"classnames": "^2.5.1",
|
|
79
|
+
"driver.js": "^1.8.0",
|
|
80
|
+
"markdown-it": "^15.0.1",
|
|
81
|
+
"markdown-it-anchor": "^9.2.1",
|
|
82
|
+
"markdown-it-github-alerts": "^1.0.1",
|
|
83
|
+
"markdown-it-link-attributes": "^4.0.1",
|
|
84
|
+
"markdown-it-task-lists": "^2.1.1",
|
|
85
|
+
"methods-r": "^2.0.0-rc.1",
|
|
86
|
+
"morphdom": "^2.7.8",
|
|
87
|
+
"photoswipe": "^5.4.4"
|
|
88
|
+
},
|
|
89
|
+
"repository": {
|
|
90
|
+
"type": "git",
|
|
91
|
+
"url": "https://github.com/liRemons/render-markdown.git"
|
|
92
|
+
}
|
|
93
|
+
}
|