使用Markdown
关于Markdown
Markdown是一种非常流行的轻量级标记语言,它通过非常简单的语法,帮助作者在双手不离开键盘的前提下,做出具备漂亮排版的内容。Markdown文档以md为拓展名,但实际上是纯文本的,可以用记事本直接打开编辑。里面不光有内容,还有#, -, $等标记符号。这些符号标记定义了相应内容的呈现形式,这种呈现方式是规范化且受到广泛支持的,已经有很多软件和网站支持Markdown的渲染和显示,此外将md文件导出为html网页和pdf用于发布、分享和打印也很容易做到。
Markdown的哲学是让写作者专注于码字,而在排版上花最少的时间。大家惯用的Word软件,在打字的过程中通常需要配合大量的鼠标操作来改善文档内容的展示效果。而如果直接使用记事本写纯文本内容,写起来是快了,格式又过于单调阅读起来很费劲。Markdown很好地解决了这个问题,只需要在文本里加上简单的标记符号,从文本高亮到插入图片,就都可以通过键盘快速实现。不管是写文章还是写简历,它都堪担重任。
Markdown工具
Markdown写作工具很多。网页版的客户端的Windows的Mac的都茫茫多,此外很多博客网站都支持Markdown直接写作。
这里推荐一下微软的良心之作Visual Studio Code (VS Code)。这款好评如潮的代码编辑器拓展性很高,装上Markdown All in One之类的插件就可以在上面创建md格式文件用Markdown写博文了。它有标记高亮、错误提示和效果预览等功能,可以左边写右边实时查看排版效果,也可以一键导出为html网页或pdf文件等。
另外Jupyter notebook中也可以将代码块转为Markdown标注,详见Python食用方式:Jupyter notebook。
Markdown语法
不要被标记语言的“语言”两个字吓到了,Markdown的语法非常简单,只需要在常规文本内容特定位置加上标记即可(标记和文字之间一个空格)。这些标记在支持Markdown的网站和软件中会被翻译成格式。
- 标题/大纲级别(heading)
在文字开头加上#号就可以将该文字定义为标题,具体级别由#号的数量确定,共分一到六级,例如:
前面一个#是一级标题
前面三个#三级标题
前面六个#是六级标题
- 加粗和斜体
加粗和斜体可以用星号*或英文下划线_放在文字前后实现:加粗前后都用两个,斜体前后都用一个。例如:
两个星号围起来加粗
两个下划线围起来也是加粗
单个星号围起来斜体
单个下划线围起来也是斜体
之所以*和_都可以,是为了应对两者组合的情形,可以用英文双下划线来加粗,单星号来标记斜体,例如:
这群粗体字里有个是斜的
- 列表(list)
列表分有序列表和无序列表。
- 有序列表(ordered list)
有序列表的实现只需要在前面加代表顺序的数字和英文点号,例如:
- 第一条
blahblahblah- 第二条
blahblah
- 无序列表(unordered list)
在文字前加 - 号(推荐,也可用加号)可以将内容设定为前面带点号的无序列表,例如:
- 这是前面放了减号的无序列表
blahblah
- 这是前面放了加号的无序列表
blahblahblah
- 引用
引用(如本文开头段落)的符号是英文的大于号(>),在段落开头加上这个符号就转为前面有根竖线的引用框了。例如:
子曰:抄我的前面要加>
- 插入链接和图片
插入链接的语法示例(这里因为说明需要用中文符号避免被Markdown翻译,使用时中括号和小括号换成英文的):
【名称】(地址)
插入图片只是前面多个叹号(同样使用时需要换成英文符号):
!【名称】(地址)
示例:
图片:地址:Bing
- 表格
Markdown里表格规则也很简单,边框用管道符号 | 表示,然后用小短杆-(三个以上)来区分表头和表主体,每列短杆前后用英文冒号(:)来定义该列对齐方式:不加留空默认左对齐,只加在右边右对齐,左右都加居中。
但写下来还是比较累人的。直接举网上的例子(这里用无序列表注释避免内容被Markdown翻译以重现语法,真正使用时需去掉所有点号):
- | Tables | Are | Cool |
- | ------ |:-------:| -----:|
- | col 3 is | right-aligned | $1600 |
- | col 2 is | centered | $12 |
- | zebra stripes | are neat | $1 |
写的时候只要边框(管道符号 |)数目对得上,并不需要对齐,Markdown会自动对齐边框。去掉注释后效果:
Tables | Are | Cool |
---|---|---|
col 3 is | right-aligned | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
- 代码框
Markdown还支持插入代码框并且可以实现语法高亮,只需要前后各加 ` 符号(反引号/重音号,英文名backtick/backquote/grave accent,键盘上数字键1左边)将代码框起来就可以实现,单个表示内嵌在文本中,三个表示独立作为代码块,并且加上代码语言以实现相应的语法高亮,如下面的书写方式:
我们中间有个code
,不要让它跑了。
单词code被反引号前后引起来了。
再比如以下语句
在Markdown中效果是这样的:
# python code in markdown
print('hello, markdown')
- 分割线
欲加入分割线,使用三个星号,如:
的效果为:
未完,下面的分割线只是个例子。
- 删除线
用双波浪符号前后围起内容会给该部分文字加一条删除线,比如:
Not Good
- 公式
Markdown支持LaTex数学公式和符号,用美元符号$围起来即可,比如我们写(单个美元符号为内嵌行内公式,两个则独占一行):
效果如下:
利用公式可得:
小结
Markdown是值得一试的写作利器,非常容易上手,常用的Markdown标记符号十个都不到,几篇文章练下来,绝对熟练了。另外需要指出的是,Markdown是为了快速排版设计的,是兼顾码字效率、可读性和易用性的折衷方案,所以其它排版软件里的一些功能比如设置字体颜色等不在Markdown的考虑范围之内。