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

查看 48|回复 4
作者: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]]
wuhao
OP
  
求助
dier   
已经存在的,可以用脚本批量替换一下。将来的可以在设置中修改路径如下: 设置--文件与链接--内部链接类型--基于当前笔记的相对路径
dier   
我的所有图片文件都在 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   
这种格式不是所有 markdown 软件都支持,而且有可能你这是压缩版的路径,在设置里面调整图片插入方式把
您需要登录后才可以回帖 登录 | 立即注册

返回顶部