现有的语法高亮库大概有这样一个问题:针对性强,但灵活性差。
针对性强,就是说,如果你想高亮一段java代码,没有问题,加载核心库和java语言高亮插件,标志你的代码为java高亮方案,结果就如你想的那样。
但实际情况更为复杂,因为:
1. 我们公司发明了自己的语法,需要高亮,但要使用别人的高亮库的编程接口,费时费力不讨好。
2. 作为js工程师,这门语言变化太快,你可能会高亮各种奇怪的组合,比如 jsx+babel, vue 等,所以就算你能搞清楚人家的高亮库的基础编程API,你能搞懂人家的混合语言编程API吗?
3. 作为前端工程师,js和css的标准在不断进化,而且我们还有各种使用下一代语法编程的库,比如我用cssnext写的css4,在编辑器里面一片标红。
所以,我就自己写了一个通用的高亮库,而且可以做服务端渲染。
github托管地址: https://github.com/lemonce/sublemon