diff --git a/packages/website-build/src/compiler/compile-src-code-md.ts b/packages/website-build/src/compiler/compile-src-code-md.ts index 86f4833..d925c1c 100644 --- a/packages/website-build/src/compiler/compile-src-code-md.ts +++ b/packages/website-build/src/compiler/compile-src-code-md.ts @@ -9,6 +9,29 @@ import { parser } from '@mpxjs/vuese-parser' import { Render } from '@mpxjs/vuese-markdown-render' import { renderOptions } from '../common/options.js' +/** + * 将字符串的对象转为可读的markdown格式 + * @param str + * @returns + */ +export function convertObjectStringToMarkdownHtml(str) { + if (!str) return + return ( + '
' +
+    str
+      .split('\n')
+      .map((line, idx) => {
+        // 第一行和最后一行是{},将括号的前后空白字符去除,只保留属性的
+        if (!(idx !== 0 && idx !== str.split('\n').length - 1)) {
+          line = line.replace(/\s+/g, '').replace(//g, '>')
+        }
+        return line
+      }) // 防止HTML标签注入
+      .join('
') + + '
' + ) +} + /** * 解析 cube-ui src 文件夹下的组件,生成md文档 * @@ -44,6 +67,9 @@ const genSrcCodeMd = function (srcDir: string, component: string, fnMixins) { item.type = item.type.replace(/\n/g, '
') item.type = item.type.replace(new RegExp(optionalMark, 'g'), '?') }) + text.props?.forEach(item => { + item.default = convertObjectStringToMarkdownHtml(item.default) + }) const render = new Render(text, Object.assign({ name: component } as any, renderOptions))