Python 生成思维导图:用 Mermaid+Pymdownx 自动绘图
提示:在支持 Mermaid 的 Markdown 查看器(如 VS Code 预览模式)中可直接查看渲染结果,无需转换为 HTML。:结合数据库/API 实时生成导图。
·
Python 生成思维导图:Mermaid + Pymdownx 自动绘图指南
1. 核心组件说明
- Mermaid:基于文本的图表生成语言,支持思维导图语法
- Pymdownx:Python Markdown 扩展包,提供 Mermaid 集成
- 工作流:Python 生成 Mermaid 代码 → Markdown 渲染 → 输出图像
2. 环境配置
安装依赖:
pip install pymdown-extensions markdown
3. Python 生成 Mermaid 代码
创建思维导图数据结构并生成 Mermaid 代码:
def generate_mindmap(data):
"""自动生成 Mermaid 思维导图代码"""
def build_nodes(node, depth=0):
indent = ' ' * depth
if depth == 0:
yield f"{indent}root({node['name']})"
else:
yield f"{indent}{node['name']}"
for child in node.get('children', []):
yield from build_nodes(child, depth+1)
nodes = "\n".join(build_nodes(data))
return f"```mermaid\nmindmap\n{nodes}\n```"
# 示例数据结构
knowledge_map = {
'name': 'Python编程',
'children': [
{'name': '基础语法', 'children': [
{'name': '数据类型'},
{'name': '控制流程'}
]},
{'name': '高级特性', 'children': [
{'name': '装饰器'},
{'name': '生成器'}
]}
]
}
mermaid_code = generate_mindmap(knowledge_map)
print(mermaid_code)
4. Markdown 渲染配置
创建 config.yml 启用 Mermaid 支持:
markdown_extensions:
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
5. 完整工作流示例
from markdown import Markdown
# 生成 Mermaid 代码
mermaid_content = generate_mindmap(knowledge_map)
# 构建 Markdown 文档
md_content = f"""
# 知识图谱
{mermaid_content}
"""
# 配置渲染器
md = Markdown(extensions=['pymdownx.superfences'])
html_output = md.convert(md_content)
# 输出到文件
with open('knowledge_map.html', 'w') as f:
f.write(html_output)
6. 进阶技巧
-
动态更新:结合数据库/API 实时生成导图
import requests response = requests.get('https://api.example.com/knowledge') live_map = generate_mindmap(response.json()) -
样式定制:添加主题配置
%%{init: {'theme': 'forest'}}%% mindmap root((Python)) -
自动化输出:定期生成报告
from apscheduler.schedulers.blocking import BlockingScheduler def daily_report(): new_data = fetch_daily_data() generate_report(new_data) scheduler = BlockingScheduler() scheduler.add_job(daily_report, 'cron', hour=9)
7. 效果预览
执行后生成的 HTML 文件将显示交互式思维导图:
- 节点可折叠/展开
- 支持鼠标悬停查看详情
- 自动响应式布局
提示:在支持 Mermaid 的 Markdown 查看器(如 VS Code 预览模式)中可直接查看渲染结果,无需转换为 HTML。
更多推荐
所有评论(0)