blob: e857245155a30c646672457d9faf19fe8ecbb6bb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/** @jsx jsx */
import { jsx } from "theme-ui";
import { render as renderCode } from "pseudocode";
let cache = {};
function Pseudocode({ code, options }) {
if (typeof window === `undefined`) {
return <div />;
}
let key = JSON.stringify({ code: code, options: options });
let rendered = null;
if (key in cache) {
rendered = cache[key];
} else {
rendered = renderCode(code, null, options);
cache[key] = rendered;
}
return (
<div
ref={ref => {
if (ref) ref.appendChild(rendered);
return ref;
}}
></div>
);
}
export default Pseudocode;
|