diff --git a/packages/build/src/scripts/generateDefaultTypes.js b/packages/build/src/scripts/generateDefaultTypes.js index 371c6547b..7388ba4b3 100644 --- a/packages/build/src/scripts/generateDefaultTypes.js +++ b/packages/build/src/scripts/generateDefaultTypes.js @@ -25,7 +25,7 @@ const defaultPackages = [ // '@lowdefy/blocks-color-selectors', '@lowdefy/blocks-echarts', '@lowdefy/blocks-loaders', - // '@lowdefy/blocks-markdown', + '@lowdefy/blocks-markdown', '@lowdefy/connection-axios-http', '@lowdefy/operators-change-case', // '@lowdefy/operators-diff', diff --git a/packages/plugins/blocks/blocks-markdown/package.json b/packages/plugins/blocks/blocks-markdown/package.json index 9f342068c..7b766a332 100644 --- a/packages/plugins/blocks/blocks-markdown/package.json +++ b/packages/plugins/blocks/blocks-markdown/package.json @@ -48,11 +48,13 @@ "dependencies": { "@lowdefy/block-utils": "4.0.0-alpha.5", "dompurify": "2.3.3", + "process": "0.11.10", "react": "18.0.0-alpha-327d5c484-20211106", "react-dom": "18.0.0-alpha-327d5c484-20211106", - "react-markdown": "5.0.3", - "react-syntax-highlighter": "15.4.4", - "remark-gfm": "1.0.0" + "react-markdown": "7.1.1", + "react-syntax-highlighter": "15.4.5", + "rehype-raw": "6.1.0", + "remark-gfm": "3.0.1" }, "devDependencies": { "@babel/preset-react": "7.16.0", diff --git a/packages/plugins/blocks/blocks-markdown/src/blocks/DangerousMarkdown/DangerousMarkdown.js b/packages/plugins/blocks/blocks-markdown/src/blocks/DangerousMarkdown/DangerousMarkdown.js index da337b624..97dc63939 100644 --- a/packages/plugins/blocks/blocks-markdown/src/blocks/DangerousMarkdown/DangerousMarkdown.js +++ b/packages/plugins/blocks/blocks-markdown/src/blocks/DangerousMarkdown/DangerousMarkdown.js @@ -20,6 +20,7 @@ import { blockDefaultProps } from '@lowdefy/block-utils'; import ReactMarkdown from 'react-markdown'; import gfm from 'remark-gfm'; +import rehypeRaw from 'rehype-raw'; class DangerousMarkdown extends React.Component { constructor(props) { @@ -34,12 +35,12 @@ class DangerousMarkdown extends React.Component {
- {DOMPurify.sanitize(this.props.properties.content, this.DOMPurifyOptions)} - + children={DOMPurify.sanitize(this.props.properties.content, this.DOMPurifyOptions)} + />
); } diff --git a/packages/plugins/blocks/blocks-markdown/src/blocks/Markdown/Markdown.js b/packages/plugins/blocks/blocks-markdown/src/blocks/Markdown/Markdown.js index c609341e3..a67013491 100644 --- a/packages/plugins/blocks/blocks-markdown/src/blocks/Markdown/Markdown.js +++ b/packages/plugins/blocks/blocks-markdown/src/blocks/Markdown/Markdown.js @@ -22,9 +22,12 @@ import gfm from 'remark-gfm'; const Markdown = ({ blockId, properties, methods }) => (
- - {properties.content} - +
); diff --git a/packages/plugins/blocks/blocks-markdown/src/blocks/MarkdownWithCode/MarkdownWithCode.js b/packages/plugins/blocks/blocks-markdown/src/blocks/MarkdownWithCode/MarkdownWithCode.js index a3c34d2c0..96ca723a2 100644 --- a/packages/plugins/blocks/blocks-markdown/src/blocks/MarkdownWithCode/MarkdownWithCode.js +++ b/packages/plugins/blocks/blocks-markdown/src/blocks/MarkdownWithCode/MarkdownWithCode.js @@ -20,38 +20,38 @@ import { blockDefaultProps } from '@lowdefy/block-utils'; import ReactMarkdown from 'react-markdown'; import gfm from 'remark-gfm'; -import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github'; -import javascript from 'react-syntax-highlighter/dist/cjs/languages/hljs/javascript'; -import typescript from 'react-syntax-highlighter/dist/cjs/languages/hljs/typescript'; -import python from 'react-syntax-highlighter/dist/cjs/languages/hljs/python'; -import java from 'react-syntax-highlighter/dist/cjs/languages/hljs/java'; -import xml from 'react-syntax-highlighter/dist/cjs/languages/hljs/xml'; -import json from 'react-syntax-highlighter/dist/cjs/languages/hljs/json'; -import yaml from 'react-syntax-highlighter/dist/cjs/languages/hljs/yaml'; -import markdown from 'react-syntax-highlighter/dist/cjs/languages/hljs/markdown'; -import handlebars from 'react-syntax-highlighter/dist/cjs/languages/hljs/handlebars'; +import github from 'react-syntax-highlighter/dist/esm/styles/hljs/github.js'; +import javascript from 'react-syntax-highlighter/dist/esm/languages/hljs/javascript.js'; +import typescript from 'react-syntax-highlighter/dist/esm/languages/hljs/typescript.js'; +import python from 'react-syntax-highlighter/dist/esm/languages/hljs/python.js'; +import java from 'react-syntax-highlighter/dist/esm/languages/hljs/java.js'; +import xml from 'react-syntax-highlighter/dist/esm/languages/hljs/xml.js'; +import json from 'react-syntax-highlighter/dist/esm/languages/hljs/json.js'; +import yaml from 'react-syntax-highlighter/dist/esm/languages/hljs/yaml.js'; +import markdown from 'react-syntax-highlighter/dist/esm/languages/hljs/markdown.js'; +import handlebars from 'react-syntax-highlighter/dist/esm/languages/hljs/handlebars.js'; -SyntaxHighlighter.registerLanguage('javascript', javascript); -SyntaxHighlighter.registerLanguage('js', javascript); -SyntaxHighlighter.registerLanguage('jsx', javascript); -SyntaxHighlighter.registerLanguage('typescript', typescript); -SyntaxHighlighter.registerLanguage('ts', typescript); -SyntaxHighlighter.registerLanguage('python', python); -SyntaxHighlighter.registerLanguage('py', python); -SyntaxHighlighter.registerLanguage('java', java); -SyntaxHighlighter.registerLanguage('xml', xml); -SyntaxHighlighter.registerLanguage('json', json); -SyntaxHighlighter.registerLanguage('yaml', yaml); -SyntaxHighlighter.registerLanguage('markdown', markdown); SyntaxHighlighter.registerLanguage('handlebars', handlebars); SyntaxHighlighter.registerLanguage('nunjucks', handlebars); SyntaxHighlighter.registerLanguage('html', handlebars); +SyntaxHighlighter.registerLanguage('java', java); +SyntaxHighlighter.registerLanguage('javascript', javascript); +SyntaxHighlighter.registerLanguage('js', javascript); +SyntaxHighlighter.registerLanguage('jsx', javascript); +SyntaxHighlighter.registerLanguage('json', json); +SyntaxHighlighter.registerLanguage('markdown', markdown); +SyntaxHighlighter.registerLanguage('python', python); +SyntaxHighlighter.registerLanguage('py', python); +SyntaxHighlighter.registerLanguage('typescript', typescript); +SyntaxHighlighter.registerLanguage('ts', typescript); +SyntaxHighlighter.registerLanguage('xml', xml); +SyntaxHighlighter.registerLanguage('yaml', yaml); const renderers = { - code: ({ language, value }) => ( + code: ({ language, children }) => ( - {value} + {children} ), }; @@ -59,12 +59,11 @@ const MarkdownWithCode = ({ blockId, properties, methods }) => (
- {properties.content} - + children={properties.content} + remarkPlugins={[gfm]} + components={renderers} + />
); diff --git a/packages/plugins/blocks/blocks-markdown/src/types.js b/packages/plugins/blocks/blocks-markdown/src/types.js index 9cbc3a1dc..f45f2e087 100644 --- a/packages/plugins/blocks/blocks-markdown/src/types.js +++ b/packages/plugins/blocks/blocks-markdown/src/types.js @@ -15,13 +15,13 @@ limitations under the License. */ -import * as blocks from './blocks.js'; +// import * as blocks from './blocks.js'; -const styles = {}; -Object.keys(blocks).forEach((block) => { - styles[block] = blocks[block].styles || []; -}); +// const styles = {}; +// Object.keys(blocks).forEach((block) => { +// styles[block] = blocks[block].styles || []; +// }); export default { - blocks: Object.keys(blocks), - styles: { default: ['style.less'], ...styles }, + blocks: ['Markdown', 'MarkdownWithCode', 'DangerousMarkdown'], + styles: { default: ['style.less'], Markdown: [], MarkdownWithCode: [], DangerousMarkdown: [] }, }; diff --git a/packages/server/next.config.js b/packages/server/next.config.js index 9387fd6b6..26785df7d 100644 --- a/packages/server/next.config.js +++ b/packages/server/next.config.js @@ -17,7 +17,7 @@ module.exports = withLess({ events: false, fs: false, path: false, - process: false, + process: require.resolve('process/browser'), util: false, }; } diff --git a/packages/server/package.json b/packages/server/package.json index 324a69d60..c3d6a06c3 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -41,12 +41,16 @@ "dependencies": { "@lowdefy/api": "4.0.0-alpha.5", "@lowdefy/block-utils": "4.0.0-alpha.5", + "@lowdefy/blocks-antd": "4.0.0-alpha.5", + "@lowdefy/blocks-basic": "4.0.0-alpha.5", + "@lowdefy/blocks-markdown": "4.0.0-alpha.5", "@lowdefy/engine": "4.0.0-alpha.5", "@lowdefy/helpers": "4.0.0-alpha.5", "@lowdefy/layout": "4.0.0-alpha.5", "@lowdefy/operators-js": "4.0.0-alpha.5", "next": "12.0.3", "next-auth": "4.0.0-beta.6", + "process": "0.11.10", "react": "18.0.0-alpha-327d5c484-20211106", "react-dom": "18.0.0-alpha-327d5c484-20211106", "react-icons": "4.3.1"