1分钟学会Markdown

发现很多人对markdown都有一种偏见,以为是像HTML一样,是多么复杂的东西。其实markdown真的灰常灰常简单,有多简单呢?简单到看完这篇文章,你就会了。标题说一分钟学会,其实也不夸张,如果你能在一分钟之内看完这篇文章,那么不用一分钟,就会了。
首先介绍一下,markdown是什么东西,他就是在没有任何格式的纯文本的基础上,加上一些特殊的格式(比如粗体,斜体等)的语法。听起来有点像HTML,其实他的工作原理就是将它的一些语法转化成一些HTML tag,只不过使用上比HTML要简单多了。
基本的markdown就8条规则。在日常码字中,这8条规则足以满足95%的需求了。

1. 斜体

如果你想让某些文字变成斜体,只需要用一颗星“*”包围着他们就好了。比如
hello *world*!
将显示成
hello world

2. 粗体

如果你想让某些文字变成粗体,只需要用两颗星“**”包围着他们就好了。比如
hello **world**!
将显示成
hello world

3. 链接

[link title](link url)
比如:
[个人主页](http://www.chriszou.com)
将显示成
个人主页
注意“]”和“(”之间不能有空格

4. 图片

图片与链接之间的区别是,在前面多了一个"!"
![链接描述](image_url)
将显示image_url所链接到的那个图片,如:
![美国队长](https://images4blogs.oss-cn-hangzhou.aliyuncs.com/images/ca.jpg)
将显示:
美国队长

5. 标题

如果你想让文字变得粗大,像文章的标题一样,可以在前面加上“#”,如
# 1分钟学会markdown
将显示成:

1分钟学会markdown

需要注意的是,#和后面的文字之间需要有一个空格。
前面一个“#”为一级标题,是最粗最大的。二级标题为两个“#”,以此类推,共6级

6. 列表

列表有三种,分别对应三种语法:
A) 有序列表,就是分序号1,2,3,4的:

  1. hello
  2. world
  3. end

需要注意的是,数字序号和后面的文字内容之间需要一个空格。
B) 无序列表,用一个实心或空心的点表示一项。
* hello
* world
* end
将变成:

  • hello
  • world
  • end

C) 类似于todo list的checkbox
- [ ] hello
- [ ] world
- [x] end
将变成

  • [ ] hello
  • [ ] world
  • [x] end

同样需要注意空格,“-”和“[”之间要有一个空格,“[”和“]”之间需要一个空格,“]”和后面的文字之间同样需要一个空格。
此外,关于列表,还有一点比较trick,那就是最后在列表的第一项开始之前和最后一项结束之后分别插入一个空行,也就是说,与其他部分用一个空行分隔开来。不然可能不能正常render,像我的blog使用的renderer库(Redcarpet)就是这样,也可能是renderer的原因。
这里有个不幸的消息,好像checkbox语法的支持不是非常广泛,有一些编辑器或者说parser,renderer,whatever,不支持这个语法。

7. 引用

引用一段话,有一个非常漂亮又“一看就知道是引用”的方式,如下:

一个人可以被毁灭,但不能被打败 --海明威

这种格式的写法是
> 一个人可以被毁灭,但不能被打败 --海明威
同样需要注意空格,“>”跟后面的文字之间需要一个空格,如果后面还有不需要被引用的文字,则需要在被引用的文字结束以后在加入一个空行。

8. 代码语法高亮

这个对于码农来说非常实用,三个“`”(就是波浪线下面那个)开始,三个“`”结束,开始的三个“`”后面还可以指定是那种语言,比如:
```ruby
def foo
   puts 'bar'
end
```
将显示成:

def foo
   puts 'bar'
end

这里,同样需要在代码开始前和结束后用一个空行与其他内容分隔开

9. 混合使用

此外,还有最后一条重要的规则,那就是,前面提到的这些规则是可以混合使用的。比如:
***hello***
将显示成
hello
看到这里一些爱思考的孩子可能会开始想,那它是先粗后斜,还是先斜后粗呢?好吧其实我不知道,不管那个先后结果都是一样的。

关于更高级的东西

可以参考 Markdown: Syntax By JOHN GRUBER
这是关于markdown最权威的一片介绍,里面包括了更多更强大的功能,如LaTex公式编辑和表格等等。我到现在也没看过这篇文章,why?因为用不上,我懂这里说的这几条规则就够了。

关于自定义格式

因为markdown的工作原理是将它自身的一些语法转化成HTML的tag,所以你完全可以自定义其中的一些格式,比如说标题(#开头的那些东西)的大小颜色等等。

关于网络应用和编辑器

据我所知,github、StackOverflow支持markdown,当然本站也是支持的,所以你可以直接在下面试一试哦!
至于编辑器,Windows和Linux下的不清楚,Mac下的我试过MacDown,Marxico,Mou,都挺好用的,最后选了Marxico,这是一个国人开发的编辑器,收费,每年70多的样子吧。选它主要是因为可以同步到印象笔记,但后来发现其实问题还是挺多的,经常弹出一个什么“非常字符”的错误导致无法同步。
希望能有更多的地方支持Markdown!

Leave a Reply