乐于分享
好东西不私藏

语雀文档编辑器将开源:始于但不止于Markdown

语雀文档编辑器将开源:始于但不止于Markdown

往期干货笔记整理

大家好,今天我们来聊一聊知识记录这个话题。

记录和回顾其实对于开发者来说还是挺重要的,备忘的同时也能帮助我们梳理自身的知识和技术体系。

无论是写API文档还是记笔记和输出技术博客,技术写作和记录可以说成为程序员写代码之余最多的工作之一了,趁手的文档编辑器或许是仅次于IDE的吃饭家伙事儿。

其实最早的计算机技术文档可以追溯到1944年,美国哈佛大学Mark 1 ASCC自动序列控制计算机研发小组成员Grace Hopper为他们研发的这台早期计算机撰写了操作手册。

还有另一个说法称“世界上第一本电子计算机手册”是BIAC二进制自动计算机的操作和维护手册,由Joseph Chapline于1949年编写。该手册创建了一系列计算机手册标准,并成为后来诞生的许多其他计算机手册的模板。尽管这两个案例可以追溯到1940年代,但直到1960年代后期,随着面向过程的编程语言在第三代微型集成电路计算机中的使用,才使得代码注释和技术文档成为软件开发的标配。

也是从这一时期开始,为了统一文本在不同计算机软硬件上的格式标准,GML、TEX、LaTex、HTML、Markdown等标记语言相继面世,这些标记语言将计算机中的文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码,为计算机文本的格式制定了标准。这些标记语言也成为不同时期软件工程师们撰写开发文档时必备的技能。

其中,Markdown作为最年轻的标记语言到被广泛沿用至今,成为很多习惯纯键盘操作的开发者们用于技术写作的不二之选。

为什么开发者喜欢Markdown

今天流行的大部分开发者工具都支持Markdown,包括GitHub、Gitee、Trello、Slack等。大部分开发者也会采用支持Markdown编辑器的开源工具来搭建自己的个人博客。

然而在博客场景仍处于起步阶段的2000年代初期,WordPress和TypePad等建站平台在编辑器功能上并没有提供太多的便利,这时候的开发者写文档仍需使用HTML来处理文本格式,技术博主和UI设计师John Gruber便是其中的一员。虽然Gruber喜欢在线写作和分享自己的技术内容,但他实在受够了使用HTML格式化所有内容的麻烦。

John Gruber

受到纯文本电子邮件通信美学的启发,John Gruber于2004年3月19日推出了第一个版本的Markdown。

Markdown相比HTML等富文本格式更加轻便,只包含分级标题、字体加粗、斜体、引用、添加代码块、插入图片/超链等程序员群体常用的文档功能,且格式非常简单,可以实现排版+写作同时进行,且无需使用鼠标点选调整格式,非常适合习惯了纯键盘操作的程序员们。

另一方面,Markdown简洁的语法非常容易被浏览器解析,这使得Markdown几乎适用于任何Web场景,这也是其日后被广泛用于代码托管平台Readme、开源项目在线文档、开发者个人博客等场景的重要原因之一。

得益于这些专为技术文档而生的优秀特性,Markdown很快在开发者群体中流行开来。

始于Markdown的语雀

目前,除了自建博客外,各类支持Markdown的写作平台已经成为了国内开发者首选的文档和知识库建立工具,例如Notion、语雀、石墨文档、印象笔记等。

之前有分享过很多期有关写作工具和笔记平台相关的内容,每次评论里都有不少小伙伴安利语雀。

语雀作为蚂蚁内部孵化的项目,在开发者群体中经常被提及。语雀的研发工程师曾说,语雀最初也是一名蚂蚁的程序员利用业余时间开发的Markdown编辑器。

2016年,蚂蚁金融云需要一个工具来承载它的文档,负责这项工作的工程师利用业余时间,搭建了这个文档工具,也就是语雀的雏形。项目的初期,没有任何人员和资源支持,同时也是为了快速验证原型,技术选型上选择了最低成本的方案。其中,应用层客户端选用了React技术栈,结合蚂蚁开源的Ant Design,并采用CodeMirror实现了一个功能强大、体验优雅的markdown在线编辑器。

2017年,随着语雀得到团队内部的认可,项目的目标已经不仅仅是金融云研发团队的文档工具,而是成为阿里所有员工的知识管理平台。于是,语雀在面向技术人员Markdown编辑器之外,还向非技术创作者提供了富文本编辑器,并选择了更“Web”的路线,在富文本编辑器中加入了公式、文本绘图、思维导图等功能。

这一时期,语雀的前端编辑器从codeMirror迁移到Slate。为了更好的实现语雀编辑器的功能,项目团队内部fork了Slate进行深入开发,同时也自定义了一个独立的内容存储格式,以提供更高效的数据处理和更好的兼容性。

随着编辑器越来越复杂,在slate的基础上进行开发遇到的问题越来越多,语雀团队最终还是走上了自研编辑器的道路,并基于浏览器的Contenteditable实现了富文本编辑器,通过Canvas实现了表格编辑器,通过SVG实现了思维导图编辑器。

自2018年正式对外提供服务以来,语雀团队就采用编辑器自研,底层的服务全面上云的形式,通过JavaScript全栈进行研发,以云服务的方式为企业级用户和个人知识工作者提供知识创作和管理工具。

开发者喜欢的编辑器因素

来自语雀的研发工程师曾经介绍自己日常的写作会有三种状态:

  • 思考,一种是把脑子里面灵光乍现的内容记录下来,这个时候对工具几乎是没有任何要求的,只要能输入即可;
  • 整理,第二种状态是整理思绪,其实写一篇文章最复杂的工序就在这个环节,我们需要把脑海中的内容和已有的内容做整合,让零碎的知识产生结构和关联,在这个过程中,经常会用到一些绘图工具、数据统计和分析工具;
  • 表达,将整理好的内容撰写成文,在敲击键盘的时候,会不断地思考,假设我此时是一名读者,我正在看这些文字,我的感受是怎样的,不断地尝试换位思考,这样才有可能写出一篇别人愿意看的文章。

对于大部分技术写作者来说,需要的正是能满足第二种状态的编辑工具。语雀之所以能够吸引开发者群体,得益于其产品设计在洞悉技术写作的需求方面做得很好。

首先就是代码块功能。早期的语雀只是简单的Markdown代码块渲染。后来经过迭代,其代码块在样式和支持的语言上都进行了加强,支持近百种常见的编程语言样式;此外还增加了代码块的命名、主题切换、高度调整、函数折叠等功能,能够满足绝大多数代码展示的需要。

除此之外,其画板功能也挺好用,不仅支持文本绘图,还结合了思维导图和流程图,提供非常丰富的绘图元素和快速制作技术架构图的能力。

另外利用其开放接口,开发者也可以把语雀上的博客同步推送到GitHub的个人仓库,总体还是可以的。

最后值得一提的是,语雀研发工程师还透露团队计划将语雀文档编辑器的代码开源,期望在社区的开放合作模式下,让语雀编辑器变得更好更强。

“在程序员的日常里,不仅我们的代码高并发地跑在机器上,脑子也是一样的,每天我们都要处理非常非常多的事务,处理不过来怎么办呢?这个时候就需要有一个信息的中转站,控制一下信息流转的速度,同时呢,在这个中转站里面,把无效信息给剔除掉,然后分门别类地做好归类,最后再交给大脑处理,这样才能游刃有余地把事情一件一件做好。”

总而言之,写作和记录对于开发者来说还挺重要的,也能帮助我们梳理自身的知识和技术体系。坚持下去,大有裨益。

以上,我们下篇见。

往期干货笔记整理

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 语雀文档编辑器将开源:始于但不止于Markdown

评论 抢沙发

1 + 8 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮