Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MDRazor

像剃刀一样精准打磨你的 Markdown 编辑体验。

GitHub Release License Obsidian Min App GitHub Stars

🇨🇳 中文 · 🇬🇧 English


简介

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]]![](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 个开关:工作区切换、自动更新工作区布局、侧边栏伸缩按钮、隐藏样式启闭按钮

安装

通过社区插件市场安装(推荐)

  1. 打开 Obsidian → 设置 → 第三方插件 → 社区插件市场
  2. 搜索 MDRazor 并安装
  3. 在已安装插件列表中启用

通过 BRAT 安装(预览版)

  1. 安装 BRAT 插件
  2. 在 BRAT 设置中添加 Dyse-Sofqi/MDRazor
  3. 手动启用 MDRazor 插件

Technical Stack

  • 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/

赞助

如果这个插件对你有帮助,欢迎扫码赞助 ❤️

赞助

License

0-BSD

About

No description, website, or topics provided.

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages