why write this blog
之前只有在用一些笔记软件的时候偶尔接触过markdown这个东西,只知道是一种轻型的标记语言。现在工作还有各方面的需要,必须抽出一些时间系统的学习一下markdown。当然并不研究markdown的渲染原理,只学习用法。
[TOC]
Markdown简介
wiki上的介绍
Markdown is a lightweight markup language with plain text formatting syntax. It's designed so that it can be converted to HTML and many other formats using a tool by the same name.
这么看,markdown的设计初衷肯定不是面向码农了,受众应该是经常写文档,写邮件的办公室一族了。
Markdown提供一套规定的语法,让写出的文档经过markdown processer的处理,转化为html,从而格式化你的.md文件。
当然,到了现在,Markdown的使用范围和影响已经渗透到各个行业,许多人日常的工作经常需要和它打交道。Github天生对md文件的支持,国内博客如简书也流行起markdown的方式来写博客。而抽出一小时左右的时间就能学会并使用它,还是非常值得,希望这篇blog会对你们有所帮助。
Editor
工欲善其事,必先利其器。这里我推荐typero
下面是我写这篇博客时的截图
功能齐备
mac/windows的跨平台支持
界面清爽,cold style
markdown的语法建和快捷键的绑定
准备好之后,开始markdown的学习。
区块元素
标题
标题用 #
来提示markdown引出标题,一共有六级标题,字体从大到小。合理的在一篇文章中使用标题,可以通过 [toc]
自动生成目录,而且让你的文章层次更加清楚。
# header1
## header2
...
####### header6
header效果:
引用
使用 >
符号,引用的范围很广,通用解释、官方定义、他人专利都推荐用引用格式。
> 输入引用的内容
blockquotes效果:
列表
un-orded list
使用 -
来创建无序列表,+
*
具有相同的作用。
## programming language
- c++
- pyhton
- go
- java
orded list
有序列表,使用 1. item1
来创建,可以不按顺序,markdown语法解析器会自动识别
## popular
1. javascipt
2. pyhthon
3. java
task list
也就是html中的复选框,使用 - []
来创建,默认不选中,- [x]
为默认选中的复选框
- [] option1
- [] option2
- [x] options
效果如下:
- [ ] option1
- [ ] option2
- [x] option3
code block
很多博客和笔记软件都支持加入代码块这个功能,可以保持代码的原貌。在typero中是使用 ```
来加入代码块,其他editor可能略有不同。
for a in list
func(a)
links
markdown支持两种link方式,inline和reference。两种方式都是用 [ ] 来修饰需要链接的对象。
-
inline links
在需要链接的对象后面,用括号加上links即可。用符号表示就是
[object]
后面加上(links "title")
title是可选项。如果链接访问的本地主机的资源,可以用相对路径代替url[Baidu](http://baidu.com/ "baidu") is a famous company. See my [About](/about/) page for details.
效果:
Baidu is a famous company.
See my About page for details.
-
reference links
与inline不同的是,它不直接指明链接的地址。而是在
[object]
后面跟上一个[identifier]
,然后在文件的合适地方,给identifier定义一个links,这样object就能通过唯一的identifier找到自己的links。如果[identifier]
为空,则默认和[object]
同名[Tencent][qq] has been the best internet company in Asia.
效果:
Tencent has been the best internet company in Asia.
images
images的用法和links基本相似,只是加了一个 !
在前面
inline式的语法如下:
![](/path/to/img.jpg)
![](/path/to/img.jpg "Optional title")
reference式的语法如下:
![Alt text][id]
[id]: url/to/image "Optional title attribute"
table
创建表格,使用|header1|header2|...|headern|
来创建n列的表格,自动生成表格之后可以调节表格大小。
id | name | score |
---|---|---|
1 | Allen | 100 |
2 | James | 90 |
3 | Victoria | 95 |
Footnotes
创建脚注
You can create footnotes like this[^footnote].
[^footnote]: Here is the *text* of the **footnote**.
效果:
You can create footnotes like this[1].
TIPs
-
需要注意markdown中有意义的符号,在写文章时可能会出现冲突,比如下面这个例子
1994. the year i was born
我的目的只是将它作为普通语句输入,解释markdown的语法解析器会把它误认为列表的提示键,这种情况需要引入
\
转义符,正确用法如下1994\. the year i was born
-
强调语法,使用
**word**
来加粗,*word*
使字体变斜_
和*
是同样的作用 TOC 用法,使用
[toc]
来生成目录,前面已介绍-
下划线,可以使用下面的符号生成
--- ------ *** ******
简短的代码引用可以用
code
就可以,比如printf
是输出语句插入image稍微麻烦一些,本地图片很方便,其他的可以用七牛云图片存储。
-
:smile
:happy:
可以输入emoji比如::open_hands: :clap: :haha:
-
Here is the text of the footnote. ↩