Markdown是一种纯文本格式的标记语言。
1. 历史
1.1 发明人John Gruber
John Gruber在2002年创建了个人博客 Daring Fireball,核心内容是关于苹果公司的各类信息。为了更好地进行博客写作,2004年发布了Markdown V1.0.1,同时提供了一个Perl脚本完成Markdown到Html的转换。
这是链接
https://daringfireball.net/projects/Markdown/
在此之后,John Gruber再也没有更新过Markdown语法。顺便八卦一下,John Gruber在1973年出生于费城,据说博客一年的广告收入数百万。
1.2 布道者 Jeff Atwood
2008年,Stack Overflow的联合创始人Jeff Atwood选定Markdown作为Stack Overflow用户编写和回答问题的语法方案。
Jeff Atwood长期组织推广Markdown,并且致力于Markdown语法标准化规范的倡导和推动。
然而,John Gruber认为:无论在标准化上面做什么努力,都不可以称其为Markdown。因此他要求标准化团队更换Standard Markdown的名字,关闭同名网站并且对他公开道歉。所以后来的标准规范叫做CommonMark。这是链接:
https://commonmark.org/
1.3 Pandoc:John MacFarlane
John MacFarlane,加州伯克利的教授,命令行文档转换工具Pandoc的 作者,CommonMark 规范主要编写作者。CommonMark 规范包含了 624 个测试用例,C 和 JavaScript 的规范实现。
1.4 GFM
全球最大的程序员交友社区Github支持Markdown,GitHub Flavored Markdown spec在2017年发布,支持表格、任务列表和删除线。
1.5 Aaron Swartz
特别提一下,Aaron Swartz也很推荐Markdown。亚伦·斯沃茨(Aaron Swartz),一个年少成名的计算机天才,着名黑客,可惜26岁英年早逝。
这是他的博客:
http://www.aaronsw.com/weblog/001189
1.6 国内的推介者
阳志平:理想的写作环境:Git+Github+Markdown+Jekyll
2012年
https://www.yangzhiping.com/tech/writing-space.html
池建强:寻找简单的快乐
2013年,http://macshuo.com/?p=453
简书:支持Markdown的写作网站
2013年,https://www.jianshu.com/
李笑来:Markdown Here 教程,2016年
Markdown也是各种笔记和写作软件首选支持的格式。
本文的写作是在有道云笔记中使用Markdown完成,然后纯文本复制到 后台编辑器中,使用Firefox的Markdown-here插件完成一键排版。( 不支持外部链接和图片,需要一些额外的手动工作。)
2. 纯文本的威力
Keep knowledge in Paint Text.
《The Pragmatic Programmer》 (中译本:程序员修炼之道)
纯文本的好处在于方便保存,几乎不存在跨平台的兼容性问题(除了换行和中文编码),可以使用各种工具处理,尤其是在Linux/Unix系统中有各类文本处理小工具。
对于程序员来说,纯文本可以方便地使用版本控制工具进行管理,方便历史回溯和多人协作。
纯文本的坏处是,缺乏数据结构化的信息,不方便做可视化展示。当然相对于二进制和数据库而言,纯文本所需要的存储资源更多一些。
3. 标记语言
所有的计算机语言都是用纯文本写的。
比如编程语言,如C,Perl,Python,Java等。这些语言需要专用的编译器,转换成相应的机器码在CPU上运行。
比如标记语言(markup language),常见的有html,xml,xhtml等。在文本内容基础上增加了各类标签,表明数据结构、属性,或者提供用于数据展示的格式化。
Markdown是一种轻量化的标记语言。“轻”是相对于HTML的,标签没有那么多,对于人而言可读性更好。
与Markdown类似的,还有reStructureText,很多Python模块的文档使用的语言,基于sphinx工具。
参考网址:http://www.pythondoc.com/sphinx/index.html
除此之外,还有textile,AsciiDoc等其他轻量标记语言。
4. 编辑器与排版
Markdown是纯文本,可以使用任何文本编辑器,最好能够支持自动渲染,自动插入语法元素等。个人推荐Typora。
Markdown只是标记语言,可以转换为html或者pdf,最终渲染效果取决于css。
Markdown的转换工具有很多。最基本的就是原作者发布的perl脚本,此外有pandoc,Markdown-here浏览器插件,以及大量基于Java,C,Perl,Python的开源工具。由于Markdown没有强制的统一标准,不同工具支持的语法会略有不同。
5. 奇技淫巧
很多工具和在线网站可以利用Markdown实现很多神奇的功能,其实主要是靠强大的脚本解析工具。
画流程图
画甘特图
做todo-list
输入数学公式
自动插入目录
…
煮咖啡(也许?)
6. 几句题外话
微软的word是世界上最强大的编辑和排版工具,没有之一。
编辑和排版界最牛逼的名人是高德纳(Tex/LaTex的发明者)。
如果没有精通word,没有精通Latex,可以试试Markdown, 一个小而美的工具。