import React, { memo, useCallback, useEffect, useState } from 'react'; import markdownit from 'markdown-it'; import markdownItAnchor from 'markdown-it-anchor'; import markdownItHighlight from 'markdown-it-highlightjs'; import styles from './style.less'; const Markdown: React.FC<{ path: string }> = ({ path }) => { const [content, setContent] = useState(''); const loadFile = useCallback(() => { fetch(path) .then(response => response.text()) .then(text => { // 移除文档开头 let content = text; content = content.split('\n').slice(4).join('\n'); // 移除链接,只保留文字部分 const regex = /\[([^\]]+)\]\([^)]+\)/g; const replacement = '$1'; content = content.replace(regex, replacement); setContent(content); }); }, []); const md = markdownit() .use(markdownItAnchor) .use(markdownItHighlight); useEffect(loadFile, []); return (
); }; export default memo(Markdown);