什么是Markdown呢?简单来说,Markdown就是赋予了普通文本文件格式化的功能,同时又保持了文本文件的简洁。Markdown简单易用,既解决了我需要一款轻量级编辑器的需求,又解决了文章排版的问题。可以说是一个完美的解决方案。
Markdown的解决方案很多,在线的话可以使用;Mac OS上的话,Mou几乎是不二之选;Windows上则可以使用MarkdownPad。
虽然已经有很多关于Markdown语法的总结,我还是要写一份自己的版本。因为以后写作不仅是在网站上,还包括Mou等。而各家的Markdown语法大体上一致,但还是有一些小小的区别。因此本文也会随时更新。
闲话不多说,言归正传。通常来说,我编辑一份文档,需要用的格式大致有如下几种:
- 分级的标题
- 列表项
- 有序列表
- 无序列表
- 列表的嵌套
- 用黑体、斜体来表示强调
- 超链接
- 插入图片
- 程序源代码的展示
- 引用
OK,有了以上的这些格式,那么完全可以写出一份排版非常漂亮的文章了。而这些格式在Markdown中,都可以轻易的实现。下面分别用具体例子的来说明。
分级标题
Markdown中标题一共分为6级
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
显示效果如下:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
注:Markdown的语法其实跟HTML是兼容的,所以文字的分段是通过空白行来实现的;所以,仅仅是一个换行符有时并不能实现文字的分段。同时,多个空白行也只会被当做一个来处理。
分级标题还有一个方式,但是只能实现两种级别的标题格式:
一级标题
=======(只需一个=就可以显示出效果,为了美观,可以让=的长度跟标题一样长)
二级标题
-------
显示效果如下:
一级标题
二级标题
列表项
列表项的实现非常简单。无序列表可以使用*、-或+开头,然后空一格开始写列表项的标题即可。如果需要嵌套,使用tab键即可。如下所示:
* 中国
* 北京
* 深圳
* 成都
* 美国
- 纽约
- 费城
* 法国
+ 巴黎
+ 马赛
* 英国
显示效果如下:
- 中国
- 北京
- 深圳
- 成都
- 美国
- 纽约
- 费城
- 法国
- 巴黎
- 马赛
- 英国
如果需要有序列表的话,那么使用数字+小数点+空格+列表项即可。如下所示:
1. 冠军
2. 亚军
1. 季军 (注:数字可以不连续,但是显示出来的列表项编号是连续的)
4. 殿军
效果如下:
- 冠军
- 亚军
- 季军
- 殿军
不过有序列表好像无法指定起始编号,不过这一点无伤大雅。
强调
在文章中,一般通过文字的黑体、斜体效果来表示强调。实现如下:
**黑体** __黑体__
*斜体* _斜体_
~~删除~~
显示效果如下:
黑体 黑体
斜体 斜体
删除
超链接
格式:
[蜗牛独独](http://weibo.com/snaillonely)
显示效果:
蜗牛独独 <-- HIT ME
因为Markdown于HTML是兼容的,所以电子邮件可以用这种格式:
[给我写信](mailto:[email protected])
显示效果:
给我写信 <-- HIT ME
它的显示跟一般的url没有区别,不过你可以点击一下试试。
图片
格式:
![Mou](http://25.io/mou/Mou_128.png)
显示效果:
图片和超链接的唯一区别就是一开始那个感叹号。
源代码
作为一个程序猿,在写一些技术文档的时候,常常苦于无法排版出一份漂亮的代码。在Markdown下,事情就变得很简单了。在Mou下,仅仅是使用个Tab键,就可以编辑代码;而在下,貌似不支持Tab键,不过可以使用4个空格代替(每次换行都要输入若干个空格,真心不方便)。
格式
#include
using namespace std;
int main()
{
cout << "Hello world" << endl;
return 0;
}
显示效果:
#include
using namespace std;
int main()
{
cout << "Hello world" << endl;
return 0;
}
另一个代码格式就更简单了,格式如下:
```
#include
int main()
{
printf("Hello world\n");
return 0;
}
```
显示效果:
#include
int main()
{
printf("Hello world\n");
return 0;
}
在Mou下,代码的编辑就显得非常方便,换行后还能够保持缩进。
还有一个行内代码的格式,如下:
在Linux命令行下,可以使用`rm -rfv 目录名`来强制删除一个文件夹
显示效果如下:
在Linux命令行下,可以使用rm -rfv 目录名
来强制删除一个文件夹
引用
格式:
> 你在桥上看风景
>
> 看风景的人在楼上看你
显示效果:
你在桥上看风景
看风景的人在楼上看你
嵌套引用格式:
格式:
> 你在桥上看风景
>
> > 看风景的人在楼上看你
>
> 明月装饰了你的窗子,你装饰别人的梦
显示效果:
你在桥上看风景
看风景的人在楼上看你
明月装饰了你的窗子,你装饰了别人的梦
表格
格式:
First Header | Second Header | Third Header
:------------|:-------------:|------------:
Content | Content | Content
Left | Center | Right
这个样式还比较美观,如下的格式也能得到同样的显示效果:
First Header | Second Header | Third Header
:-|:-:|-:
Content|Content|Content
Left|Center|Right
显示效果
First Header | Second Header | Third Header |
---|---|---|
Content | Content | Content |
Left | Center | Right |
上面的例子不仅显示了表格是如何写成,还展示了怎样设置文字的对齐方式。
杂项
水平线
格式:
--- (三个及以上即可,一定注意与上一行文字保持一个空行)
*** (同上)
显示效果:
脚注
格式:
This is a footnote.[^1]
This is another footnote. [^2]
[^1]: Footnote 1. (注:脚注显示在文章的末尾)
[^2]: Footnote 2.
显示效果:
This is a footnote.[1]
This is another footnote.[2]
锚点
再一次强调,Markdown与HTML是兼容的,所以很多HTML的功能也能够在Markdown中实现,比如锚点:
格式:
[some text](id:anchor) (注: 设置锚点)
[link](#anchor) (注: 使用锚点)
显示效果:
some text
link
注:此项功能不支持。
最后,编辑好的文档可以通过Mou等Markdown编辑器导出pdf格式的文档保存或者分享给别人。
-
Footnote 1. ↩
-
Footnote 2. ↩