Markdown语法学习笔记
Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,当前许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge 等。甚至 Markdown 能被使用来撰写电子书。
主要内容
1. Markdown历史
2. Markdown主要语法
3. 其他语法
4. 参考链接
正文
Markdown历史
概述
John Gruber在 2004 年创造了Markdown语言,在语法上有很大一部分是跟Aaron Swartz共同合作的。Markdown的目标是实现「易读易写」。可读性,无论如何,都是最重要的。一份使用Markdown格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。
Aaron Swartz 大神
Aaron Swartz(1986 年 11 月 8 日-2013 年 1 月 11 日)是美国计算机程序员、企业家、作家、政治活动者和互联网黑客主义者。他参与开发了 RSS 网上信息源发布格式、Markdown 文本发布格式、知识共享组织、web.py 网站开发框架,同时是社交媒体 Reddit 的联合创始人。
**2009 年**,他协助成立了渐进社会变革活动委员会,期以了解有效的互联网运动。
**2010 年**,他成为哈佛大学埃德蒙·萨夫拉伦理研究中心的学者,在劳伦斯·莱斯格的领导下进行研究。他曾成立在线群组求进会——因反对禁止网络盗版法案的运动而闻名。
**2011 年**,他被麻省理工学院警署以其非法闯入的罪名逮捕:通过麻省理工学院校园网络,透过学院给予的访客账户,大规模系统性地下载 JSTOR 上的学术期刊。联邦检察官对他提起两项网络诈骗和十一项违反《计算机欺诈和滥用法》行为的诉讼——亚伦·斯沃茨将面临合计最高 35 年的刑期并处 100 万美元罚金、没收财产、归还失窃物品和监视居住的处罚。
他拒绝了联邦检察官提议其在联邦监狱服刑 6 个月的认罪协商。随后他被发现死在其于纽约布鲁克林区的公寓内,自缢而死。**2013 年**,亚伦·斯沃茨被追授入互联网名人堂。
Markdown主要语法
Markdown语法主要分为如下几大部分:
标题
段落
字体
横线
引用区块
代码区块
列表
链接
图片
表格
反斜杠
符号`
标题
用=
和-
标记一级和二级标题
一级标题
=========
二级标题---------
效果:
一级标题
二级标题
使用#
,可表示 1-6 级标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
段落
段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车。
字体
粗体和斜体
使用*
或_
包含需要标记为斜体或加粗的文字:
*斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
***粗斜体文本***
___粗斜体文本___
效果:
斜体文本
斜体文本
粗体文本
粗体文本
粗斜体文本
粗斜体文本
上下标
使用<sub>
标签:
上标:
X<sub>2</sub>
下标:O<sup>2</sup>
效果:
上标:X2
下标:O2
横线
分割线
在一行中用三个以上的*
、-
、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格(不建议加空格):
* * *
***
*****
- - -
----------
效果:
删除线
在文字的两端加上两个波浪线~~
即可:
~~Markdown删除线~~
效果:
Markdown 删除线
下划线
使用<u>
标签:
<u>Markdown下划线</u>
效果:
Markdown 下划线
2.5 引用区块
行内引用
使用符号`(Esc 下面那个符号):
这是`行内`引用
效果:
这是
行内
引用。
引用区块
在段首使用符号>
:> **Markdown** 引用单行文本
> **Markdown** 引用单行文本
效果:
Markdown 引用单行文本
Markdown 引用单行文本
嵌套引用区块
使用多个>
完成嵌套引用:> 单行引用
>> 嵌套引用
>>> 三次嵌套引用
>>> 三次嵌套引用
效果
单行引用
二层引用
二层嵌套三层嵌套引用
三层嵌套引用
代码区块
对代码区块进缩进处理,通过每行缩进四个空格或一个制表符即可,但是没有语法高亮和行号显示。代码文本:void main()
{
  printf("Hello, Markdown.");
}
使用空格或制表符
void main()
{
printf("Hello, Markdown.");
}
通过标签
使用标签<pre></pre>
也可以实现缩进:<pre>
int main(int argc, int *argv[])
{
  printf("Hello, Markdown.");
}
</pre>
效果:
int main(int argc, int *argv[]) { printf("Hello, Markdown."); }
增加高亮和行号
类似多行注释,在代码块首位各用三个符号`来处理,并指定代码语言(C 语言为例):
```Cint main(int argc, int *argv[])
{
  printf("Hello, Markdown.");
}
```
效果:
1 | int main(int argc, int *argv[]) |
列表
无序列表
使用·
、+
、或-
任意一种标记无序列表,如:
- 第一项
- 第二项
- 第三项
+ 第一项
+ 第二项
+ 第三项
* 第一项
* 第二项
* 第三项
注意:标记后面最少有一个空格或制表符。若不在引用区块中,必须和前方段落之间存在空行。
效果:
- 第一项
- 第二项
- 第三项
有序列表
有序列表的标记方式是将上述的符号换成数字,并辅以.
,如:
  
1. 第一项
  2. 第二项
  3. 第三项
效果:
- 第一项
- 第二项
- 第三项
列表嵌套
列表嵌套只需在子列表中的选项添加四个空格或缩进 TAB 即可,也可在列表内进行区块引用:
  
1. 第一项
    - 第一项嵌套的第一个元素
    - 第一项嵌套的第二个元素
  2. 第二项
    > 第二项嵌套的第一个元素
    > 第二项嵌套的第二个元素
效果:
- 第一项
- 第一项嵌套的第一个元素
- 第一项嵌套的第二个元素
- 第二项
第二项第一个元素区块引用
第二项第二个元素区块引用
GFM task list
带选择框的选项列表:
- [x] GFM task list 1 - [x] GFM task list 2 - [ ] GFM task list 3 - [ ] GFM task list 3-1 - [ ] GFM task list 3-2 - [ ] GFM task list 3-3 - [ ] GFM task list 4 - [ ] GFM task list 4-1 - [ ] GFM task list 4-2
效果:
- GFM task list 1
- GFM task list 2
- GFM task list 3
- GFM task list 3-1
- GFM task list 3-2
- GFM task list 3-3
- GFM task list 4
- GFM task list 4-1
- GFM task list 4-2
链接
链接可以由两种形式生成:行内式和参考式。
行内式
方式为[链接名称](链接地址)
或<链接地址>
这是一个链接 [github treading](https://github.com/trending)
这是另一个链接 <https://github.com/explore>
效果:
这是一个链接 github treading
这是另一个链接 https://github.com/explore
参考式
链接也可以用变量(数字或字符串)来代替:
这是一个链接 [github treading][1]
这是另一个链接 [github explore][explore]
(上下之间必须有空行)[1]:https://github.com/trending
[explore]:https://github.com/explore
效果:
这是一个链接 [github treading][1]
这是另一个链接 [github explore][explore][1]:https://github.com/trending > [explore]:https://github.com/explore
注意:上述的[1]:https://github.com/trending
不出现在区块中。
图片
添加图片的形式和链接相似,只需在链接的基础上前方加一个!
,支持行内式和参考式。如上文Aaron Swartz的图片链接:
![Aaron Swartz](https://github.com/younghz/Markdown/raw/master/resource/Aaron_Swartz.jpg)
表格
使用|
来分隔不同的单元格,使用-
来分隔表头和其他行。使用-:
,:-
,:-:
设置表格的对齐方式:
| 这是左对齐 | 这是右对齐 | 这是居中对齐 |
| :--------- | ---------: | :----------: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
效果:
这是左对齐 这是右对齐 这是居中对齐 单元格 单元格 单元格 单元格 单元格 单元格
反斜杠
反转义,使符号成为普通符号。
\\ 反斜线 \` 反引号 \* 星号 \_ 下划线 \{\} 花括号 \[\] 方括号 \(\) 小括号 \# 井字号 \+ 加号 \- 减号 \. 英文句点 \! 感叹号 \! 感叹号
效果
\ 反斜线
` 反引号
* 星号
_ 下划线
{} 花括号
[] 方括号
() 小括号
# 井字号
+ 加号
- 减号
. 英文句点
! 感叹号
符号`
起到标记作用。如:
`ctrl+a`
效果:
ctrl+a
其他语法
使用两个美元符$$
包裹TeX或LaTeX格式的数学公式来实现。
其他:关于其它扩展语法可参见具体工具的使用说明。
参考链接
https://www.runoob.com/markdown/md-tutorial.html
https://markdown.tw
https://github.com/younghz/Markdown
笔下是语法,心中格式化
本文标题:Markdown语法学习笔记
文章作者:xwnb
发布时间:2019-10-01
最后更新:2023-04-17
原始链接:https://xwnb.github.io/posts/4176222009/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!并保留本声明。感谢您的阅读和支持!
分享