-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.jsx
34 lines (30 loc) · 1.08 KB
/
app.jsx
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
30
31
32
33
34
import App from "./source/components.jsx";
const main = async () => {
const config = await fetch("./source/config.json").then(x => x.json());
initSetup(config);
ReactDOM.render(<App config={config} />, document.body);
}
const initSetup = (config) => {
const renderer = {
codespan(code) {
const replaceDict = { "<": "<", ">": ">" };
code = code.replace(/(<)|(>)/g, x => replaceDict[x]);
return `<code class=language-${config.codeLanguage}>${prismHighlight(code, config.codeLanguage)}</code>`
},
code(code, lang) {
if (!lang) { lang = config.codeLanguage };
return `<pre class=language-${lang}><code class=language-${lang}>${prismHighlight(code, lang)}</code></pre>`
}
}
marked.use({ renderer, breaks: true })
}
const prismHighlight = (code, lang) => (Prism.languages[lang]
? (Prism.highlight(
code,
Prism.languages[lang],
lang))
: (Prism.highlight(
code,
Prism.languages[config.codeLanguage],
config.codeLanguage)))
main();