工欲善其事必先利其器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语法 | 样例 |
---|---|
*身正不怕影子斜* | 身正不怕影子斜 |
**燕人张翼德** | 燕人张翼德 |
单行代码
`代码片段`表示单行代码,样例如下:
`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 |
??????????|----------|:---------| ----:| :------: |
??????????|值?????|值????|?......|??值??|
其中第一行表示表格中各项表示的意义,第二行用来控制每列的对齐方式,如上表所示,
------
与:-----
均表示左对齐,:----:
表示居中,---:
表示右对齐。另外如果需要在表格内进行换行,可使用
来操作。表格的例子在本文中已经展示了,故不再一一列举。列表 有序列表可用 数字. 列表内容的格式来表示,次级列表项的添加只需要在高一级别列表项下缩进至少两个空格,然后从头开始编号即可:
- Markdown是简便的
- Markdown是通用的
- 可以写博客
- 可以写数学作业
- 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语法为:
- [ ] 语文作业
- [x] 数学作业
但是某些博客系统还不支持Markdown任务列表,例如,但是基于gitHub的博客应该是支持的。
脚注 就像常见的论文排版中脚注一样,为了说明文档中某句话的来源或者出处,可以使用脚注来实现[1]。可在需要脚注的文本后面添加
[^脚注编号]
来实现,然后在文档的末尾使用[^脚注编号]: 脚注说明
的方式实现脚注。在这段文字中,我设计了一个用于测试的脚注。需要注意 许多标签都是可以嵌套使用的,例如
*
表示倾斜,**
表示加粗,***
即可实现加粗倾斜的效果,更多的组合希望各位根据需求去实验,再不一一赘述;还有一点是,为了表示标签本身,可以使用\
作为转义符使用,例如\*
即可表示*本身,而不是倾斜字体的标签。OK,以上就是关于Markdown语法的常用基础内容,希望大家能够借助Markdown美化自己的博客、文档。当然,对于本篇博文的不妥之处,还望大家谅解并欢迎指正。
参考文档:Markdown官方文档
- 脚注测试 ?