make-md 插件教程
make.md 插件使用指南
make.md 是 Obsidian 中增强 Markdown 编辑体验的插件,提供标签面板、属性管理、目录生成和双向链接可视化等功能。
插件特点
| 特性 | 说明 |
|---|---|
| 🏷️ 标签面板 | 可视化标签管理,支持批量编辑 |
| 📋 属性管理 | 增强的 YAML 属性编辑体验 |
| 📑 目录生成 | 一键生成笔记目录 |
| 🔗 链接可视化 | 双向链接图形化展示 |
| 🎨 自定义块 | 支持 callout、mermaid 等自定义块 |
安装插件
- 打开「设置」→「第三方插件」→ 关闭「安全模式」
- 点击「浏览」→ 搜索「make.md」→ 安装并启用
标签面板
打开命令 make.md: Toggle Tag Panel 或使用快捷键 Ctrl + T:
- 添加标签:点击「+」输入标签名
- 删除标签:点击标签右侧「×」
- 跳转到标签:点击标签跳转到标签视图
- 批量编辑:多选标签后批量操作
markdown
# 标签格式示例
#项目/Alpha # 多级标签
#领域/学习/技术 # 三级分类
- [ ] 任务 A #工作 #紧急 # 列表中的标签属性管理
使用 make.md: Toggle Properties Panel 打开属性面板:
yaml
---
title: 我的笔记
created: 2026-06-09
tags: [学习, 技术]
aliases: ["笔记别名"]
cssclasses: [highlight]
---| 类型 | 格式 | 示例 |
|---|---|---|
| 字符串 | key: value | author: 张三 |
| 数组 | tags: [a, b] | tags: [工作, 学习] |
| 日期 | date: 2026-06-09 | date: 2026-06-09 |
| 布尔值 | pinned: true | pinned: true |
目录生成
- 将光标放在要插入目录的位置
- 执行
make.md: Insert Table of Contents - 自动生成当前笔记的目录
markdown
## 目录
- [[#一级标题]]
- [[#二级标题]]
- [[#三级标题]]链接可视化
使用 make.md: Toggle Backlinks Graph 打开反向链接图谱:
┌──────────────────────────────────┐
│ 📤 传出链接 │
│ ├─ [[日记/2026-06-01]] │
│ └─ [[项目/Alpha]] │
├──────────────────────────────────┤
│ 📥 传入链接 │
│ ├─ [[日记/2026-06-01]] ← 第 3 段 │
│ └─ [[日记/2026-06-03]] ← 第 1 段 │
└──────────────────────────────────┘块引用(使用 ^ 定义块 ID):
markdown
# 源笔记
重要内容 ^important-block
# 引用
![[源笔记#^important-block]]自定义块
Callout 块
markdown
> [!note] 提示
> 这是提示信息
> [!warning] 警告
> 这是警告内容Mermaid 图表
markdown
```mermaid
flowchart TD
A[开始] --> B{判断}
B -->|条件1| C[结果1]
B -->|条件2| D[结果2]
```使用场景
论文写作
markdown
---
title: 论文标题
author: 作者名
status: 进行中
tags: [学术, 研究]
---
# 论文标题
## 目录
<!-- 自动生成 -->
## 1. 引言
## 2. 相关工作
## 3. 方法
## 参考知识库管理
markdown
---
title: 知识卡片
tags: [概念, 计算机]
created: 2026-06-01
related: [[相关笔记1]], [[相关笔记2]]
---
# 概念名称
## 定义
## 示例
## 相关概念常见问题
Q: 目录不更新?
手动刷新:Ctrl + R 重新加载文件,或重新执行目录生成命令。
Q: 标签面板不显示?
确认笔记中存在标签(以 # 开头)。标签必须在笔记正文中,不能仅在 Frontmatter 中。
make.md 高级使用案例
本文介绍 make.md 的进阶功能,涵盖双向链接自动化、Dataview 联动、自定义样式和知识图谱构建。
自定义 Callout 样式
在插件设置中添加自定义 callout 类型:
json
{
"callouts": {
"insight": {
"color": "#4CAF50",
"icon": "lightbulb",
"title": "💡 洞察"
},
"action": {
"color": "#FF5722",
"icon": "rocket",
"title": "🚀 行动"
}
}
}markdown
> [!insight] 关键洞察
> 通过标签系统的层级结构,可以实现主题的渐进式细分。
> [!action] 下一步行动
> 1. 重构笔记标签体系
> 2. 清理重复标签双向链接自动化
Templater 自动建立链接
markdown
<%*
const topic = await tp.system.prompt("笔记主题:");
const related = await tp.system.prompt("相关笔记(逗号分隔):");
// 创建笔记并添加相关链接
await tp.file.create_new(
`# ${topic}\n\n## 定义\n\n## 示例\n\n## 相关\n`,
topic.replace(/\s+/g, '-')
);
if (related) {
const links = related.split(',').map(s => `[[${s.trim()}]]`).join('\n');
await tp.file.append(tp.file.filename(), `\n\n## 相关\n\n${links}`);
}
-%>孤立笔记检查
dataview
TABLE file.link AS 笔记, file.mtime AS 修改时间
FROM ""
WHERE file.mtime >= date(today) - dur(30 days)
WHERE length(file.inlinks) = 0
SORT file.mtime DESC无传入链接的笔记将被列出,便于补充关联。
Dataview 联动
知识库统计面板
dataview
TABLE
length(file.tags) AS 标签数,
length(file.outlinks) AS 链接数,
length(file.tasks) AS 任务数,
file.mtime AS 修改时间
FROM ""
WHERE file.mtime >= date(today) - dur(30 days)
SORT file.mtime DESC
LIMIT 20标签关联分析
dataview
TABLE
regexreplace(string(file.tags), "#", "") AS 标签,
length(file.outlinks) AS 链接数
FROM ""
WHERE length(file.tags) > 0
GROUP BY file.tags[0]
SORT length(file.outlinks) DESC块级操作进阶
块 ID 导航
markdown
# 源笔记
## 方法论 ^methodology-section
这是方法的详细描述...
# 引用笔记
![[源笔记#^methodology-section]]目录自动化
动态目录生成
markdown
<%*
const headings = app.metadataCache.getFileCache(
app.workspace.getActiveFile()
)?.headings || [];
const toc = headings.map(h => {
const indent = ' '.repeat(h.level - 1);
const anchor = h.heading.replace(/ /g, '-');
return `${indent}- [[#${anchor}]]`;
}).join('\n');
-%>
## 目录
<% toc %>
---
<!-- 笔记正文 -->知识图谱构建
链接质量评估
dataview
TABLE
file.link AS 笔记,
length(file.outlinks) AS 传出,
length(file.inlinks) AS 传入,
length(file.outlinks) + length(file.inlinks) AS 活跃度
FROM ""
WHERE length(file.outlinks) + length(file.inlinks) > 5
SORT 活跃度 DESC
LIMIT 10高活跃度笔记通常是笔记网络中的枢纽节点。
CSS 自定义
css
/* 自定义 callout 渐变背景 */
.callout[data-callout="insight"] {
--callout-color: 76, 175, 80;
background: linear-gradient(135deg, rgba(76,175,80,0.1), rgba(76,175,80,0.05));
border-left: 4px solid #4CAF50;
}
/* 标签面板美化 */
.tag-panel {
background: var(--background-secondary);
border-radius: 8px;
padding: 12px;
}常见问题
Q: 自定义 callout 不生效?
- 确认插件版本支持自定义 callout
- 检查设置中 JSON 格式是否正确
- 重启 Obsidian
Q: 目录生成遗漏标题?
确保标题使用标准 Markdown 语法(#、##),而非 HTML 标签。
Q: 块引用失效?
块 ID 必须在笔记内唯一。移动包含块 ID 的段落后需重新定义块 ID。