rspress-plugin-mermaid 0.1.3-beta.0 → 0.1.4-beta.0

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/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import path from 'node:path';
2
- import { PresetConfigMutator, RemarkCodeBlockToGlobalComponentPluginFactory, getCompatComponentPath, } from 'rspress-plugin-devkit';
2
+ import { PresetConfigMutator, RemarkCodeBlockToGlobalComponentPluginFactory, } from 'rspress-plugin-devkit';
3
3
  export default function rspressPluginMermaid(options = {}) {
4
4
  const { mermaidConfig = {} } = options;
5
5
  const remarkMermaid = new RemarkCodeBlockToGlobalComponentPluginFactory({
6
6
  components: [
7
7
  {
8
8
  lang: 'mermaid',
9
- componentPath: path.join(__dirname, './components', getCompatComponentPath(__dirname, 'MermaidRender.tsx')),
9
+ componentPath: path.join(__dirname, '../components', 'MermaidRender.tsx'),
10
10
  childrenProvider() {
11
11
  return [];
12
12
  },
@@ -0,0 +1,5 @@
1
+ import type { MermaidConfig } from 'mermaid';
2
+ export interface MermaidRendererProps {
3
+ code: string;
4
+ config?: MermaidConfig;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rspress-plugin-mermaid",
3
- "version": "0.1.3-beta.0",
3
+ "version": "0.1.4-beta.0",
4
4
  "description": "Rspress plugin to render mermaid diagrams",
5
5
  "files": [
6
6
  "dist"
@@ -28,7 +28,7 @@
28
28
  "dependencies": {
29
29
  "@rspress/shared": "^1.17.1",
30
30
  "mermaid": "^10.9.0",
31
- "rspress-plugin-devkit": "^0.1.3-beta.0"
31
+ "rspress-plugin-devkit": "^0.1.3"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^20.12.5",
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { type MermaidConfig } from 'mermaid';
3
- export interface MermaidRendererProps {
4
- code: string;
5
- config?: MermaidConfig;
6
- }
7
- declare const MermaidRenderer: React.FC<MermaidRendererProps>;
8
- export default MermaidRenderer;
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useId, useState } from 'react';
3
- import mermaid from 'mermaid';
4
- const MermaidRenderer = (props) => {
5
- const { code, config = {} } = props;
6
- const id = useId();
7
- const [svg, setSvg] = useState('');
8
- const [renderError, setRenderError] = useState(false);
9
- async function renderMermaid2SVG() {
10
- // https://github.com/mermaid-js/mermaid/blob/1b40f552b20df4ab99a986dd58c9d254b3bfd7bc/packages/mermaid/src/docs/.vitepress/theme/Mermaid.vue#L53
11
- const hasDarkClass = document.documentElement.classList.contains('dark');
12
- const mermaidConfig = {
13
- securityLevel: 'loose',
14
- startOnLoad: false,
15
- theme: hasDarkClass ? 'dark' : 'default',
16
- ...config,
17
- };
18
- try {
19
- mermaid.initialize(mermaidConfig);
20
- const { svg } = await mermaid.render(id.replace(/:/g, ''), code);
21
- setSvg(svg);
22
- }
23
- catch (error) {
24
- setRenderError(true);
25
- }
26
- }
27
- useEffect(() => {
28
- renderMermaid2SVG();
29
- }, [code]);
30
- return (_jsx(_Fragment, { children: renderError ? null : _jsx("div", { dangerouslySetInnerHTML: { __html: svg } }) }));
31
- };
32
- export default MermaidRenderer;