我正在尝试在 Freeplane 的节点中创建指向 shell 脚本的链接。当我监视节点中的文本时,node.link.text
我得到execute_:script.sh%20/home/dir/file.ext
好的,它可以工作,但是当我的路径有特殊字符链接空格或()时,它无法打开。我已经尝试使用来自 java.net 的 URLEncoder:
filePath='/home/user/Books/Author Name/File (231)/Book - Author.pdf'
urlEncoder = new URLEncoder()
def urlEncode(String s) {
urlEncoder.encode(s).replace("+", "%20");
}
fileLink = 'execute:_docreader.sh%20-p%20' + page + '%20' + urlEncode(filePath)
createdNode.link.setText(fileLink)
但是我无法执行任何以文件为参数的命令,其路径具有特殊字符。我什至尝试手动将 ' 或 " 放在路径中,但也没有用。
如果 filePath 没有特殊字符,就像/home/user/Books/AuthorName/file.pdf
它工作正常一样。
我查看了 Freeplane wiki 和 Freeplane API,查看了示例,但没有找到任何线索。