John Gruber(约翰-格鲁伯)创造了一个简单的语法,却是文章笔记的编辑利器,看看他是怎么做的吧。
约翰君一天躺在床上正在思考着给烦人的老总提交会议笔记,一边写一边碎碎念,让我写会议笔记还不如让我写代码。约翰君越想越气,每次都是我写,还老长又要求文字格式,都被标题字号,内容列表格式烦死了。
一气之下重重敲了键盘一下,只见键盘空格键弹出来了,正要落在地上的瞬间,约翰就像牛顿看到苹果落地一样,灵感大发。将空格键打掉的约翰想到,我为何还要经常操作那些烦人的格式呢?就是经常使用空格键一样,我用tab缩进也可以代替宫格?!
找到灵感的约翰君立马拿出笔来写出下列灵感:
斜体
语法:两个*
包含为斜体
示例:*斜体*
粗体
语法:一对**
包含为粗体
示例:**粗体**
标题
语法:使用#
后的内容为一级标题,依次类推最多可以有六级标题。
示例:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
注意:标题从一级到六级,字体越小。
引用
语法:大于号(>)后的内容为引用内容。
示例:> 引用
效果:
这是引用内容
链接
语法:[链接名](链接地址)
示例:[Link](http://example.com)
效果:Link
图片显示
语法:![图片名字](图片链接)
示例:![图片.jpeg](http://example.com/图片.jpeg)
无序列表
语法:*
号后的内容,可组合多行产生多行列表。
示例:
* 无序列表
* 无序列表
* 无序列表
效果:
- 无序列表
- 无序列表
- 无序列表
有序列表
语法:*
号后的内容,可组合多行产生多行列表。
示例:
1. 有序列表1
2. 有序列表2
3. 有序列表3
效果:
- 有序列表1
- 有序列表2
- 有序列表3
分割线
语法:单独的一行的***
效果:
内嵌代码
语法:被``包含的内容。
示例:
这是一段`printf("hello world!!")`代码。
效果:这是一段printf("hello world!!")
代码。
代码块
语法:单独两行```包围的内容为代码块。
示例:为防止转译用()包含,实际使用去除即可。
(```)
int main()
{printf("hello world!");return 0;
}
(```)
效果:
int main()
{printf("hello world!");return 0;
}
约翰君看看自己的成果后得意洋洋。对了,貌似还没有名字喔,低下头看到敲掉在地上的空格键,就叫它markdown,文件后缀为.markdown
或.md
。终于可以让自己轻轻松松休息了。
一天早上约翰君醒来顺手写了一篇报告后刷刷网页,看到有人组织写markdown爱好者在制定markdown标准,当即约翰君就说出一句,不希望存在标准,因为每个人都有定制的想法。后来的几年人们通过不断扩展markdown语法,具备表格,数学公式,时序图等众多功能。下篇文章将会介绍到。
关于更多
- 语法标准参考:https://commonmark.org/help/
- 一些使用markdown写文章的网站:CSDN,博客园,简书,印象笔记。
- 一些在线markdown编辑网站:MarkdownEditor,马克飞象,Cmd markdown。
- 一些markdown客户端:typore,墨客编辑器。
- 在线markdown浏览器插件:Markdown Here。
- 文章首发于微信公众号:Qt君