rotion 3.5.0 → 3.5.2
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.
|
@@ -12,6 +12,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
12
12
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
13
13
|
|
|
14
14
|
import mermaid from 'mermaid';
|
|
15
|
+
mermaid.startOnLoad = false;
|
|
15
16
|
import Prism from 'prismjs';
|
|
16
17
|
import 'prismjs/plugins/autoloader/prism-autoloader.js';
|
|
17
18
|
if (Prism.plugins.autoloader) {
|
|
@@ -34,16 +35,34 @@ const setPrismCss = () => {
|
|
|
34
35
|
};
|
|
35
36
|
const Code = ({ children, language = 'text' }) => {
|
|
36
37
|
const codeRef = useRef(null);
|
|
38
|
+
const sourceRef = useRef(null);
|
|
39
|
+
const mermaidIdRef = useRef(`mermaid-${Math.random().toString(36).slice(2, 11)}`);
|
|
40
|
+
const [mermaidSvg, setMermaidSvg] = useState(null);
|
|
37
41
|
const highlight = useCallback((language) => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
var _a;
|
|
43
|
+
if (language === 'mermaid') {
|
|
44
|
+
if (sourceRef.current === null) {
|
|
45
|
+
if (!codeRef.current)
|
|
46
|
+
return;
|
|
47
|
+
sourceRef.current = (_a = codeRef.current.textContent) !== null && _a !== void 0 ? _a : '';
|
|
42
48
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
mermaid.initialize({
|
|
50
|
+
theme: isDark() ? 'dark' : 'neutral',
|
|
51
|
+
securityLevel: 'strict',
|
|
52
|
+
});
|
|
53
|
+
try {
|
|
54
|
+
const { svg } = yield mermaid.render(mermaidIdRef.current, sourceRef.current);
|
|
55
|
+
setMermaidSvg(svg);
|
|
46
56
|
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
console.error('mermaid render failed:', e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (!codeRef.current)
|
|
63
|
+
return;
|
|
64
|
+
setPrismCss();
|
|
65
|
+
Prism.highlightElement(codeRef.current);
|
|
47
66
|
}
|
|
48
67
|
}), []);
|
|
49
68
|
const cl = language === 'mermaid' ? 'mermaid' : `language-${language.toLowerCase()}`;
|
|
@@ -51,9 +70,12 @@ const Code = ({ children, language = 'text' }) => {
|
|
|
51
70
|
const showLang = () => setShow(true);
|
|
52
71
|
const hideLang = () => setShow(false);
|
|
53
72
|
useEffect(() => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
73
|
+
if (language === 'mermaid' && mermaidSvg !== null)
|
|
74
|
+
return;
|
|
75
|
+
highlight(language).catch((e) => console.error(e));
|
|
76
|
+
}, [language, highlight, mermaidSvg]);
|
|
77
|
+
const showMermaid = language === 'mermaid' && mermaidSvg;
|
|
78
|
+
return (_jsxs("div", { className: "rotion-code-area", onMouseOver: showLang, onMouseOut: hideLang, onFocus: showLang, onBlur: hideLang, children: [show && _jsx("div", { className: "rotion-code-lang", children: language }), showMermaid ? (_jsx("pre", { className: cl, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: mermaidSvg } }, "mermaid-rendered")) : (_jsx("pre", { className: cl, suppressHydrationWarning: true, children: _jsx("code", { ref: codeRef, suppressHydrationWarning: true, children: children }) }, "mermaid-source"))] }));
|
|
57
79
|
};
|
|
58
80
|
export default Code;
|
|
59
81
|
//# sourceMappingURL=Code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Code.js","sourceRoot":"","sources":["../../../../../../../../src/ui/components/Page/CodeBlock/Code/Code.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;AAEZ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhE,OAAO,YAAY,CAAA;AACnB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,gDAAgD,CAAA;AACvD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAC7B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,GAAG,8CAA8C,CAAA;AAC1F,CAAC;AAED,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAA;AAE9E,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,MAAM,EAAE,GAAG,aAAa,CAAA;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IAC/C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,2CAA2C,MAAM,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAA;IAChH,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACrD,OAAO,CAAC,GAAG,GAAG,YAAY,CAAA;QAC1B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;QACf,OAAO,CAAC,IAAI,GAAG,2CAA2C,MAAM,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAA;QACjH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAa,EAAE,EAAE;IAC1D,MAAM,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"Code.js","sourceRoot":"","sources":["../../../../../../../../src/ui/components/Page/CodeBlock/Code/Code.tsx"],"names":[],"mappings":"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"}
|