一键制作图片词典 MdxSourceBuilder

终于可以支持文件名使用空格了:

  • Windows下,mdict-utils 中的参数要使用双引号。
  • Linux下,mdict-utils 中的参数要将空格转义。

以下是修正后在Windows下的代码,已测试通过。

if s:autoMdxPack == 1
    echomsg "正在生成 Mdx 文件..."
    silent! exe '!mdict'
        \. ' --title "'
        \. substitute(s:mdxSourceFileName, ".txt$", ".info.title.html", "")
        \. '" --description "'
        \. substitute(s:mdxSourceFileName, ".txt$", ".info.description.html", "")
        \. '" -a "' . s:mdxSourceFileName . '" "'
        \. substitute(s:mdxSourceFileName, ".txt$", ".mdx", "") . '"'

    echomsg "已输出 Mdx,请查阅: " . getcwd() . "\\"
        \. substitute(s:mdxSourceFileName, ".txt$", ".mdx", "")
endif

if s:autoMddPack == 1
    echomsg "正在生成 Mdd 文件..."
    silent! exe '!mdict'
        \. ' -a "' . s:imageFolder . '" "'
        \. substitute(s:mdxSourceFileName, ".txt$", ".mdd", "") . '"'

    echomsg "已输出 Mdd,请查阅: " . getcwd() . "\\"
        \. substitute(s:mdxSourceFileName, ".txt$", ".mdd", "")
endif

Linux下的参数不用引号,但要将空格转义(以下转义代码仅供参考),请自行修订,未测试

" let s:mdxSourceFileName = substitute(s:mdxSourceFileName, "\\s", "\\\\ ", 'g')

详情请参见: 好像不支持带空格的文件名? · Issue #13 · liuyug/mdict-utils · GitHub

1 个赞