【Obsidian】附件路径包含空格无法正常显示解决方案
✨附件路径包含空格无法正常显示
如下图所示 附件路径中包含空格时无法解析

但是 Typora 可以正常解析此类路径
原因是 Obsidian 中空格需要转义,用%20表示
✨解决方案一:为附件路径添加“<>”
安装插件 Linter
对于第三种方式了解到可以通过安装第三方插件 Linter
然后添加正则替换解决
首先在插件市场搜索安装 Linter 插件并启用

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

然后点击自定义

为附件路径添加“<>”
用<>包裹附件链接即可防止附件路径被转义
配置自定义正则表达式替换
新建规则:Convert Markdown Attachment Link
填入以下正则表达式即可
查找正则表达式
(?<=\]\()(?!<)([^)]+)(?=\))
修饰符:gm
g(全局匹配)m(多行模式,如果需匹配多行文本)
替换字符串:
<$1>
附件路径中同时包含空格和括号
上述的正则表达式已经能完成如下情况的附件链接转换
并且不会影响已经有“<>”的链接
转换前:
转换后:
但是无法处理附件路径中同时包含空格和括号的情况
例如: Image/imageName)
可以使用更复杂的正则表达式配置 Linter 替换规则
查找正则表:
(?<=\]\()(?!(?:<[^>]*>))((?:[^()]*|\((?:[^()]*|\([^()]*\))*\))*)(?=\))
修饰符:gm
替换字符串:
<$1>
这种方案会给所有链接都加上“<>”(包括非图片链接)
虽然不影响内容 但是不够优雅(
✨解决方案二:替换附件路径中的空格为“%20”
安装插件 Linter
同上
替换附件路径中的空格为“%20”
配置自定义正则表达式替换
新建规则:Convert Markdown Attachment Link
填入以下正则表达式即可
查找正则表达式
(?<=\!\[[^\]]*\]\([^\)]*?) (?=[^\)]*\))
修饰符:gm
替换字符串:
%20
注意Linter提示:“此外,如果在iOS 移动设备上使用后行断言,请确保系统版本支持”

因此这种方案不适用于 iOS 设备
每次在 iOS 设备上打开Obsidian后该条自定义替换规则会变为不启用
详情可见 Linter 官方文档
https://platers.github.io/obsidian-linter/settings/custom-rules/

✨参考及引用
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
版权所有,如需转载请注明出处。

浙公网安备 33010602011771号