根据数据和模板批量生成Markdown文件
Obsidian真是一个绝佳的笔记软件,特别是当我意识到,如果拿它整理游戏资料的话,就相当于做了一个本地Wiki。我终于不用再为每一个心爱的游戏写一个长长的word文档了,简直是游戏肥宅的新纪元。
不过,要把游戏资料真正整理成一个本地Wiki,就要好好利用其双向链接功能,为每一个人物/道具/技能……都建立一个.md文件才好。想也知道一个个手写实在是太痛苦了。游戏Wiki对此又是怎么做的呢?我研究了一下灰机Wiki,发现游戏Wiki的管理员可以利用工具批量上传游戏原始数据,使用自己设置的模板生成Wiki页面。那么对应到Obsidian的话,就应当致力于使用一个数据表和一个编辑好的.md模板,就能批量生成文件。
于是接下来我就研究要如何实现这一点。本着能偷懒就偷懒的原则,我先搜索了一下Obsidian的第三方插件,发现还真有一个这种用途的插件,叫做JSON/CSV Importer。遗憾的是,这个插件似乎只支持英文,使用中文会导出一堆乱码,应当是编码转换的问题。但插件我也不会改,想了想,干脆自己拿Python写一个。
从模板批量生成文件其实是办公自动化的常见话题了,不过基本上都是根据Excel数据表生成Word文件,大概没有多少人热衷于像我一样用Markdown做本地Wiki。生成.md文件实现起来又更容易一些,因为Markdown文件本质上就是个文本文件,只需要安装一个openpyxl模块读取Excel文件就可以了。
(顺便一提,网上看到的一些用Python实现批量生成Word文件的代码简直复杂到离谱,让我深深怀疑是不是越不会写代码的人越喜欢上网显摆……哎,说起来我好像也是。)
1 | # -------------------------- |
虽然写的过程中有些波折(毕竟我菜),但成功地解决了批量生成文件的问题,可以快乐写本地Wiki了,十分开心。由此可见,人还是得学点代码,可以不去做码农,但绝对不能妨碍我整理游戏数据。