doc-render-sdk 0.0.9 → 0.0.13

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 CHANGED
@@ -66,7 +66,132 @@ docSdk.render('#app');
66
66
  ```
67
67
 
68
68
 
69
- ## 📚 详细文档
69
+ ## 🔧 Vite 插件
70
+
71
+ doc-render-sdk 提供了 Vite 插件,自动读取 demo 文件源码并注入到全局变量。
72
+
73
+ ### 核心特性
74
+
75
+ - ✅ **自动读取源码** - 从 demo 文件自动读取源代码
76
+ - ✅ **零维护成本** - 无需手动维护代码字符串
77
+ - ✅ **单一数据源** - demo 文件即是唯一的代码来源
78
+ - ✅ **自动同步** - 修改 demo 文件,代码展示自动更新
79
+ - ✅ **灵活配置** - 支持自定义配置和预设
80
+
81
+ ### 快速使用
82
+
83
+ ```javascript
84
+ // vite.config.js
85
+ import { defineConfig } from 'vite';
86
+ import demoCodePlugin from 'doc-render-sdk/plugin';
87
+
88
+ export default defineConfig({
89
+ plugins: [
90
+ demoCodePlugin({
91
+ include: 'src/main.js',
92
+ demoPattern: '/demo/',
93
+ debug: true
94
+ })
95
+ ]
96
+ });
97
+ ```
98
+
99
+ ### 预设配置
100
+
101
+ ```javascript
102
+ import demoCodePlugin, { presets } from 'doc-render-sdk/plugin';
103
+
104
+ // 默认配置
105
+ demoCodePlugin(presets.default)
106
+
107
+ // 严格模式
108
+ demoCodePlugin(presets.strict)
109
+
110
+ // 宽松模式(支持下划线命名)
111
+ demoCodePlugin(presets.loose)
112
+
113
+ // TypeScript 项目
114
+ demoCodePlugin(presets.typescript)
115
+ ```
116
+
117
+ 详细文档请查看 [插件文档](./src/plugin/README.md)
118
+
119
+ ---
120
+
121
+ ## 📚 Playground 文档
122
+
123
+ - [项目说明](./playground/README.md) - Playground 项目概览
124
+ - [组件添加指南](./playground/HOW_TO_ADD_COMPONENT.md) - 如何添加新组件
125
+ - [项目总结](./playground/SUMMARY.md) - 完整的项目总结
126
+
127
+ ### 自动化工具
128
+
129
+ - [Vite 插件文档](./playground/VITE_PLUGIN_README.md) - vite-plugin-demo-code 详细说明
130
+ - [代码自动生成](./playground/DEMO_CODE_AUTO_GENERATION.md) - Demo 代码自动生成原理
131
+ - [重要变更](./playground/CHANGES.md) - 最新变更说明
132
+
133
+ ## 🔧 Vite 插件:vite-plugin-demo-code
134
+
135
+ 专为 doc-render-sdk 设计的 Vite 插件,自动读取 demo 文件源码并注入到全局变量。
136
+
137
+ ### 核心特性
138
+
139
+ - ✅ **自动读取源码** - 从 demo 文件自动读取源代码
140
+ - ✅ **零维护成本** - 无需手动维护代码字符串
141
+ - ✅ **单一数据源** - demo 文件即是唯一的代码来源
142
+ - ✅ **自动同步** - 修改 demo 文件,代码展示自动更新
143
+ - ✅ **灵活配置** - 支持自定义配置和预设
144
+
145
+ ### 快速使用
146
+
147
+ ```javascript
148
+ // vite.config.js
149
+ import demoCodePlugin from './vite-plugin-demo-code.js';
150
+
151
+ export default defineConfig({
152
+ plugins: [
153
+ demoCodePlugin() // 使用默认配置
154
+ ]
155
+ });
156
+ ```
157
+
158
+ ### 自定义配置
159
+
160
+ ```javascript
161
+ demoCodePlugin({
162
+ include: 'src/main.js', // 处理的文件
163
+ demoPattern: '/components/', // Demo 文件路径模式
164
+ globalVar: 'window.__MY_CODES__', // 自定义全局变量名
165
+ debug: true, // 开启调试模式
166
+ transform: (code) => { // 自定义代码转换
167
+ return code.replace(/\/\/.*/g, '');
168
+ }
169
+ })
170
+ ```
171
+
172
+ ### 预设配置
173
+
174
+ ```javascript
175
+ import demoCodePlugin, { presets } from './vite-plugin-demo-code.js';
176
+
177
+ // 默认配置
178
+ demoCodePlugin(presets.default)
179
+
180
+ // 严格模式
181
+ demoCodePlugin(presets.strict)
182
+
183
+ // 宽松模式(支持下划线命名)
184
+ demoCodePlugin(presets.loose)
185
+
186
+ // TypeScript 项目
187
+ demoCodePlugin(presets.typescript)
188
+ ```
189
+
190
+ 详细文档请查看 [Vite 插件文档](./playground/VITE_PLUGIN_README.md)
191
+
192
+ ---
193
+
194
+ ## 📚 配置文档
70
195
 
71
196
  ### 配置选项
72
197
 
@@ -0,0 +1,88 @@
1
+ import { Plugin } from "vite";
2
+
3
+ //#region src/plugin/core.d.ts
4
+
5
+ interface DemoCodePluginOptions {
6
+ /**
7
+ * 需要处理的文件路径模式(支持正则或字符串)
8
+ * @default 'index.js'
9
+ */
10
+ include?: string | RegExp;
11
+ /**
12
+ * Demo 文件路径匹配模式
13
+ * @default '/demo/'
14
+ */
15
+ demoPattern?: string;
16
+ /**
17
+ * 全局变量名
18
+ * @default 'window.__DOC_SDK_DEMO_CODES__'
19
+ */
20
+ globalVar?: string;
21
+ /**
22
+ * 自定义导入语句匹配正则
23
+ */
24
+ importRegex?: RegExp;
25
+ /**
26
+ * 自定义变量名解析函数
27
+ * 从导入变量名解析出组件名和 demo 名
28
+ * @example buttonBasic -> { component: 'button', demo: 'basic' }
29
+ */
30
+ parseVarName?: (varName: string) => {
31
+ component: string;
32
+ demo: string;
33
+ } | null;
34
+ /**
35
+ * 自定义代码转换函数
36
+ * 可以对读取的源码进行处理
37
+ */
38
+ transform?: (code: string, filePath: string, varName: string) => string;
39
+ /**
40
+ * 是否开启调试模式
41
+ * @default false
42
+ */
43
+ debug?: boolean;
44
+ /**
45
+ * 支持的文件扩展名
46
+ * @default ['.js', '.jsx', '.ts', '.tsx']
47
+ */
48
+ extensions?: string[];
49
+ /**
50
+ * 文件编码
51
+ * @default 'utf-8'
52
+ */
53
+ encoding?: BufferEncoding;
54
+ /**
55
+ * 注入位置标记
56
+ * 插件会在此标记之前注入代码
57
+ * @default 'window.__DOC_SDK_DEMOS__'
58
+ */
59
+ injectBefore?: string;
60
+ }
61
+ /**
62
+ * 创建 Vite 插件
63
+ */
64
+ declare function createDemoCodePlugin(options?: DemoCodePluginOptions): Plugin;
65
+ /**
66
+ * 预设配置
67
+ */
68
+ declare const presets: {
69
+ /**
70
+ * 默认配置(适用于 doc-render-sdk)
71
+ */
72
+ default: DemoCodePluginOptions;
73
+ /**
74
+ * 严格模式:更严格的命名检查
75
+ */
76
+ strict: DemoCodePluginOptions;
77
+ /**
78
+ * 宽松模式:支持更灵活的命名
79
+ */
80
+ loose: DemoCodePluginOptions;
81
+ /**
82
+ * TypeScript 项目配置
83
+ */
84
+ typescript: DemoCodePluginOptions;
85
+ };
86
+ //#endregion
87
+ export { DemoCodePluginOptions, createDemoCodePlugin, presets };
88
+ //# sourceMappingURL=index-C3VNauf3.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-C3VNauf3.d.mts","names":[],"sources":["../../src/plugin/core.ts"],"sourcesContent":[],"mappings":";;;;AAQsC,UAArB,qBAAA,CAAqB;EAAA;;;AAqDX;EAiDX,OAAA,CAAA,EAAA,MAAA,GAjGK,MAiGe;EAAA;;;AAA6C;EAqOpE,WAiDZ,CAAA,EAAA,MAAA;EAAA;;;;EAT2B,SAQrB,CAAA,EAAA,MAAA;EAAqB;;;gBArWZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA+BH;;;;;;;;;;;iBAiDG,oBAAA,WAA8B,wBAA6B;;;;cAqO9D;;;;WAII;;;;UAeV;;;;SAqBA;;;;cAQA"}
@@ -0,0 +1,228 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+
4
+ //#region src/plugin/core.ts
5
+ /**
6
+ * 默认变量名解析函数
7
+ * 解析 camelCase 格式:buttonBasic -> { component: 'button', demo: 'basic' }
8
+ */
9
+ const defaultParseVarName = (varName) => {
10
+ const match = varName.match(/^([a-z]+)([A-Z][a-zA-Z]*)$/);
11
+ if (match) {
12
+ const [, component, demo] = match;
13
+ const demoName = demo.charAt(0).toLowerCase() + demo.slice(1);
14
+ return {
15
+ component,
16
+ demo: demoName
17
+ };
18
+ }
19
+ return null;
20
+ };
21
+ /**
22
+ * 默认代码转换函数
23
+ */
24
+ const defaultTransform = (code) => code;
25
+ /**
26
+ * 创建 Vite 插件
27
+ */
28
+ function createDemoCodePlugin(options = {}) {
29
+ const config = {
30
+ include: options.include ?? "index.js",
31
+ demoPattern: options.demoPattern ?? "/demo/",
32
+ globalVar: options.globalVar ?? "window.__DOC_SDK_DEMO_CODES__",
33
+ importRegex: options.importRegex ?? /import\s+(\w+)\s+from\s+['"](.+?\/demo\/.+?\.(jsx?|tsx?))['"]/g,
34
+ parseVarName: options.parseVarName ?? defaultParseVarName,
35
+ transform: options.transform ?? defaultTransform,
36
+ debug: options.debug ?? false,
37
+ extensions: options.extensions ?? [
38
+ ".js",
39
+ ".jsx",
40
+ ".ts",
41
+ ".tsx"
42
+ ],
43
+ encoding: options.encoding ?? "utf-8",
44
+ injectBefore: options.injectBefore ?? "window.__DOC_SDK_DEMOS__"
45
+ };
46
+ const log = (...args) => {
47
+ if (config.debug) console.log("[doc-render-sdk:plugin]", ...args);
48
+ };
49
+ const warn = (...args) => {
50
+ console.warn("[doc-render-sdk:plugin]", ...args);
51
+ };
52
+ /**
53
+ * 检查是否需要处理此文件
54
+ */
55
+ const shouldProcess = (id) => {
56
+ if (typeof config.include === "string") return id.includes(config.include);
57
+ if (config.include instanceof RegExp) return config.include.test(id);
58
+ return id.includes("index.js");
59
+ };
60
+ /**
61
+ * 查找所有 demo 导入
62
+ */
63
+ const findDemoImports = (code) => {
64
+ const demoImports = [];
65
+ const importRegex = new RegExp(config.importRegex.source, config.importRegex.flags);
66
+ let match;
67
+ while ((match = importRegex.exec(code)) !== null) {
68
+ const [fullMatch, varName, importPath] = match;
69
+ if (importPath.includes(config.demoPattern)) {
70
+ demoImports.push({
71
+ varName,
72
+ importPath,
73
+ fullMatch
74
+ });
75
+ log("Found demo import:", {
76
+ varName,
77
+ importPath
78
+ });
79
+ }
80
+ }
81
+ return demoImports;
82
+ };
83
+ /**
84
+ * 读取 demo 源码
85
+ */
86
+ const readDemoCode = (id, demoImports) => {
87
+ const demoCodes = {};
88
+ let successCount = 0;
89
+ let failCount = 0;
90
+ for (const { varName, importPath } of demoImports) try {
91
+ const fullPath = path.resolve(path.dirname(id), importPath);
92
+ if (!fs.existsSync(fullPath)) {
93
+ warn(`File not found: ${fullPath}`);
94
+ failCount++;
95
+ continue;
96
+ }
97
+ let sourceCode = fs.readFileSync(fullPath, config.encoding);
98
+ sourceCode = config.transform(sourceCode, fullPath, varName);
99
+ const parsed = config.parseVarName(varName);
100
+ if (!parsed) {
101
+ warn(`Failed to parse variable name: ${varName}`);
102
+ warn(`Expected format: {componentName}{DemoName}, e.g., buttonBasic, inputValidation`);
103
+ failCount++;
104
+ continue;
105
+ }
106
+ const { component, demo } = parsed;
107
+ if (!demoCodes[component]) demoCodes[component] = {};
108
+ demoCodes[component][demo] = sourceCode;
109
+ log(`✓ Loaded: ${component}/${demo}`);
110
+ successCount++;
111
+ } catch (error) {
112
+ warn(`Failed to read demo source: ${importPath}`, error.message);
113
+ failCount++;
114
+ }
115
+ return {
116
+ demoCodes,
117
+ successCount,
118
+ failCount
119
+ };
120
+ };
121
+ /**
122
+ * 生成注入代码
123
+ */
124
+ const generateInjectionCode = (demoCodes) => {
125
+ return `
126
+ // Auto-generated by doc-render-sdk/plugin
127
+ // Do not edit manually - this will be regenerated on each build
128
+ ${config.globalVar} = ${JSON.stringify(demoCodes, null, 2)};
129
+ `;
130
+ };
131
+ /**
132
+ * 注入代码到源文件
133
+ */
134
+ const injectCode = (code, injectionCode) => {
135
+ if (code.includes(config.injectBefore)) {
136
+ log(`Injected before ${config.injectBefore}`);
137
+ return code.replace(new RegExp(config.injectBefore.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")), injectionCode + "\n" + config.injectBefore);
138
+ } else {
139
+ log("Injected at the beginning of file");
140
+ return injectionCode + "\n" + code;
141
+ }
142
+ };
143
+ return {
144
+ name: "doc-render-sdk:demo-code",
145
+ enforce: "pre",
146
+ configResolved() {
147
+ log("Plugin initialized with config:", {
148
+ include: config.include,
149
+ demoPattern: config.demoPattern,
150
+ globalVar: config.globalVar,
151
+ extensions: config.extensions,
152
+ debug: config.debug
153
+ });
154
+ },
155
+ configureServer(server) {
156
+ log("Development server started");
157
+ server.watcher.on("change", (file) => {
158
+ if (file.includes(config.demoPattern)) {
159
+ log("Demo file changed:", file);
160
+ server.ws.send({
161
+ type: "full-reload",
162
+ path: "*"
163
+ });
164
+ }
165
+ });
166
+ },
167
+ transform(code, id) {
168
+ if (!shouldProcess(id)) return null;
169
+ log("Processing file:", id);
170
+ const demoImports = findDemoImports(code);
171
+ if (demoImports.length === 0) {
172
+ log("No demo imports found");
173
+ return null;
174
+ }
175
+ const { demoCodes, successCount, failCount } = readDemoCode(id, demoImports);
176
+ if (successCount === 0) {
177
+ warn("No demo codes were loaded successfully");
178
+ return null;
179
+ }
180
+ log(`Summary: ${successCount} succeeded, ${failCount} failed`);
181
+ const injectionCode = generateInjectionCode(demoCodes);
182
+ const injectedCode = injectCode(code, injectionCode);
183
+ return {
184
+ code: injectedCode,
185
+ map: null
186
+ };
187
+ }
188
+ };
189
+ }
190
+ /**
191
+ * 预设配置
192
+ */
193
+ const presets = {
194
+ default: {},
195
+ strict: { parseVarName: (varName) => {
196
+ const match = varName.match(/^([a-z][a-z0-9]*)([A-Z][a-zA-Z0-9]*)$/);
197
+ if (!match) throw new Error(`Invalid variable name: ${varName}. Must be in camelCase format.`);
198
+ const [, component, demo] = match;
199
+ const demoName = demo.charAt(0).toLowerCase() + demo.slice(1);
200
+ return {
201
+ component,
202
+ demo: demoName
203
+ };
204
+ } },
205
+ loose: { parseVarName: (varName) => {
206
+ if (varName.includes("_")) {
207
+ const parts = varName.split("_");
208
+ if (parts.length >= 2) return {
209
+ component: parts[0],
210
+ demo: parts.slice(1).join("_")
211
+ };
212
+ }
213
+ return defaultParseVarName(varName);
214
+ } },
215
+ typescript: {
216
+ importRegex: /import\s+(\w+)\s+from\s+['"](.+?\/demo\/.+?\.(tsx?|jsx?))['"]/g,
217
+ extensions: [
218
+ ".ts",
219
+ ".tsx",
220
+ ".js",
221
+ ".jsx"
222
+ ]
223
+ }
224
+ };
225
+
226
+ //#endregion
227
+ export { createDemoCodePlugin, presets };
228
+ //# sourceMappingURL=plugin-DCF0RLbi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-DCF0RLbi.mjs","names":["varName: string","code: string","options: DemoCodePluginOptions","config: Required<DemoCodePluginOptions>","id: string","demoImports: DemoImport[]","match: RegExpExecArray | null","demoCodes: DemoCodes","injectionCode: string"],"sources":["../../src/plugin/core.ts"],"sourcesContent":["/**\n * Vite 插件核心逻辑\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'vite';\n\nexport interface DemoCodePluginOptions {\n /**\n * 需要处理的文件路径模式(支持正则或字符串)\n * @default 'index.js'\n */\n include?: string | RegExp;\n\n /**\n * Demo 文件路径匹配模式\n * @default '/demo/'\n */\n demoPattern?: string;\n\n /**\n * 全局变量名\n * @default 'window.__DOC_SDK_DEMO_CODES__'\n */\n globalVar?: string;\n\n /**\n * 自定义导入语句匹配正则\n */\n importRegex?: RegExp;\n\n /**\n * 自定义变量名解析函数\n * 从导入变量名解析出组件名和 demo 名\n * @example buttonBasic -> { component: 'button', demo: 'basic' }\n */\n parseVarName?: (varName: string) => { component: string; demo: string } | null;\n\n /**\n * 自定义代码转换函数\n * 可以对读取的源码进行处理\n */\n transform?: (code: string, filePath: string, varName: string) => string;\n\n /**\n * 是否开启调试模式\n * @default false\n */\n debug?: boolean;\n\n /**\n * 支持的文件扩展名\n * @default ['.js', '.jsx', '.ts', '.tsx']\n */\n extensions?: string[];\n\n /**\n * 文件编码\n * @default 'utf-8'\n */\n encoding?: BufferEncoding;\n\n /**\n * 注入位置标记\n * 插件会在此标记之前注入代码\n * @default 'window.__DOC_SDK_DEMOS__'\n */\n injectBefore?: string;\n}\n\ninterface ParsedDemo {\n component: string;\n demo: string;\n}\n\ninterface DemoImport {\n varName: string;\n importPath: string;\n fullMatch: string;\n}\n\ninterface DemoCodes {\n [component: string]: {\n [demo: string]: string;\n };\n}\n\n/**\n * 默认变量名解析函数\n * 解析 camelCase 格式:buttonBasic -> { component: 'button', demo: 'basic' }\n */\nconst defaultParseVarName = (varName: string): ParsedDemo | null => {\n const match = varName.match(/^([a-z]+)([A-Z][a-zA-Z]*)$/);\n if (match) {\n const [, component, demo] = match;\n const demoName = demo.charAt(0).toLowerCase() + demo.slice(1);\n return { component, demo: demoName };\n }\n return null;\n};\n\n/**\n * 默认代码转换函数\n */\nconst defaultTransform = (code: string): string => code;\n\n/**\n * 创建 Vite 插件\n */\nexport function createDemoCodePlugin(options: DemoCodePluginOptions = {}): Plugin {\n // 默认配置\n const config: Required<DemoCodePluginOptions> = {\n include: options.include ?? 'index.js',\n demoPattern: options.demoPattern ?? '/demo/',\n globalVar: options.globalVar ?? 'window.__DOC_SDK_DEMO_CODES__',\n importRegex: options.importRegex ?? /import\\s+(\\w+)\\s+from\\s+['\"](.+?\\/demo\\/.+?\\.(jsx?|tsx?))['\"]/g,\n parseVarName: options.parseVarName ?? defaultParseVarName,\n transform: options.transform ?? defaultTransform,\n debug: options.debug ?? false,\n extensions: options.extensions ?? ['.js', '.jsx', '.ts', '.tsx'],\n encoding: options.encoding ?? 'utf-8',\n injectBefore: options.injectBefore ?? 'window.__DOC_SDK_DEMOS__',\n };\n\n // 日志函数\n const log = (...args: any[]) => {\n if (config.debug) {\n console.log('[doc-render-sdk:plugin]', ...args);\n }\n };\n\n const warn = (...args: any[]) => {\n console.warn('[doc-render-sdk:plugin]', ...args);\n };\n\n /**\n * 检查是否需要处理此文件\n */\n const shouldProcess = (id: string): boolean => {\n if (typeof config.include === 'string') {\n return id.includes(config.include);\n }\n if (config.include instanceof RegExp) {\n return config.include.test(id);\n }\n return id.includes('index.js');\n };\n\n /**\n * 查找所有 demo 导入\n */\n const findDemoImports = (code: string): DemoImport[] => {\n const demoImports: DemoImport[] = [];\n const importRegex = new RegExp(config.importRegex.source, config.importRegex.flags);\n let match: RegExpExecArray | null;\n\n while ((match = importRegex.exec(code)) !== null) {\n const [fullMatch, varName, importPath] = match;\n \n if (importPath.includes(config.demoPattern)) {\n demoImports.push({ varName, importPath, fullMatch });\n log('Found demo import:', { varName, importPath });\n }\n }\n\n return demoImports;\n };\n\n /**\n * 读取 demo 源码\n */\n const readDemoCode = (\n id: string,\n demoImports: DemoImport[]\n ): { demoCodes: DemoCodes; successCount: number; failCount: number } => {\n const demoCodes: DemoCodes = {};\n let successCount = 0;\n let failCount = 0;\n\n for (const { varName, importPath } of demoImports) {\n try {\n // 解析相对路径\n const fullPath = path.resolve(path.dirname(id), importPath);\n \n // 检查文件是否存在\n if (!fs.existsSync(fullPath)) {\n warn(`File not found: ${fullPath}`);\n failCount++;\n continue;\n }\n\n // 读取源码\n let sourceCode = fs.readFileSync(fullPath, config.encoding);\n \n // 应用自定义转换\n sourceCode = config.transform(sourceCode, fullPath, varName);\n \n // 解析变量名\n const parsed = config.parseVarName(varName);\n \n if (!parsed) {\n warn(`Failed to parse variable name: ${varName}`);\n warn(`Expected format: {componentName}{DemoName}, e.g., buttonBasic, inputValidation`);\n failCount++;\n continue;\n }\n\n const { component, demo } = parsed;\n \n // 存储代码\n if (!demoCodes[component]) {\n demoCodes[component] = {};\n }\n demoCodes[component][demo] = sourceCode;\n \n log(`✓ Loaded: ${component}/${demo}`);\n successCount++;\n \n } catch (error) {\n warn(`Failed to read demo source: ${importPath}`, (error as Error).message);\n failCount++;\n }\n }\n\n return { demoCodes, successCount, failCount };\n };\n\n /**\n * 生成注入代码\n */\n const generateInjectionCode = (demoCodes: DemoCodes): string => {\n return `\n// Auto-generated by doc-render-sdk/plugin\n// Do not edit manually - this will be regenerated on each build\n${config.globalVar} = ${JSON.stringify(demoCodes, null, 2)};\n`;\n };\n\n /**\n * 注入代码到源文件\n */\n const injectCode = (code: string, injectionCode: string): string => {\n if (code.includes(config.injectBefore)) {\n log(`Injected before ${config.injectBefore}`);\n return code.replace(\n new RegExp(config.injectBefore.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')),\n injectionCode + '\\n' + config.injectBefore\n );\n } else {\n log('Injected at the beginning of file');\n return injectionCode + '\\n' + code;\n }\n };\n\n return {\n name: 'doc-render-sdk:demo-code',\n \n enforce: 'pre',\n\n /**\n * 配置解析完成后的钩子\n */\n configResolved() {\n log('Plugin initialized with config:', {\n include: config.include,\n demoPattern: config.demoPattern,\n globalVar: config.globalVar,\n extensions: config.extensions,\n debug: config.debug,\n });\n },\n\n /**\n * 开发服务器启动时的钩子\n */\n configureServer(server) {\n log('Development server started');\n \n // 监听 demo 文件变化,触发热更新\n server.watcher.on('change', (file) => {\n if (file.includes(config.demoPattern)) {\n log('Demo file changed:', file);\n // 触发完整重载以更新代码\n server.ws.send({\n type: 'full-reload',\n path: '*',\n });\n }\n });\n },\n\n /**\n * 转换代码\n */\n transform(code: string, id: string) {\n // 检查是否需要处理此文件\n if (!shouldProcess(id)) {\n return null;\n }\n\n log('Processing file:', id);\n\n // 查找所有 demo 导入\n const demoImports = findDemoImports(code);\n\n if (demoImports.length === 0) {\n log('No demo imports found');\n return null;\n }\n\n // 读取 demo 源码\n const { demoCodes, successCount, failCount } = readDemoCode(id, demoImports);\n\n // 如果没有成功读取任何文件,返回 null\n if (successCount === 0) {\n warn('No demo codes were loaded successfully');\n return null;\n }\n\n log(`Summary: ${successCount} succeeded, ${failCount} failed`);\n\n // 生成注入代码\n const injectionCode = generateInjectionCode(demoCodes);\n\n // 注入代码\n const injectedCode = injectCode(code, injectionCode);\n\n return {\n code: injectedCode,\n map: null,\n };\n },\n };\n}\n\n/**\n * 预设配置\n */\nexport const presets = {\n /**\n * 默认配置(适用于 doc-render-sdk)\n */\n default: {} as DemoCodePluginOptions,\n\n /**\n * 严格模式:更严格的命名检查\n */\n strict: {\n parseVarName: (varName: string) => {\n const match = varName.match(/^([a-z][a-z0-9]*)([A-Z][a-zA-Z0-9]*)$/);\n if (!match) {\n throw new Error(`Invalid variable name: ${varName}. Must be in camelCase format.`);\n }\n const [, component, demo] = match;\n const demoName = demo.charAt(0).toLowerCase() + demo.slice(1);\n return { component, demo: demoName };\n },\n } as DemoCodePluginOptions,\n\n /**\n * 宽松模式:支持更灵活的命名\n */\n loose: {\n parseVarName: (varName: string) => {\n // 支持下划线分隔\n if (varName.includes('_')) {\n const parts = varName.split('_');\n if (parts.length >= 2) {\n return {\n component: parts[0],\n demo: parts.slice(1).join('_'),\n };\n }\n }\n \n // 回退到默认解析\n return defaultParseVarName(varName);\n },\n } as DemoCodePluginOptions,\n\n /**\n * TypeScript 项目配置\n */\n typescript: {\n importRegex: /import\\s+(\\w+)\\s+from\\s+['\"](.+?\\/demo\\/.+?\\.(tsx?|jsx?))['\"]/g,\n extensions: ['.ts', '.tsx', '.js', '.jsx'],\n } as DemoCodePluginOptions,\n};\n"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
+ import { DemoCodePluginOptions, createDemoCodePlugin, presets } from "./_chunks/index-C3VNauf3.mjs";
1
2
  import { ComponentType, ReactNode } from "react";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
4
 
4
5
  //#region src/core/PluginManager.d.ts
5
6
  /**
@@ -354,6 +355,7 @@ declare class DocRenderer {
354
355
  private componentRegistry;
355
356
  private targetElement;
356
357
  private isRendered;
358
+ private root;
357
359
  constructor({
358
360
  configManager,
359
361
  themeManager,
@@ -572,7 +574,7 @@ declare const Layout: ({
572
574
  routerManager: any;
573
575
  componentRegistry: any;
574
576
  onRouteChange: any;
575
- }) => react_jsx_runtime0.JSX.Element;
577
+ }) => react_jsx_runtime1.JSX.Element;
576
578
  //#endregion
577
579
  //#region src/components/Navigation.d.ts
578
580
  /**
@@ -592,7 +594,7 @@ declare const Navigation: ({
592
594
  componentRegistry: any;
593
595
  onNavigate: any;
594
596
  compact?: boolean | undefined;
595
- }) => react_jsx_runtime0.JSX.Element;
597
+ }) => react_jsx_runtime1.JSX.Element;
596
598
  //#endregion
597
599
  //#region src/components/Demo.d.ts
598
600
  /**
@@ -610,7 +612,7 @@ declare const Demo: ({
610
612
  config: any;
611
613
  theme: any;
612
614
  renderer: any;
613
- }) => react_jsx_runtime0.JSX.Element;
615
+ }) => react_jsx_runtime1.JSX.Element;
614
616
  //#endregion
615
617
  //#region src/components/ApiDoc.d.ts
616
618
  /**
@@ -626,7 +628,7 @@ declare const ApiDoc: ({
626
628
  componentId: any;
627
629
  config: any;
628
630
  theme: any;
629
- }) => react_jsx_runtime0.JSX.Element;
631
+ }) => react_jsx_runtime1.JSX.Element;
630
632
  //#endregion
631
633
  //#region src/components/CodeBlock.d.ts
632
634
  /**
@@ -646,7 +648,7 @@ declare const CodeBlock: ({
646
648
  showLineNumbers?: boolean | undefined;
647
649
  highlightLines?: never[] | undefined;
648
650
  className?: string | undefined;
649
- }) => react_jsx_runtime0.JSX.Element;
651
+ }) => react_jsx_runtime1.JSX.Element;
650
652
  //#endregion
651
653
  //#region src/index.d.ts
652
654
  declare class DocSDK {
@@ -693,5 +695,5 @@ declare class DocSDK {
693
695
  emit(event: string, data?: any): void;
694
696
  }
695
697
  //#endregion
696
- export { ApiConfig, ApiDoc, ApiItem, CodeBlock, ComponentConfig, ComponentRegistry, ConfigManager, Demo, DemoConfig, DocConfig, DocRenderer, EventManager, Feature, FooterContent, FooterLink, GlobalApis, GlobalDemoCodes, GlobalDemos, HeaderAction, HeaderConfig, HomeContent, HookManager, Layout, LayoutConfig, Navigation, NavigationItem, Plugin, PluginContext, PluginManager, RendererOptions, RouterManager, SidebarConfig, Theme, ThemeColors, ThemeLayout, ThemeManager, ThemeSpacing, ThemeTypography, DocSDK as default };
698
+ export { ApiConfig, ApiDoc, ApiItem, CodeBlock, ComponentConfig, ComponentRegistry, ConfigManager, Demo, DemoCodePluginOptions, DemoConfig, DocConfig, DocRenderer, EventManager, Feature, FooterContent, FooterLink, GlobalApis, GlobalDemoCodes, GlobalDemos, HeaderAction, HeaderConfig, HomeContent, HookManager, Layout, LayoutConfig, Navigation, NavigationItem, Plugin, PluginContext, PluginManager, RendererOptions, RouterManager, SidebarConfig, Theme, ThemeColors, ThemeLayout, ThemeManager, ThemeSpacing, ThemeTypography, createDemoCodePlugin, DocSDK as default, presets };
697
699
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/PluginManager.ts","../src/types/index.ts","../src/core/DocRenderer.ts","../src/core/ConfigManager.ts","../src/core/ThemeManager.ts","../src/components/Layout.tsx","../src/components/Navigation.tsx","../src/components/Demo.tsx","../src/components/ApiDoc.tsx","../src/components/CodeBlock.tsx","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/PluginManager.ts","../src/types/index.ts","../src/core/DocRenderer.ts","../src/core/ConfigManager.ts","../src/core/ThemeManager.ts","../src/components/Layout.tsx","../src/components/Navigation.tsx","../src/components/Demo.tsx","../src/components/ApiDoc.tsx","../src/components/CodeBlock.tsx","../src/index.ts"],"sourcesContent":[],"mappings":"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"}