mirror of
https://github.com/actix/actix-website
synced 2025-06-29 16:24:58 +02:00
migrate to docusaurus (v2) (#266)
Co-authored-by: ibraheemdev <ibrah1440@gmail.com>
This commit is contained in:
27
src/components/code_block.js
Normal file
27
src/components/code_block.js
Normal file
@ -0,0 +1,27 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import RenderCodeBlock from '@theme/CodeBlock';
|
||||
|
||||
const CodeBlock = ({ example, file, section }) => {
|
||||
const [code, setCode] = useState("");
|
||||
|
||||
useEffect(() => {
|
||||
let isMounted = true;
|
||||
import(`!!raw-loader!@site/examples/${example}/src/${file || "main.rs"}`)
|
||||
.then(source => {
|
||||
source = source
|
||||
.default
|
||||
.match(new RegExp(`\/\/ <${section}>\n([\\s\\S]*)\/\/ <\/${section}>`))[1];
|
||||
if (isMounted) setCode(source)
|
||||
})
|
||||
.catch(err => console.log(err));
|
||||
return () => {
|
||||
isMounted = false;
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<RenderCodeBlock className="language-rust">{code}</RenderCodeBlock>
|
||||
)
|
||||
}
|
||||
|
||||
export default CodeBlock;
|
Reference in New Issue
Block a user