ui: fix prismjs loading
This commit is contained in:
parent
69ef083abe
commit
92a6379e2c
3 changed files with 23 additions and 30 deletions
|
|
@ -14,6 +14,15 @@
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet" />
|
||||||
|
|
||||||
|
<link rel="preload" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||||
|
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.css"></noscript>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/prismjs/prism.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/prismjs/components/prism-javascript.min.js"></script>
|
||||||
|
<script defer>
|
||||||
|
Prism.plugins.autoloader.languages_path = 'https://cdn.jsdelivr.net/npm/prismjs/components/';
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="modal-root"></div>
|
<div id="modal-root"></div>
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from 'react';
|
||||||
import Prism from "prismjs";
|
|
||||||
|
|
||||||
interface IProps {
|
export default function CodeBlock({ code }) {
|
||||||
code: string;
|
const language = 'javascript'
|
||||||
language: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const CodeBlock = ({ code, language }: IProps) => {
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
Prism.highlightAll(false);
|
setTimeout(() => {
|
||||||
}, []);
|
if (window.Prism) {
|
||||||
|
Prism.highlightAll();
|
||||||
|
}
|
||||||
|
}, 0)
|
||||||
|
}, [code, language]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<pre>
|
<pre>
|
||||||
<code children={code} className={`language-${language}`} />
|
<code className={`language-${language}`}>
|
||||||
|
{code}
|
||||||
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
);
|
);
|
||||||
};
|
}
|
||||||
|
|
||||||
export default CodeBlock;
|
|
||||||
|
|
|
||||||
|
|
@ -7,21 +7,5 @@ module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
'babel-plugin-react-require',
|
'babel-plugin-react-require',
|
||||||
['@babel/plugin-proposal-decorators', { legacy: true }],
|
['@babel/plugin-proposal-decorators', { legacy: true }],
|
||||||
[
|
|
||||||
'prismjs',
|
|
||||||
{
|
|
||||||
languages: [
|
|
||||||
'javascript',
|
|
||||||
'css',
|
|
||||||
'bash',
|
|
||||||
'typescript',
|
|
||||||
'jsx',
|
|
||||||
'kotlin',
|
|
||||||
'swift',
|
|
||||||
],
|
|
||||||
theme: 'default',
|
|
||||||
css: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue