用Markdown占领世界
初识
突然有那么一天,Markdown
就出现在了我的生活中,并且迅速的攻城掠地,摧枯拉朽般占领了大部分要地。
我想他是随着Github
进入我的视线的。在此之前,对于类似的Text-to-HTML
语言,我只知道Python
世界常用的rST
,当然还有听说过没见过的LaTeX
。或许我之前是见过markdown格式的文本的,那通常是在mail list中,我一直以为这些是老外们为了让邮件看起来更好看更容易理解才弄的花哨标注。
但实际上这也就是markdown产生的重要来源之一,Email中的这些内容给了markdown设计的灵感。现在,markdown已经无处不在了,起码在程序员这个狭小的圈子里。如果你自称为coder或者geek,但却不知道什么是markdown,那就一定得在你的称号前加入个『伪』字。
实际上这个语言对于我们这些喜欢用notepad
或者是evernote
,sublime text
等纯文本编辑器写文档的人来说,确实是个福音(悄悄@下jianxin,superhei,他们的纯txt paper曾经让我痛苦的阅读了N年)。因为非常不喜欢用重量级的word去写文档,也不喜欢受制于富编辑器那窄小的界面,而notepad即使在网吧的机器里也会有,写完文档只要自动处理一下,就能生成一个很漂亮的HTML文档挂在网上。如果当年我们就知道这个东西,那我们在80sec、80vul上的文档格式就不会如同现在这样五花八门歪瓜裂枣了。
现在,我用markdown写blog评论,用markdown写ppt,用markdown写email,用markdown写github上的issues和README,你看到的这篇文章也是我用markdown语法撰写的。markdown已经替代了我在电脑上除了code、cmd和QQ聊天之外type的所有长篇内容。
而接下来,我也准备为推广markdown尽份力,在我这一亩三分地上谈谈它。
优点
先来谈谈markdown的优点。以及我为什么会这么推荐他。
简洁
这其实是两点:
- 简单
- 漂亮
简单是说他的语法简单,基本没有什么学习成本。实际上,他的语法甚至可以用一张纸来说明完:
比起坑人的HTML来说,第一不用你去每次去想tag
的英文是怎么拼写的,其次也不用每个tag
都非常麻烦的配对,再close掉。让你专注于文档的内容,而不是其排版。
漂亮实际上是说他写出来之后非常高的人眼识别度。基本上用了他的格式进行文档撰写之后,text文档的排版也自然而然的清晰了起来,基本和渲染处理之后的总体观感上没有太多区别。如图:
可嵌入HTML
当然还是会有人习惯于写html,或者是临时想不起来某个语法。markdown有很大的弹性,他也允许你直接使用html tags去直接嵌入在文档内,并按照html进行渲染输出。
事实上,我之前的blog数据就是通过这个脚本,把html的内容输出为markdown文件,注意我这里并没有把html转换为md,而只是简单的嵌入其中,最终转到现在的blog平台上,也能原汁原味地渲染和显示。
专注
所谓的专注,是一个大问题。你当然知道在ipad或者电脑上写文档会有多么大的问题,随时能够被右下角弹出的QQ聊天框,或者抖动的email提示,甚至上个网查查资料就再也收不回转移出去的注意力了。
因此,现在很多app都推荐大家使用全屏进行书写工作,免除一切干扰。而markdown能做到的工作也是类似的。避免你被各种字体大小、排版等不相关内容干扰,这些在创作阶段真的重要么?还是专心于你的内容吧。
缺点
可事实上,任何东西都不会适合所有人。在我用了一段时间之后,也发现markdown的一些缺点,需要在使用中注意并克服之。
简单
没错,简单即是markdown的优点,同时也是它的缺点。因为markdown太过简单,因此在原始的标准语法中并没有存在文档中常用到的表格,任务表之类的格式。而仅仅只有常见的粗体,斜体,引用,删除,列表,标题等格式,相当原始,因此如果需要高级格式,都是需要重新扩展的。
而且,有些格式是和英文语法的表示密不可分的,因为英文有天生的空格
分割词汇,因此类似于something
之类的格式,非常容易解析,而中文就不同了,因为没有前后空格作为辅助切词判断,类似的强调语法在某些MD处理器下常常无法解析。
方言
正是因为markdown如此简单的语法,所以在现实使用中会出现多个『方言』用来扩展其功能,这不可避免会对使用者造成困惑和部分语法冲突。目前最为常见的方言如下:
其实这三者分别扩展的是不同领域的格式,GFM主要是扩展code方面的语法,MultiMarkdown有metadata可以作为文档的属性配置,而Pandoc的扩展则是个哲学教授写的,内容最丰富,更适合作为论文或者大型书籍的撰写。因此用起来的话,语法混淆问题还不是特别大。真心希望以后有个更强大的标准格式能够一统江湖,这样才能持久性的让markdown走下去。
资源
现在,如果你对markdown的兴趣越来越浓,而不是被我的啰嗦所吓走,那么你或许会对以下这些资源感兴趣:
语法教程
教程是一个很好的开始,或许我应该把它们放在文章最上面?
编辑器
markdown的编辑器实在太多太多了,mac上的app就有一大堆。我这里只列出我用过的。
- Mou Mac上最好的markdown编辑器,没有之一。国人出品,要支持下。
- Sublime Text 我爱它的通用性和强大的扩展。或许下次我会单独写篇文章介绍他。
- MarkdownPad windows上可以试试这个。
使用Markdown的网站/工具
- Github 不用介绍了吧,git做版本管理+markdown写作,真是个创作的好平台,会产生不可思议的化学反应。
- Stackoverflow 又一个不用介绍的。
- Tumblr 再一个不用介绍的。
- FarBox 这就是我目前blog所托管的平台,「回归纯粹的写作」是他们的愿景,这也是他们使用markdown的原因之一 :)
- Markdown Here 一个Chrome扩展,当你习惯了markdown的时候,在其他不支持的富文本编辑器上输入,然后利用这个扩展就能自动转换
- Pandoc pandoc即是一种markdown扩展,但是他主要的是文档格式的转换。他可以从多种文档格式转换为html,pdf,epub等最终电纸书格式。是个非常强大的工具