一、为什么设计Markdown语法
- Aaron Swartz 和 John Gruber联合发明。(Markdown维基百科)
- 题外话,关于Aaron Swartz 有个纪录片《互联网之子》,自由分享的精神
- 出发点:用一种易读、易写的纯文本格式写作
- 易读
- 对写作者自己易读,那么源文件就不能用太多和内容极不相关的代码标签,如HTML。
- 对读者易读,那么最后的文件一定得有排版样式、结构,否则要命。
- 易写。写作者容易掌握,语法简单,不打断写作思路
- 写作。重点是专注写作内容
- 易读
- 常用工具
- 记事本:纯文本编辑,完全没有排版功能
- Word:排版操作用到键盘、鼠标,功能完整却繁琐;最要命的它的格式限制了只有用office打开才能阅读,即使用其它软件能打开,也极容易打乱排版。
-
LaTex:论文写作常用,方便输入各种公式,纯文本源文件,渲染后生成带排版的文件。功能强大,能完成复杂的排版,但入门难。
-
富文本编辑器:论坛、贴吧留言
-
HTML:源码很难阅读,标签繁多容易打断写作过程。其实Markdown最后就是翻译成HTML源码。
二、Markdown
特性
- 源文件是纯文本,可以用任何编辑器打开、编辑。即使不渲染,源文件本省也容易阅读
- 写作过程不用鼠标,专注键盘输入
- 语法少、简单,写作过程无需查询语法手册,不会打断写作思路
- 一点遗憾,Markdown语法的标记全部是英文半角符号,需要经常从中文输入切换到英文,会稍微打断你的写作。
- 文件名后缀
.md
哪些地方在用Markdown
-
源码包的README.md,github
- 博客,特别是编程类博客,因为代码块众多,没有格式几乎无法阅读
- 论坛留言、评论,一般只输纯文本,但涉及代码讨论,最好加上格式
-
维基百科不是markdown,但类似。自动生成大纲目录。
- 邮件,渲染好的markdown文档可以直接复制到邮件中,格式不会丢失
常用语法
-
#
:标题,几个#
就表示几级标题
# 一级标题
## 二级标题
### 三级标题
注意:一般,一级标题在一篇文章、一个页面里只出现一次。#
:后加一个空格。有的编辑器没有影响,有的缺了空格就不算标题
-
*
或-
:无序列表,相当于HTML里的ul
,li
。想要往里缩进成为子列表,只需开头添加空格
- 无序列表
- 无序列表
-
[数字].
:有序列表。数字任意,渲染之后自动从1递增,很方便插入、修改。- 有序列表
- 有序列表
-
**加粗**
:加粗 -
*斜体*
:斜体 - ``
:反单引号(键盘左上角
esc下面)。被两个反单引号包裹的文字像一个标签那样显示,常表示代码指令,如linux的
ls、HTML的
<div>`。 - 代码块
这是一个代码块,上下分别是三个反单引号。
for (var i = 0; i < j; i++) {
//do something
}
-
>
:引用
这是一段引用别人的话
- 问题
- 有序列表中间可能被隔断而重新排序
- 有序列表的序号是否自动排列
- 多层列表的缩进在不同编辑器表现不同
- 代码块语法,除了三个反单引号,还可以用四个空格
编辑器
- 任何文本编辑器都可以编辑
- 渲染
- 在线:
- github
- 简书,实时预览,历史版本记录
- 为知,生成大纲
- 一个在线编辑器dillinger,和云盘绑定
- 客户端:手机app、pc软件(Cmd Markdown)
- Windows: Cmd Markdown(免安装,U盘便携),MarkdownPad
- Linux: Cmd Markdown
- Mac: Cmd Markdown,Mou
- 好用的Markdown编辑器一览
- 不同的平台对markdown渲染后的样式是不同的,比如颜色、字体大小,但结构全部不变,标题还是标题,列表还是列表,由此也可以看出,Markdown最主要的作用其实是给内容加入结构。
- 对比:简书、为知、dillinger
- 简书对有序列表支持较好,图片有底标题
- 不同平台的差别:样式、行为
- 在线:
- 编程IDE,像写代码一样
- Sublime Text
- Atom
- Eclipse
三、总结
用最小的成本写出排版中规中矩的内容。有排版则方便阅读,特别是在网上。有排版也意味着有结构,结构便反映了内容的关系,最终体现思考过程。比如,有序列表表示各项之间并列关系,且没有前后顺序之分,像水果的子类:
- 西瓜
- 菠萝
- 香蕉
而有序列表表示有前后关系,或者要让人看出数量,像今天要做的事:
- 上午要做什么
- 中午要做什么
- 下午要做什么
Markdown是一个好的工具,较大程度辅助写作,体现内容层次,又不打断、干扰思路。