From d604a377ef09f27d909e295203b3119119dd2b91 Mon Sep 17 00:00:00 2001 From: Jandiasnow <88074479@qq.com> Date: Thu, 2 Nov 2023 15:04:47 +0800 Subject: [PATCH] feat: add DesignMarkdown --- .../demo/assets.json | 18 +++---- .../lowcode/markdown/meta.ts | 8 +++- .../lowcode/view.tsx | 23 ++++++++- .../package.json | 1 + .../src/index.tsx | 10 ++-- packages/shared/src/services/assets.json | 18 +++---- pnpm-lock.yaml | 48 +++++++++++++++++++ 7 files changed, 102 insertions(+), 24 deletions(-) diff --git a/packages/react-markdown-lowcode-materials/demo/assets.json b/packages/react-markdown-lowcode-materials/demo/assets.json index b45eafd..7055a01 100644 --- a/packages/react-markdown-lowcode-materials/demo/assets.json +++ b/packages/react-markdown-lowcode-materials/demo/assets.json @@ -57,19 +57,19 @@ { "id": "@tenx-ui/materials", "meta": { - "url": "http://172.22.96.37/@tenx-ui/materials@1.5.11/build/lowcode/meta.js", + "url": "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/meta.js", "exportName": "TenxUiMaterialsMeta" }, "urls": [ - "http://172.22.96.37/@tenx-ui/materials@1.5.11/dist/TenxUiMaterials.js", - "http://172.22.96.37/@tenx-ui/materials@1.5.11/dist/TenxUiMaterials.css" + "http://172.22.96.37/@tenx-ui/materials@latest/dist/TenxUiMaterials.js", + "http://172.22.96.37/@tenx-ui/materials@latest/dist/TenxUiMaterials.css" ], "library": "TenxUiMaterials", "package": "@tenx-ui/materials", - "version": "1.5.11", + "version": "latest", "editUrls": [ - "http://172.22.96.37/@tenx-ui/materials@1.5.11/build/lowcode/view.css", - "http://172.22.96.37/@tenx-ui/materials@1.5.11/build/lowcode/view.js" + "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/view.css", + "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/view.js" ] }, { @@ -95,11 +95,11 @@ ], "components": [ { - "url": "http://172.22.96.37/@tenx-ui/materials@1.5.11/build/lowcode/meta.js", - "version": "1.5.11", + "url": "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/meta.js", + "version": "latest", "reference": { "id": "@tenx-ui/materials", - "version": "1.5.11" + "version": "latest" }, "exportName": "TenxUiMaterialsMeta" }, diff --git a/packages/react-markdown-lowcode-materials/lowcode/markdown/meta.ts b/packages/react-markdown-lowcode-materials/lowcode/markdown/meta.ts index f764687..95b01f4 100644 --- a/packages/react-markdown-lowcode-materials/lowcode/markdown/meta.ts +++ b/packages/react-markdown-lowcode-materials/lowcode/markdown/meta.ts @@ -21,7 +21,9 @@ const MarkdownMeta: IPublicTypeComponentMetadata = { label: '内容', tip: 'children | 内容', }, - setter: ['TextAreaSetter'], + setter: { + componentName: 'TextAreaSetter', + }, }, { name: 'className', @@ -29,7 +31,9 @@ const MarkdownMeta: IPublicTypeComponentMetadata = { label: '类名', tip: 'className | 类名', }, - setter: ['StringSetter'], + setter: { + componentName: 'StringSetter', + }, }, { title: { diff --git a/packages/react-markdown-lowcode-materials/lowcode/view.tsx b/packages/react-markdown-lowcode-materials/lowcode/view.tsx index 4c15842..b323c16 100644 --- a/packages/react-markdown-lowcode-materials/lowcode/view.tsx +++ b/packages/react-markdown-lowcode-materials/lowcode/view.tsx @@ -1,4 +1,25 @@ +import React from 'react'; import Markdown from '../src'; // 不需要对设计态进行特殊处理的,直接导出即可 -export default Markdown; +const DesignMarkdown = props => { + const { children, ...otherProps } = props; + return ( +
+ ; + }, + ...(otherProps.components || {}), + }} + > + {(children || '').toString()} + +
+ ); +}; +export default DesignMarkdown; diff --git a/packages/react-markdown-lowcode-materials/package.json b/packages/react-markdown-lowcode-materials/package.json index e79b136..57b30cf 100644 --- a/packages/react-markdown-lowcode-materials/package.json +++ b/packages/react-markdown-lowcode-materials/package.json @@ -24,6 +24,7 @@ "@alilc/lowcode-types": "^1.2.1", "@babel/runtime": "^7.0.0", "react-markdown": "^9.0.0", + "rehype-highlight": "^7.0.0", "remark-gfm": "^4.0.0" }, "peerDependencies": { diff --git a/packages/react-markdown-lowcode-materials/src/index.tsx b/packages/react-markdown-lowcode-materials/src/index.tsx index 6c2024c..ceb92a8 100644 --- a/packages/react-markdown-lowcode-materials/src/index.tsx +++ b/packages/react-markdown-lowcode-materials/src/index.tsx @@ -1,11 +1,15 @@ import React from 'react'; import OriginalMarkdown, { Options } from 'react-markdown'; +import rehypeHighlight from 'rehype-highlight'; import remarkGfm from 'remark-gfm'; - const Markdown = (props: Options) => { - const { children, remarkPlugins, ...otherProps } = props; + const { children, rehypePlugins, remarkPlugins, ...otherProps } = props; return ( - + {(props.children || '').toString()} ); diff --git a/packages/shared/src/services/assets.json b/packages/shared/src/services/assets.json index 6946910..e85724d 100644 --- a/packages/shared/src/services/assets.json +++ b/packages/shared/src/services/assets.json @@ -57,19 +57,19 @@ { "id": "@tenx-ui/materials", "meta": { - "url": "http://172.22.96.37/@tenx-ui/materials@1.5.9/build/lowcode/meta.js", + "url": "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/meta.js", "exportName": "TenxUiMaterialsMeta" }, "urls": [ - "http://172.22.96.37/@tenx-ui/materials@1.5.9/dist/TenxUiMaterials.js", - "http://172.22.96.37/@tenx-ui/materials@1.5.9/dist/TenxUiMaterials.css" + "http://172.22.96.37/@tenx-ui/materials@latest/dist/TenxUiMaterials.js", + "http://172.22.96.37/@tenx-ui/materials@latest/dist/TenxUiMaterials.css" ], "library": "TenxUiMaterials", "package": "@tenx-ui/materials", - "version": "1.5.9", + "version": "latest", "editUrls": [ - "http://172.22.96.37/@tenx-ui/materials@1.5.9/build/lowcode/view.css", - "http://172.22.96.37/@tenx-ui/materials@1.5.9/build/lowcode/view.js" + "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/view.css", + "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/view.js" ] }, { @@ -102,11 +102,11 @@ ], "components": [ { - "url": "http://172.22.96.37/@tenx-ui/materials@1.5.9/build/lowcode/meta.js", - "version": "1.5.9", + "url": "http://172.22.96.37/@tenx-ui/materials@latest/build/lowcode/meta.js", + "version": "latest", "reference": { "id": "@tenx-ui/materials", - "version": "1.5.9" + "version": "latest" }, "exportName": "TenxUiMaterialsMeta" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0aa00cb..26813fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,6 +95,9 @@ importers: react-markdown: specifier: ^9.0.0 version: 9.0.0(@types/react@18.2.33)(react@17.0.2) + rehype-highlight: + specifier: ^7.0.0 + version: 7.0.0 remark-gfm: specifier: ^4.0.0 version: 4.0.0 @@ -10573,6 +10576,12 @@ packages: '@types/unist': 2.0.9 dev: true + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + dependencies: + '@types/hast': 3.0.2 + dev: false + /hast-util-parse-selector@3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} dependencies: @@ -10681,6 +10690,15 @@ packages: '@types/hast': 2.3.7 dev: true + /hast-util-to-text@4.0.0: + resolution: {integrity: sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==} + dependencies: + '@types/hast': 3.0.2 + '@types/unist': 3.0.1 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + dev: false + /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} dev: true @@ -10723,6 +10741,11 @@ packages: heti-findandreplacedomtext: 0.5.0 dev: true + /highlight.js@11.9.0: + resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} + engines: {node: '>=12.0.0'} + dev: false + /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: @@ -12451,6 +12474,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + /lowlight@3.1.0: + resolution: {integrity: sha512-CEbNVoSikAxwDMDPjXlqlFYiZLkDJHwyGu/MfOsJnF3d7f3tds5J3z8s/l9TMXhzfsJCCJEAsD78842mwmg0PQ==} + dependencies: + '@types/hast': 3.0.2 + devlop: 1.1.0 + highlight.js: 11.9.0 + dev: false + /lru-cache@4.1.5: resolution: {integrity: sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=} dependencies: @@ -17304,6 +17335,16 @@ packages: unist-util-visit: 4.1.2 dev: true + /rehype-highlight@7.0.0: + resolution: {integrity: sha512-QtobgRgYoQaK6p1eSr2SD1i61f7bjF2kZHAQHxeCHAuJf7ZUDMvQ7owDq9YTkmar5m5TSUol+2D3bp3KfJf/oA==} + dependencies: + '@types/hast': 3.0.2 + hast-util-to-text: 4.0.0 + lowlight: 3.1.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + dev: false + /rehype-remove-comments@5.0.0: resolution: {integrity: sha1-iLT6uhDyF9SraLNuuVizhmMNVnI=} dependencies: @@ -19423,6 +19464,13 @@ packages: unist-util-visit-parents: 5.1.3 dev: true + /unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + dependencies: + '@types/unist': 3.0.1 + unist-util-is: 6.0.0 + dev: false + /unist-util-find-all-after@3.0.2: resolution: {integrity: sha1-/f7NFMW3rqXp7zjV4NX3dO61YfY=} dependencies: