MDRazor 是一款 Obsidian 插件,专注于提升 Markdown 编辑体验。 目前提供隐藏样式、列表增强、标签页增强、状态栏增强和清理失联图片五大功能模块,更多功能正在开发中。
功能按设置面板的五大区域组织,每项均可在设置面板中独立开关。
隐藏 Markdown 标记符号,光标移入时自动显示。更干净的实时预览,零干扰。
以下每种格式可独立开关:
- 隐藏加粗符号 — 隐藏
**加粗标记符号 - 隐藏斜体符号 — 隐藏
*斜体标记符号 - 隐藏高亮符号 — 隐藏
==高亮标记符号 - 隐藏删除线符号 — 隐藏
~~删除线标记符号 - 隐藏行内代码符号 — 隐藏
`行内代码标记符号 - 隐藏转义符号 — 隐藏
\转义符号 - 隐藏标题符号 — 隐藏
#标题标记符号(支持 H1-H6),#后无空格时不隐藏 - 隐藏双链符号 — 隐藏
[[和]]双链格式标记 - 隐藏 HTML 颜色标签 — 在实时预览中隐藏
<font color="#c00000">和</font>等 Hex 颜色标签对 - 隐藏 HTML 下划线符号 — 在实时预览中隐藏
<u>和</u>下划线 HTML 标签对 - 隐藏 HTML 行标签 — 在实时预览中隐藏
<span>和</span>HTML 标签对,涵盖带任意属性(如style="color:var(--color-yellow)"、style="color:#b58900"、style="background-color:rgba(...)"、style="text-decoration:underline")的开标签。围栏代码块、行内代码及数学公式内的<span>视为字面文本,自动跳过不隐藏
所有隐藏格式共享以下特性:
- 鼠标点击格式内容边界时,光标会自动落在标记符号之外,避免输入时误判格式。
- 由于格式符号被隐藏,可以根据光标经过时光标的闪烁判断光标途径的距离。
- 健壮性 — 兼容数学公式(
$..$)与格式标记(**..**等)共存的行内内容。即使 Obsidian 解析器在此类行上产生异常语法树,也不会导致编辑器崩溃,公式正文绝不会被误当作格式标记隐藏。
👁️ 空格可视化 — 以半透明 · 标记显示空格位置,一目了然看清缩进和对齐。基于 CM6 视图范围迭代,仅处理可视行,性能开销极低。半透明样式不干扰编辑。作为隐藏样式区域中的一项独立开关。
🔍 符号边界提示 — 光标处于格式标识符与文本内容边界时,在光标下方弹出小框,展示光标与隐藏标识符的位置关系(左/右两侧符号)。使用 CM6 showTooltip 系统,自动跟随光标位置、响应滚动和编辑器销毁生命周期。在隐藏样式设置区独立开关。
- 清理失联图片 — 在设置中启用后,左侧 ribbon 功能区出现垃圾桶图标按钮(trash-2)。点击后扫描库中所有 Markdown 笔记,提取三种图片引用语法(
![[path]]、、<img src>),找出未被任何笔记引用过的图片文件(jpg/jpeg/png/gif/svg),将其移入系统回收站。每处理一张图片时弹出 Notice 报告具体文件名。
列表编辑体验优化,提供以下独立开关:
-
列一体化 — 将列表标记(
-、1.、*)视为原子单元:光标定位跳过标记,退格键一次删除整个标记。编辑体验更接近所见即所得。 -
回车软换行 — 在列表项内按 Enter 仅插入换行、缩进及两个空格(等效原生
Shift+Enter行为),不新建列表项。需要新建列表项时,再按一次 Enter 即可,也就是连续回车新建列表项。适合多行列表项。 -
选项聚焦 — 光标移入列表项时,自动折叠所有非直属内容(兄弟、父兄弟等),仅展开焦点链(当前项、其祖先、及其子孙)。深度嵌套列表导航不再眼花缭乱。鼠标未弹起时不触发折叠,避免拖选过程中闪烁。
- 二级子项最大展开数 — 选项聚焦的子设置(滑块 1-9 + 开关)。开启后,一级项的第二级子项数量 ≤ 设定值时该一级项展开。仅影响一级项,其后代仍受选项聚焦影响。选项聚焦关闭时此设置自动禁用。
-
目录聚焦 — 点击文件列表中的文件夹名称时,仅展开该文件夹及其祖先链,同时折叠所有无关分支(同级、父同级、祖父同级等),专注当前目录结构。点击文件夹名称(非折叠箭头)触发,触发后再次点击同一个文件夹仅触发折叠状态的改变。折叠箭头可正常独立控制单层展开/折叠。
- 🖱️ 空白区域展开 — 与目录聚焦共用开关(目录聚焦开启时可用)。点击文件列表空白区域时,展开所有一级文件夹,快速浏览全局目录结构。点击排序/筛选等操作区域不会误触。
-
显示目录文件数量 — 在文件浏览器的每个文件夹标题右侧显示直接子项(子文件夹 + 文件)数量,不递归统计子文件夹内的内容。数量随文件创建/删除实时更新。基于 Obsidian vault 事件监听,创建或删除文件后 200ms 自动刷新。字体大小与文件夹名称一致。
文件标签页管理,提供以下独立开关:
-
默认新标签页打开 — 单击文件目录中的文件时,若标签页已存在则跳转到该标签页,否则打开新标签页。右键菜单新建文件时同样在新标签页中打开。避免重复标签页,文件导航更高效。Ctrl/Meta+ 点击时恢复 Obsidian 原生行为(在新标签页中打开)。
-
新标签页打开双链 — 在文档内点击双链(包括普通双链
[[page]]、别名双链[[page|alias]]、块引用双链[[page#^blockid]])时,自动检测目标文档是否已存在标签页:若已存在则跳转到该标签页并定位到对应块位置(块引用时),否则在新标签页中打开。Ctrl/Meta+ 点击时恢复 Obsidian 原生行为。 -
🗂️ 垂直标签页 — 在文件列表中为已打开的文件提供标签页管理。顶部添加切换按钮(
arrow-left-right图标),一键切换「仅标签页」视图,隐藏未打开的文件和空文件夹;已打开的文件标题右侧显示关闭按钮。支持「仅标签页」与「完整目录」两种视图切换。标签页视图下隐藏未打开的文件和空文件夹,专注当前工作文件。关闭按钮显示在标题右侧,一目了然。关闭当前激活标签页时自动聚焦上一个标签页,与原生标签栏行为一致。 -
目录展开关联标签页 — 开启后,从垂直标签页视图切换回文件列表时,仅展开包含已打开标签页的文件夹;关闭后,切换时恢复文件列表原来的展开结构。
状态栏增强功能,提供以下独立开关:
- 工作区切换 — 右下角状态栏显示工作区切换按钮:0-1 个工作区不显示、2 个工作区点击直接切换、3+ 个弹出浮层列表选切。切换后自动记录当前工作区名称。
- 自动更新工作区布局 — 切换或加载工作区时自动保存当前工作区布局,与 Obsidian 原生「加载工作区」功能及本插件工作区切换联动。
- 侧边栏伸缩按钮 — 状态栏最左侧显示按钮,点击一键折叠/展开左右侧边栏。
- 隐藏样式启闭按钮 — 状态栏最左侧显示「标识」按钮,一键开启/关闭所有格式隐藏样式(加粗、斜体、高亮、删除线、行内代码、转义符号、标题符号、双链符号、HTML 颜色标签、HTML 下划线符号、HTML 行标签),不影响空格可视化。按钮图标与设置面板中隐藏样式开关双向同步。命令面板命令
mdrazor-toggle-formatting可绑定快捷键。
在 Obsidian 设置 → 第三方插件 → MDRazor 中配置:
- 隐藏样式 — 13 个开关:加粗、斜体、高亮、删除线、行内代码、转义符号、标题符号、双链符号、HTML 颜色标签、HTML 下划线符号、HTML 行标签、空格可视化、符号边界提示
- 清理失联图片 — 1 个开关:启用后 ribbon 显示垃圾桶图标,扫描未引用图片
- 列表增强 — 7 个开关 + 1 个滑块:列一体化、回车软换行、选项聚焦(含二级子项最大展开数)、目录聚焦、显示目录文件数量(含仅显示直接子项数量)
- 标签页增强 — 4 个开关:默认新标签页打开、垂直标签页、新标签页打开双链、目录展开关联标签页
- 状态栏增强 — 4 个开关:工作区切换、自动更新工作区布局、侧边栏伸缩按钮、隐藏样式启闭按钮
- 打开 Obsidian → 设置 → 第三方插件 → 社区插件市场
- 搜索 MDRazor 并安装
- 在已安装插件列表中启用
- 安装 BRAT 插件
- 在 BRAT 设置中添加
Dyse-Sofqi/MDRazor - 手动启用 MDRazor 插件
- Built on Obsidian API
- Uses CodeMirror 6 (
ViewPlugin,Decoration,syntaxTree,domEventHandlers) for editor-level manipulation - Modular architecture: each feature resides in its own source file under
src/
如果这个插件对你有帮助,欢迎扫码赞助 ❤️
