obsidian 的本地图片都是![[CleanShot 2024-04-04 at 16.21.29.png]]格式,其他 markdown 软件打开看不到图片怎么办?

252 天前
 wuhao
obsidian 的本地图片都是![[CleanShot 2024-04-04 at 16.21.29.png]]格式,其他 markdown 软件打开看不到图片怎么办?

比如 obsidian 显示附件,但是 typio 就只显示代码



![[IMG-20240414222145480.jpg]]



![[IMG-20240414222201577.jpg]]

![[IMG-20240414222223736.jpg]]

![[IMG-20240414222304879.jpg]]



![[IMG-20240414222754174.jpg]]


![[IMG-20240414222820935.jpg]]
936 次点击
所在节点    软件
7 条回复
wuhao
252 天前
求助
dier
252 天前
已经存在的,可以用脚本批量替换一下。将来的可以在设置中修改路径如下: 设置--文件与链接--内部链接类型--基于当前笔记的相对路径
dier
252 天前
我的所有图片文件都在 media/Images 目录下,你要是用这个脚本,记得替换一下这个路径。另外,建议先把所有笔记复制备份一下,避免脚本修改失败,导致无法恢复。

```shell
#!/bin/bash

# 定义替换图像格式的函数
replace_image_format() {
file="$1"

# 定义目标格式的正则表达式(包含"media/Images"的情况)
pattern_with_path='!\[\[media/Images/([^]]+)\]\]'

# 定义目标格式的正则表达式(不包含"media/Images"的情况)
pattern_without_path='!\[\[([^]]+)\]\]'

# 读取文件内容
content=$(cat "$file")

# 检查文件内容是否包含"media/Images",并根据情况替换图像格式
if [[ "$content" == *"media/Images"* ]]; then
new_content=$(echo "$content" | sed -E "s#$pattern_with_path#![](media/Images/\\1)#g")
else
new_content=$(echo "$content" | sed -E "s#$pattern_without_path#![](media/Images/\\1)#g")
fi

# 处理文件名中的宽度内容(如果有),并移除竖线
new_content=$(echo "$new_content" | sed -E 's/\|([0-9]+)//g')

# 将修改后的内容写回文件
echo "$new_content" > "$file"
}

# 要处理的目录
target_directory="/root/fix_md"

# 查找目标目录及其子目录下的所有.md 文件,并执行替换图像格式操作
find "$target_directory" -type f -name "*.md" | while read -r file; do
replace_image_format "$file"
done
```
proxytoworld
252 天前
这种格式不是所有 markdown 软件都支持,而且有可能你这是压缩版的路径,在设置里面调整图片插入方式把
wuhao
252 天前
@proxytoworld 是的,是压缩版本的路径,如何调整成相对或者绝对路径,这样以后更加通用呢?
wuhao
252 天前
@dier 感谢感谢!!我保存了,有没有 obsidian 的设置直接替换的方法呀
dier
252 天前
@wuhao 在软件设置里面只能修改新添加的格式,旧的要么就只能在每个页面通过查找替换实现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1033241

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX