2020-03-26 11:59:15

可以处理标题中的空格。暂不能处理带有空格的文件名,以及tiff和png文件同名的情况,如果有同名转换将出现冲突,丢失图片。文件重命名的逻辑需要再写。

解决思路:遍历md文件,取出所有图片文件名,经过解码后得到一个文件名列表,对图片文件进行随机命名,然后将文件名写回md文件。

加入tiff2png检测,如检测不存在程序退出,并提示运行brew安装。

文件名空格处理思路。

https://stackoverflow.com/questions/2709458/how-to-replace-spaces-in-file-names-using-a-bash-script

文件名容易处理,麻烦的是md文件中文件链接中含有空格的处理。简单的查找替换可能会引起其他问题。

#/bin/bash

if [ -f "index.md" ]; then
    echo "converting..."
else 
    exit 1
fi

# 转换tiff图片为png
tiff2png -compression 5 *.tiff
rm -f *.tiff

# 正则修改正文
sed -i '' 's/\[\](/[img](\//g; s/\.tiff/\.png/g' index.md

# 获取文章标题
title=$(head -n 1 index.md | sed 's/#* //')

# 生成目录 SUMMARY.md
cat << EOF > SUMMARY.md
# Summary

* [$title](README.md)
EOF

# 更改文件名
mv index.md README.md

# 打包zip文件
zip -urq yuque_gitbook_import.zip . -x '*_book*' -x '*.DS_Store*'