org-mode 9.36 图床更新问题

org-mode 9.36 更新了一些东西,之前的org图片文件地址里面有中文的都用不了了。用了python代码来解决这个问题。

自己测试后,如果文本中有特殊字符会出错,问题不大,用notepad++复制一份在org-mode粘贴一下就可以了。

使用前先备份。

from urllib.parse import quote, unquote, urlencode
import re,os

def uncodeToNormal(typeList):
    urlRegex = re.compile(r"\[\[file:[\s\S]*?\]\]")
    for i in range(len(typeList)):
        if urlRegex.findall(typeList[i]):
            typeList[i] = unquote(typeList[i])
            print(f"{i+1}.",typeList[i])
    return typeList

def uncodeFile(path):
    with open(path, mode="r+",encoding='utf-8', errors='ignore') as f:
        z = f.readlines()
        f.seek(0)
        z = uncodeToNormal(z)
        f.writelines(z)

files =["C:\\Users\\Admin\\Dropbox\\org\\Notes\\" + i for i in os.listdir(r"C:\Users\Admin\Dropbox\org\Notes") if "org" in i]
for i in files:
    print(i)
    uncodeFile(i)
4 个赞

啊,这个确实是,这个incompatible upgrade引入似乎好一段时间了。(我用的是master branch最新源代码)因为更新org link regexp的缘故好像。