【Obsidian】附件路径包含空格无法正常显示解决方案

✨附件路径包含空格无法正常显示

如下图所示 附件路径中包含空格时无法解析

image-20250518204113237

但是 Typora 可以正常解析此类路径

原因是 Obsidian 中空格需要转义,用%20表示


✨解决方案一:为附件路径添加“<>”

安装插件 Linter

对于第三种方式了解到可以通过安装第三方插件 Linter

然后添加正则替换解决

首先在插件市场搜索安装 Linter 插件并启用

image-20250518205035387

这里我配置了在保存/修改时进行格式化

image-20250518205155682

然后点击自定义

image-20250518222658831

为附件路径添加“<>”

<>包裹附件链接即可防止附件路径被转义

配置自定义正则表达式替换

新建规则:Convert Markdown Attachment Link

填入以下正则表达式即可

查找正则表达式

(?<=\]\()(?!<)([^)]+)(?=\))

修饰符:gm

  • g(全局匹配)
  • m(多行模式,如果需匹配多行文本)

替换字符串:

<$1>

附件路径中同时包含空格和括号

上述的正则表达式已经能完成如下情况的附件链接转换

并且不会影响已经有“<>”的链接

转换前:![imageName](path To Image/imageName)

转换后:![imageName](<path To Image/imageName>)

但是无法处理附件路径中同时包含空格和括号的情况

例如:![imageName](path (To) Image/imageName)


可以使用更复杂的正则表达式配置 Linter 替换规则

查找正则表:

(?<=\]\()(?!(?:<[^>]*>))((?:[^()]*|\((?:[^()]*|\([^()]*\))*\))*)(?=\))

修饰符:gm

替换字符串:

<$1>

这种方案会给所有链接都加上“<>”(包括非图片链接)

虽然不影响内容 但是不够优雅(


✨解决方案二:替换附件路径中的空格为“%20”

安装插件 Linter

同上

替换附件路径中的空格为“%20”

配置自定义正则表达式替换

新建规则:Convert Markdown Attachment Link

填入以下正则表达式即可

查找正则表达式

(?<=\!\[[^\]]*\]\([^\)]*?) (?=[^\)]*\))

修饰符:gm

替换字符串:

%20

注意Linter提示:“此外,如果在iOS 移动设备上使用后行断言,请确保系统版本支持”

image-20250602150252975

因此这种方案不适用于 iOS 设备

每次在 iOS 设备上打开Obsidian后该条自定义替换规则会变为不启用

详情可见 Linter 官方文档

https://platers.github.io/obsidian-linter/settings/custom-rules/

image-20250602150847898


✨参考及引用

https://forum-zh.obsidian.md/t/topic/35948

https://platers.github.io/obsidian-linter/settings/custom-rules/


⭐转载请注明出处

本文作者:双份浓缩馥芮白

原文链接:https://www.cnblogs.com/Flat-White/p/18882730

版权所有,如需转载请注明出处。

posted @ 2025-05-18 22:24  双份浓缩馥芮白  阅读(319)  评论(0)    收藏  举报