Markdown不吹不黑:谈谈自己的Markdown故事
王福强
docbook时代
我是啥时候切换到Markdown的,具体年份是真不记得了,估计2005年之前,我还都是在用古老的Docbook在写东西,比如我的第一本书《Spring揭秘》,原稿其实就是基于docbook写的。
当时估计是收到了动物书(OREILLY)出版社的影响,因为“据说”,他们的所有书稿都是基于docbook编写和排版的。🤣
但国内其实还是微软的Word的天下,所以,《Spring揭秘》的书稿写成后,跟出版社之间来来往往半年内的互相校对与修改, 全都是基于微软的Word以及它的注释功能。
当然, 给出版社的肯定是微软的Word,但本地我还是会将修改同时同步到docbook的原稿内容上,并通过SVN做版本管理。
但很可惜,因为年代久远以及到处流浪(从大连到杭州阿里),即使是用了SVN,原稿其实还是遗失了,那时候也没github🤣
Markdown时代
后面就切到Markdown来写东西了,因为Docbook虽然可以结构化的组织内容,但XML标签还是挺烦躁的,Markdown也是标记型文本格式,但相对于Docbook的XML格式,它的标记显然少许多,也少敲不少次键盘。
网上流传的Markdown编辑器都试用过,比如什么Typoro, 甚至商业的也买过,比如当时团队的兄弟推荐的MWeb,但买完之后用着其实没那么顺手,我其实还是习惯纯文本多些, 它这个编辑模式与预览模式混合的玩法,个人也是不习惯。
到最后,需要即时拉起来写点儿东西的时候,我用的比较古老的MacDown,主要是启动快,不会影响思路,否则启动老长时间,想写啥都忘了。
需要写长篇的时候,就用有目录管理功能的文本编辑器,比如VSCode,之前是Sublime Text,VSCode也是2017年刚开始创业的时候,团队里一个前端小伙儿用,我才开始用的。
Pandoc时代
写文章跟写书是两个量级,所以,写书的时候, 我通常是VSCode + Pandoc。
Pandoc是一个Markdown到各种格式文档的转换器(或者叫编译器), 它可以把我们写的Markdown转换成pdf、word、html、epub等输出格式,配合一些外围的脚本和插件, 我的第二本出版的书《SpringBoot揭秘》就是这两个东西的组合下写完的,遥记得当时的CEO比较勤奋,每周一三五的八点半还是八点的要开晨会,迟到罚款,所以,我通常都是7点左右到公司,写一个小时的书稿,闹钟提前5分钟提醒我上楼开会🤣
一个比较小众的知识是,Pandoc使用同样小众的计算机语言Haskell编写的。 如果是ROR(Ruby on Rails)是Ruby语言的杀手级应用,那我认为Pandoc就是Haskell的杀手级应用(也就是很经典)。
除了第二本书, 我的个人博客/网站也是基于pandoc和bash/scala脚本手搓的。
Astro/Starlight时代(MDX时代)
进入2024年之后,新的网站我就不再自己手搓了,评估了下Astro社区的Starlight这个文档站方案,感觉也挺好的,毕竟,我只是写内容,技术方案只要稳定,用啥语言写的跟我没太大关系。(虽然我是2000年以后的Java出身)
确切的说,Starlight里用的MDX格式虽然名字是Markdown的Extension,但其实它骨子里是Javascript🤣
不过,无所谓啦,编写内容只要遵循Markdown的基础标记就可以了,甚至于MDX还支持嵌入各种应用组件,相当于给Markdown又引入了更多的应用属性。
福强私学整个其实就是基于Starlight构建的,它不单单只是一个文档站,其实,结合MDX和Astro的特性,它完全就是一个完整的Web应用,只是核心价值在内容,现在应该也有一百五十多万字吧? 毕竟,包含了很多没出版的书和专栏。
AI时代
进入AI时代,很多模型的训练也好, 数据清洗也好, RAG应用开发也好,Markdown几乎成了AI时代数据交换的事实标准。
甚至于, 在跟AI大语言模型打交道的时候,你在编写Prompt的时候, 也可以通过Markdown的标记来让AI大语言模型更好理解你的意图。
可以看到,Markdown这个简单的文本标记语言,受到越来越多场景的欢迎了。
小结
FENNG说我也就会写写罗列信息的垃圾,写个1000字试试, 嗯,正好这篇1000字出头,也是罗列的形式,至于是不是信息垃圾,就看各位怎么看了🤣
「福强私学」来一个?
「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。
开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。