introduction
高中学生,平时用 SiYuan 学习,真的很不错!
个人感觉思源笔记中借用 pandoc 导出 word 的功能不是很好用,尤其是标记块不能挖空处理,于是自己重写了一个版本,实现了大部分功能
链接:sy2doc: 更好的思源笔记转 Word,使用 python-docx
用法
从源代码使用
依赖清单:
-
python-docx
主要用到的模块 -
latex2word
用于处理公式 loguru
用于日志记录
直接使用 exe 文件
到 release 中下载,双击 trans.exe 运行
命令行参数
python trans.py -i 输入文件.sy -o 输出文件.docx -conf config.json
其中,输入文件应是思源导出.sy.zip 之后解压缩的那个.sy 文件
输出文件可不填,不填则是和.sy 同名同路径的.docx 文件
conf 配置见下,不填则直接使用和 exe 文件同路径的 config.json
样式设置/中文乱码问题
在导出 docx 文件之后用 Word 打开,
TODOs:
本人高二,只有放假时间可以写代码。所以可能下次更新就得到寒假了,有什么问题还望多多包容
- 字体颜色、标记块均不可用(如果哪位能提供字体颜色和标记块对应的样式,麻烦提一个 issue,谢谢)
- 引用块不可处理
- 页眉页脚设置
- 样式自动设置
- 问题:不支持数学文本
使用 latex2word 处理文本,其中 symbols_parser.py
文件会读取自己同名目录下的 unimathsymbols.txt
文件,但是打包出 exe 后,exe 自解压到 AppData 中就没有这个文件了。
尝试方法:将 unimathsymbols.txt
的内容以字符串的形式直接写到 symbols_parser.py
里,并且用 r 字符串
File "d:\Python\Py3913\lib\site-packages\latex2mathml\symbols_parser.py", line 2890, in parse_symbols
latex = columns[2]
IndexError: list index out of range
在 py 运行时,出这个毛病。一气之下直接把这个库停用了,导出的 exe 文件就不含这个模块了
如果您下载 py 文件的话,取消注释第 16 行和 70、110 行的调用就可以正常使用了,这个毛病只出现在 exe 中
conf.json
log_path
:日志存放路径-
log_level
:日志级别,默认为 DEBUG -
title_to_head0
:是否将文档标题输出为 0 级标题 -
mark_replacement
:将标记转化成脚注之后,之前的空位转化成什么?默认是和标记长度相同的下划线 -
footnote_inline
:将标记转化成脚注之后,文档的最末尾脚注写在一行里(true)还是写在多行里(false) -
TaskListItemChecked
:当任务列表被勾选时显示的字符 -
TaskListItemUnchecked
:当任务列表未被勾选时显示的字符 -
code_font
:代码块的字体,默认Consolas
效果:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于