自从知道了 Markdown 这门标记语言,我就放弃了富文本编辑器,将微软的 Word、苹果的 Pages 束之高阁,转身离去,走上了 Markdown 写作的漫漫长路,并乐此不疲。
当年发布锤子便签 Markdown 版本的时候,老罗坚持把这个功能做的非常隐晦,并判断说,只有极客才会用这个功能。对此我是很不以为然的,但他是老板,我不和他争,和谁争我都不屑,我相信未来的数据可以证明……万一罗哥是对的呢?
一、Markdown 到底是什么?
Markdown 既不是工具也不是程序语言,而是一种轻量级的「标记语言」,是由约翰·格鲁伯(John Gruber)和亚伦·斯沃茨(Aaron Swartz)创建的。它允许人们使用纯文本格式编写文档,然后根据其中的标记转换成有效的XHTML(常用的就是HTML)文档。
亚伦·斯沃茨就是大名鼎鼎的互联网之子,英年早逝,令人扼腕叹息。想了解他的事迹,可以参考这篇「互联网之子」
理解了这一点,我们就知道,基于 Markdown 写作,就是纯文本写作,其中的格式可以通过一些简单的标记语言实现。一说到语言,很多人就开始退缩了:老池你别闹了,我英文到现在还没学好呢。我可以负责任的告诉你,掌握 Markdown 的标记语言比掌握英文大概要容易一个银河系。为什么 Markdown 能够普及呢?就因为这种语言简单到了令人发指的地步,以至于连二爷这样的产品经理也能分分钟学会。
简单介绍一下,如果你想给文章起个标题,在行首输入 # 加一个空格,后面的文字就变成了标题。输入两个 #,就是小标题,三个,就是小小标题,一共支持六个 #,够简单吧?
如果你输入斜体,在文字首尾增加一个星号即可,比如 卖桃者说,加粗,用两个星号,比如 卖桃者说,增加删除线,首位加两个波浪符号,比如 卖桃者说。
写作中引用了别人的文字,只需要在那段文字的首部增加 >,就会出现一个漂亮的区域块,比如:
你知道吗,人们每天起床,做着同样的事情,他们告诉自己,有一天要改变生活,但他们从来不付诸行动。我想改变自己的生活。
若隐若现的分割线,用三个星号占一行即可实现。插入链接,用方括号括起来,后面再加一个小括号链接就行了,比如 [锤子科技官网](http://www.smartisan.com)。
如果写非技术性文章的话,掌握了以上语法,基本就能解决你写作中百分之九十的问题。我在之前的文章里介绍过 Ulysses,这个工具非常适合沉浸式写作,也支持 Markdown,但是遇到复杂的技术类文章,就显得力不从心了,如果你想引入大量的代码、公式,甚至,你想用以文本的方式去画一些简单的图表,Ulysses 就无能为力了。
二、有道云笔记
一直想找一款适合程序员写技术文章的 Markdown 工具,上周经网易有道的朋友邀约,我试用了新版的有道云笔记,对 Markdown 的扩展能力有了进一步的认识。
我个人一直是有道云笔记的用户,这次新版本的发布包括了 Web 版和 Windows 版,主要增加了对 Markdown 语法的支持。我没有 PC,所以主要使用了 Web 版,效果可称惊艳。
访问 http://note.youdao.com ,登录网页版,就进入了有道云笔记的主界面。有道云笔记采用了传统的左树右表布局,将屏幕切成了三块,左边是树状结构的文件夹,中栏是文件列表,右边是主要的文本编辑区。这种布局模式,与其他 Markdown 专用编辑器相比,优点是不用退出编辑就能同时显示多个 MD 文件,对于需要同时编辑、查阅多个 MD 文档的人来说,很实用。缺点是如果你的屏幕不够大,略显拥挤。好在点击左边栏底部的箭头,可以隐藏树状边栏。另外,Windows 版本可以通过双击中间栏,扩展编辑区域为全屏模式,为用户提供更宽阔的写作空间。
点击「新建 – Markdown」,就可以在当前文件夹下建立一个 Markdown 文件,支持 Markdown 语法的写作软件一般有两种模式,一种是写作模式,一种是预览模式,有道云笔记也不例外。进入编辑状态时,编辑区自动切分为两个区域,左边为编辑区,右边为预览区,支持实时预览,所见即所得,同时连个区域支持滚动条同步浏览。点击分界条,可以实现独立/分屏切换,毕竟大部分时候,写作是不需要预览的。
编辑器的顶部是内置的工具栏,我之前介绍过的 Markdown 语法,基本都可以通过工具栏上的按钮实现,换句话说,你点几次按钮,那些语法差不多就掌握了,不用每次去点,对于程序员来说,双手保持在键盘上才是正事。
三、惊艳扩展
如果有道云笔记只有这些功能,那就不需要我费时费力去写这篇文章了,最重要的是他们对 Markdown 的语法进行了非常有意思的扩展!
1、待办事项。
输入:
– [ ] 编写埋点数据清洗程序
– [x] Code Review
– [x] 项目组例会
– [ ] 和老罗谈加薪的事,不加咋办?也得干
– [x] 解决客服报上来的 bug
就会得到:
2、支持文本方式绘制流程图、序列图和甘特图。
输入:
graph TB 部门-->A((前端组)) 部门-->B((后端组)) 部门-->数据组 部门-->测试组 部门-->架构组
就会得到:
输入:
gantt dateFormat YYYY-MM-DD section S1 T1: 2016-05-01, 9d section S2 T2: 2016-05-10, 5d section S3 T3: 2016-05-14, 9d section S4 T4: 2016-05-10, 13d
就会得到:
这种语法让我想起了很久之前接触过的 DOT 语言,不知道有道云笔记在设计扩展的时候是否参考了这门纯文本图像描述语言。我以前用 DOT 画过一些好玩的图形,一直不知道这玩意有啥用,后来和 Airbnb 女博士朱赟老师交流,发现人家使用 DOT 语言和自动化脚本做代码抽象和用例设计的……一比之下,立刻灰头涂脸,败下阵来,神童的世界是真不懂啊。
序列图语法也可以用类似的设计轻松绘制,点击顶部栏的对应按钮,就可以尝试和学习。
3、支持书写LaTex公式,这一点对学习机器学习和撰写学术论文的人非常有帮助。
输入:
E = mc^2 f(x)=x^{x^x} f(x,y,z) = 3y^2z( 3 + \frac{7x+5}{1 + y^2})
就会得到:
……
网易有道的朋友告诉我,这是支持 Markdown 功能的第一个版本,这个功能也会在即将迎来大改版的Mac客户端上线,这让我非常期待。事实上,就目前的功能看,这已经是一款有突破有特点的 Markdown 云端编辑器了,兼顾了普通作者和极客的 Markdown 语法和交互,免费,离线编辑,实时云端保存,差不多能够满足大部分人的写作需求。如果说还有什么建议,我觉得在沉浸式写作方面,还可以继续打磨,这方面可以参考 Ulysses 的交互。另外,在代码高亮上还可以做得更好,无论是编辑区,还是预览区。
有道云笔记,这是一款值得期待和使用的 Markdown 写作工具,如果你还没有使用 Markdown 写作,那么,就从这里开始吧。