Markdown|Markdown 演义

工欲善其事必先利其器
??????????——《论语·卫灵公》
Markdown是一种类似于HTML、XML的文本标记语言,与HTML语言的语法比较相似,都是通过 标签+文档内容(文字、图片、表格、列表、LaTex风格公式等)的形式来格式化文档内容,使文档呈现出静态网页的那种效果,在某种程度上,Markdown相当于轻量级的HTML,在语法规则上没有HTML那么面面具到,但是对于日常博客、静态网页级别的应用是完全足够的,况且Markdown还兼容HTML语法。Markdown使用常见的十几种字符,例如*、>、#等作为自己的标签,记忆比较容易。
与HTML网页创建的过程一致,第一步,需要先创建一个以.md、.markdown结尾Markdown文件,原则上可以使用任意文本编辑器,但还是有一些在线的、本地的Markdown编辑器可以提供方便之处,可根据个人需求选择;第二步,将源文件提交给解释器(例如博客系统等)便可以生成格式化的文档,并且可以以多种文档格式进行保存。
OK,下面我们看一看Markdown的具体的语法规则。
引用 用来表现文章的有理有据之类的,或者展示作者深厚的文学造诣(haha),具体实例见本文开始处的“工欲善其事必先利其器”引文。其Markdown语法是> 引文,需要说明的是,在引文内部还可以使用>> 次级引文表示引用中的引用 ,还可以使用下面将要说明的其他标签来作用在引文中,例如使引文倾斜或者加粗等。
标题 # 标题内容格式化标题,#的数量由1到6表示一级到六级标题
Markdown语法 HTML语法
#一级标题 一级标题
##二级标题 二级标题
... ...
######六级标题 六级标题
一级标题
=======
一级标题
二级标题
------------
二级标题
除了以上的格式化方法之外,Markdown还支持上表格最后两行所示的的一级、二级标题的格式化方法,注意=表示等号,不是两行-。关于标题的样例在本文中随处可见,在此不一一列出。
强调 *文本内容*表示斜体,*文本内容*表示粗体
Markdown语法 样例
*身正不怕影子斜* 身正不怕影子斜
**燕人张翼德** 燕人张翼德
代码 对于某些技术博客来说,代码的缩进在外在美观与内在逻辑两方面都是非常重要的,Markdown可以保持在转换前后你的代码格式不变。
单行代码
`代码片段`表示单行代码,样例如下:
`print 'Hello, World'` ==> print 'Hello, World'
多行代码(代码块)
```代码片段```表示多行代码,样例如下:
class summer: self.c = 0 def add(self,a,b): return a+b

你还可以在第一个```后面添加编写代码的编程语言,例如```java java源代码```这种表示方法,例如:
public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } }

段落、单句 ??如果文档有多个段落,可在每个段落后面添加一个空行来分割段落,如果需要在古诗词之类的文本中表示换行,只需要在行尾添加两个空格+回车即可。除此之外,Markdown会将多个连续的空格、Tab等字符当作一个,所以段首的两个字符的缩进等语法就需要特殊占位符的支持。下表是几种特殊占位符的用法:
符号 作用
全角的一个缩进,即一个中文字符
半角的一个缩进,即除中文字符之外的大多数字符
  1/2个半角缩进,即1/4个中文字符
表格 表格的基本语法是:
??????????|特征一 |特征二 | ......| 特征n |
??????????|----------|:---------| ----:| :------: |
??????????|值?????|值????|?......|??值??|
其中第一行表示表格中各项表示的意义,第二行用来控制每列的对齐方式,如上表所示,------:-----均表示左对齐,:----:表示居中,---:表示右对齐。另外如果需要在表格内进行换行,可使用
来操作。表格的例子在本文中已经展示了,故不再一一列举。
列表 有序列表可用 数字. 列表内容的格式来表示,次级列表项的添加只需要在高一级别列表项下缩进至少两个空格,然后从头开始编号即可:
  1. Markdown是简便的
  2. Markdown是通用的
    1. 可以写博客
    2. 可以写数学作业
  3. Markdown是轻量级的
无序列表可用-+*+列表项实现:
  • Markdown是简便的
  • Markdown是通用的
    • 可以写博客
    • 可以写数学作业
  • Markdown是轻量级的
需要注意的是,在标签符号与列表内容之间需要空格,如果要结束列表的编辑,只需要一个回车来换行即可。
水平分割线、删除线 可以使用***---___来创造水平分割线,用来分割不同的文档单元,实例如下:
可以使用~~进行显式删除文档的某些部分的操作,例如:
~~我是一句被删除的话,~~我后面的文档还是有用的,请不要因为我而删除后面的话,我只是暂时没用或者过时了而已。
我是一句被删除的话,我后面的文档还是有用的,请不要因为我而删除后面的话,我只是暂时没用或者过时了而已。
超链接 超链接是非常使用的一种标签,通过超链接可以定位到互联网上的每一个资源,当然包括你的多个社交帐号的主页。Markdown语法如下:
?????????????[文本](URL,"URL的描述")
其中“URL的描述”可以省略,当鼠标悬停于该URL时就会显示该字段的内容。
下面看一个实例:
【Markdown|Markdown 演义】Markdown语法,我最喜欢的搜索引擎是[百度](http://www.baidu.com "最好的百度,最坏的百度"),最后呈现的结果是:
我最喜欢的搜索引擎是百度
当然,你也可以直接显示超链接本身,其语法如下:
如果你想了解我的喜好,你可以访问,即使用这种语法.
如果你想了解我的喜好,你可以访问http://www.baidu.com.
图片 某种程度上,图像是最美的语言,恰当的图片要好过无数句话,因此在文档中插入图片是相当重要的环节,插入图片的Markdown语法是:
????????![替代文字](图片URL或者本地路径 可选文字)
其中替代文字用于图片资源丢失时,以文字作为替代,搜索引擎甚至可以通过图片描述来自行搜索图片来呈现,可以省略,当鼠标悬停于图片时的显示文字即为可选文字的内容,可以省略。
下面是插入图片的一个实例:
![](https://upload-images.jianshu.io/upload_images/14261063-40d4ac8725e05381.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 "markdown")
效果见下图:

Markdown|Markdown 演义
文章图片

任务列表 如果你需要制作一个简单的在线任务列表,来标记一定时间内的任务完成情况,那么任务列表就可以满足你,其Markdown语法为:
- [ ] 语文作业
- [x] 数学作业
但是某些博客系统还不支持Markdown任务列表,例如,但是基于gitHub的博客应该是支持的。
脚注 就像常见的论文排版中脚注一样,为了说明文档中某句话的来源或者出处,可以使用脚注来实现[1]。可在需要脚注的文本后面添加[^脚注编号]来实现,然后在文档的末尾使用[^脚注编号]: 脚注说明的方式实现脚注。在这段文字中,我设计了一个用于测试的脚注。
需要注意 许多标签都是可以嵌套使用的,例如*表示倾斜,**表示加粗,***即可实现加粗倾斜的效果,更多的组合希望各位根据需求去实验,再不一一赘述;还有一点是,为了表示标签本身,可以使用\作为转义符使用,例如\*即可表示*本身,而不是倾斜字体的标签。
OK,以上就是关于Markdown语法的常用基础内容,希望大家能够借助Markdown美化自己的博客、文档。当然,对于本篇博文的不妥之处,还望大家谅解并欢迎指正。
参考文档:Markdown官方文档
  1. 脚注测试 ?

    推荐阅读