如何无需手动改写即可将现有Markdown语法适配到Docusaurus项目?
批量转换脚本实现
针对你提到的非标准Markdown语法,可通过Python脚本批量处理所有文件,无需手动修改。以下是适配需求的转换逻辑及脚本:
转换规则
- 标题转换:将
hN. 标题内容格式替换为标准Markdown标题#...# 标题内容(N对应#的数量,如h1→#,h3→###) - 移除{{toc}}:Docusaurus支持通过配置自动生成目录,直接删除该占位符
- 代码块转换:将
<pre><code class="lang">...</code></pre>结构替换为标准围栏代码块lang\n...\n - 保留内容行:示例中的
# ...类占位行默认保留,若为冗余注释可自行添加正则规则清理
批量转换脚本
import os import re def convert_markdown(file_path): with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # 转换标题格式 content = re.sub(r'^h(\d+)\. (.*)$', lambda m: '#'*int(m.group(1)) + ' ' + m.group(2), content, flags=re.MULTILINE) # 移除{{toc}}占位符 content = content.replace('{{toc}}', '') # 转换代码块结构 def replace_code_block(match): lang = match.group(1) code_content = match.group(2).strip() return f'``` {lang}\n{code_content}\n```' content = re.sub(r'<pre>\s*<code class="([^"]+)">\s*(.*?)\s*</code>\s*</pre>', replace_code_block, content, flags=re.DOTALL) return content def process_directory(dir_path): # 创建备份目录(自动跳过已存在的目录) backup_dir = os.path.join(dir_path, 'md_backup') os.makedirs(backup_dir, exist_ok=True) for filename in os.listdir(dir_path): if filename.endswith('.md'): file_path = os.path.join(dir_path, filename) # 备份原文件 with open(file_path, 'rb') as src, open(os.path.join(backup_dir, filename), 'wb') as dst: dst.write(src.read()) # 转换并覆盖原文件 converted_content = convert_markdown(file_path) with open(file_path, 'w', encoding='utf-8') as f: f.write(converted_content) print(f"已处理:{filename}") if __name__ == '__main__': # 替换为你的Markdown文件所在目录路径 target_dir = './docs' process_directory(target_dir)
使用说明
- 将脚本保存为
convert_docusaurus_md.py - 修改脚本中
target_dir为你的Markdown文件实际存放路径(如./docs) - 运行脚本:
python convert_docusaurus_md.py - 脚本会自动将原文件备份到
md_backup子目录,同时将原文件替换为转换后的标准Markdown格式
Docusaurus目录配置补充
原文件中的{{toc}}可通过Docusaurus内置功能替代:
- 单页面启用:在页面头部的front matter中添加
--- toc: true --- - 全局启用:在
docusaurus.config.js的docs配置中添加module.exports = { presets: [ [ '@docusaurus/preset-classic', { docs: { toc: { enable: true, }, }, }, ], ], };
内容的提问来源于stack exchange,提问作者Riccardo Ventura
相关产品推荐
相关产品推荐

