Prettier 在日常经常使用,除了格式化代码之外在编写文档的时候也会选择使用,但是最近安装 Prettier 到项目依赖之后发现 md 文件的格式化文档竟然失效了。
排查了一番原因,最终在 GitHub 上找到了相关讨论 Markdown: Add an option to re-enable Prettier 2.x's automatic space insertion in CJK 大概就是说日文和韩文跟中文有一些文字是相同的,如果给中文添加空格,对其他语言是没有必要的且书写规范是错误的。而且检测并不好实现,且这也不是 Prettier 的职责。
目前这个问题只会出现在 3.0 之后的版本,但是在 3.0 之前的版本默认会在中英文之间添加空格,例如
测试abc
格式化之后
测试 abc
在之前版本这个功能对于其他国家的用户就要了老命,为此韩国人还开发了一个插件 prettier-plugin-md-nocjsp 就是阻止格式化插入空格。
什么才是文化输出,战术后仰
不过事情并没有这么简单,你说为了其他国家考虑,有些功能实现不了我认了!但是你最起码提供一个选项呀,可以让其开启或者关闭,不过不好意思,因为 Prettier 是一个固执己见的代码格式化程序。
这真是一个悲伤的消息,所以以上就是全部开发 Prettier 插件的动机,当然只是给中英文插入空格这个事情就太小了,它基于阮一峰的推荐的中文写作规范,使用 lint-md 来对 md 文件进行格式化。
GitHub 地址: prettier-plugin-lint-md