MindMap/MARKDOWN_INTEGRATION.md

188 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Markdown 节点渲染集成说明
## 概述
这个集成方案为你的 Mind Elixir 思维导图项目添加了 markdown 节点渲染能力,支持:
-**表格渲染** - 完整的 markdown 表格支持
-**代码高亮** - 代码块和行内代码
-**文本格式** - 粗体、斜体、标题等
-**列表** - 有序和无序列表
-**链接** - 自动链接渲染
-**智能检测** - 自动识别 markdown 语法
## 文件结构
```
frontend/src/
├── utils/
│ └── markdownRenderer.js # 核心渲染器
├── components/
│ ├── MindMap.vue # 主思维导图组件(已集成)
│ └── MarkdownTest.vue # 测试组件
└── ...
```
## 使用方法
### 1. 在节点中使用 markdown
现在你可以在思维导图的节点内容中直接使用 markdown 语法:
```markdown
# 产品价格表
| 产品 | 价格 | 库存 |
|------|------|------|
| 苹果 | 4元 | 100个 |
| 香蕉 | 2元 | 50个 |
## 技术栈
- **前端**: Vue.js 3
- **后端**: Django
- **数据库**: PostgreSQL
## 代码示例
\`\`\`javascript
function hello() {
console.log('Hello World!');
}
\`\`\`
```
### 2. 测试功能
访问 `MarkdownTest.vue` 组件来测试 markdown 渲染功能:
```vue
<template>
<MarkdownTest />
</template>
<script setup>
import MarkdownTest from './components/MarkdownTest.vue';
</script>
```
### 3. 在现有节点中启用
系统会自动检测节点内容是否包含 markdown 语法,如果包含,会自动使用 markdown 渲染器。
## 核心功能
### 智能渲染
```javascript
import { smartRenderNodeContent } from '../utils/markdownRenderer.js';
// 自动检测并渲染
smartRenderNodeContent(nodeElement, content);
```
### 手动渲染
```javascript
import { renderMarkdownToHTML } from '../utils/markdownRenderer.js';
// 直接渲染为 HTML
const html = renderMarkdownToHTML(markdownContent);
```
### 语法检测
```javascript
import { hasMarkdownSyntax } from '../utils/markdownRenderer.js';
// 检测是否包含 markdown 语法
if (hasMarkdownSyntax(content)) {
// 使用 markdown 渲染
}
```
## 支持的 Markdown 语法
### 表格
```markdown
| 列1 | 列2 | 列3 |
|-----|-----|-----|
| 数据1 | 数据2 | 数据3 |
```
### 代码块
```markdown
\`\`\`javascript
function test() {
console.log('Hello');
}
\`\`\`
```
### 行内代码
```markdown
使用 \`console.log()\` 输出信息
```
### 文本格式
```markdown
**粗体文本**
*斜体文本*
```
### 列表
```markdown
- 无序列表项1
- 无序列表项2
1. 有序列表项1
2. 有序列表项2
```
### 链接
```markdown
[链接文本](https://example.com)
```
## 样式定制
渲染器会自动添加 CSS 样式,你也可以通过以下类名进行自定义:
- `.markdown-content` - 主容器
- `.markdown-table` - 表格样式
- `.markdown-code` - 代码块样式
- `.markdown-math` - 数学公式样式
## 注意事项
1. **性能**: 大量 markdown 内容可能影响渲染性能
2. **安全性**: 渲染器允许 HTML请确保内容来源可信
3. **兼容性**: 与 Mind Elixir 的拖拽、编辑功能完全兼容
## 故障排除
### 渲染失败
- 检查 markdown 语法是否正确
- 查看浏览器控制台错误信息
- 使用 `MarkdownTest.vue` 组件测试
### 样式问题
- 检查 CSS 样式是否被覆盖
- 确保 `markdown-node-styles` 样式已加载
### 性能问题
- 避免在单个节点中放置过多内容
- 考虑将复杂内容拆分为多个子节点
## 扩展功能
如果需要更多功能,可以扩展 `markdownRenderer.js`
- 数学公式支持KaTeX
- 图表支持Mermaid
- 更多 markdown 扩展语法
## 总结
这个集成方案让你可以在保持现有 Mind Elixir 功能的同时,享受强大的 markdown 渲染能力。特别是表格渲染功能,让思维导图可以展示更丰富的数据结构。