项目规划文档1
需求分析2
技术选型
### 过滤后的思维导图结构

## 高级自定义配置
对于有特殊需求的用户,插件支持深度自定义:
### 自定义过滤规则
```javascript
// 在用户自定义配置中添加
window.markmapConfig = {
footnoteFilters: [
{
pattern: /\[\^.*?\]/g,
replacement: ''
},
{
pattern: /^\[\^.*?\]:.*$/gm,
replacement: ''
}
],
// 回调函数,可在过滤前后执行自定义逻辑
beforeFilter: function(content) {
console.log('原始内容:', content);
return content;
},
afterFilter: function(content) {
console.log('过滤后内容:', content);
return content;
}
};
性能优化建议
| 内容长度 | 建议配置 | 处理时间 | 内存占用 |
|----------|----------|----------|----------|
| < 1000行 | 默认配置 | < 50ms | < 10MB |
| 1000-5000行 | 保守模式 | 50-200ms | 10-50MB |
| > 5000行 | 分批处理 | > 200ms | > 50MB |
常见问题解答
Q1: 过滤后如何查看完整的脚注内容?
A: 在Typora中正常编辑文档时,脚注内容完全可见。过滤仅影响思维导图显示,不影响原始文档内容。
Q2: 是否支持其他类型的注释过滤?
A: 是的,通过自定义正则表达式,可以过滤HTML注释、特定标记等内容。
Q3: 过滤会影响导出功能吗?
A: 不会。导出功能使用原始文档内容,思维导图过滤仅为显示优化。
Q4: 如何恢复默认的显示方式?
A: 在插件配置中将ENABLE_FOOTNOTE_FILTER设置为false即可。
最佳实践建议
- 写作时正常使用脚注:不要因为思维导图显示而改变写作习惯
- 定期检查过滤效果:确保重要信息没有被误过滤
- 利用配置预设:根据文档类型选择合适的过滤模式
- 备份重要文档:在进行大量修改前做好备份
技术实现细节
正则表达式优化
// 高效脚注匹配正则
const FOOTNOTE_REFERENCE = /\[\^([^\]]+)\]/g;
const FOOTNOTE_DEFINITION = /^\[\^([^\]]+)\]:\s*(.+)$/gm;
// 分步处理提高性能
function optimizeFootnoteFilter(content) {
// 第一步:快速扫描是否有脚注
if (!FOOTNOTE_REFERENCE.test(content)) {
return content;
}
// 第二步:详细处理
return content
.replace(FOOTNOTE_REFERENCE, '')
.replace(FOOTNOTE_DEFINITION, '');
}
内存管理策略
对于大型文档,采用流式处理避免内存溢出:
function streamFilterFootnotes(content) {
const lines = content.split('\n');
let inFootnoteBlock = false;
const result = [];
for (const line of lines) {
if (line.match(/^\[\^.*?\]:/)) {
inFootnoteBlock = true;
continue;
}
if (inFootnoteBlock && line.trim() === '') {
inFootnoteBlock = false;
}
if (!inFootnoteBlock) {
result.push(line.replace(/\[\^[^\]]+\]/g, ''));
}
}
return result.join('\n');
}
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



