Markdown 语法汇总

Markdown语法汇总

前言

  我们在平时写作的时候,可能你会倾向于使用 Markdown 这种富文本标记语言,因为它是纯文本格式,而且可以很方便的生成具有很强可读性的 html 文件。比如现在很多写作网站、论坛都支持这种格式,比如简书、CSDN,笔记类软件,比如有道笔记等。绝大多数写作类工具也都会支持 Markdown 写法。Markdown 编辑器也有很多,如 Markdown Pad 等流行编辑器,流行操作系统(Win、Mac、Linux)上都有相应的免费 Markdown 编辑器,可自行搜索。大多数流行 IDE 也都有其支持插件,如 Android Studio、XCode 等。

  对于我个人来说,作为一个程序猿,使用 Markdown 写作已经成为一种习惯,比如用笔记软件记笔记,在类似 CSDN 等技术博客网站上发表文章,都使用 Markdown 形式,本人甚至自己写了一个小的基于 Bash 和 Python 的本地 Markdown 解释器,这个解释器可兼容 CSDN 上 Markdown 的所有语法格式,包括表格、UML图等特性,所以我可以自由在本地记录随笔,并且后续可以有选择性地发表。也就是说本地有可以检索的所有笔记的文本文件副本,这对于快速搜索包含特定关键字的某篇日记有很大帮助。

  在一开始使用 Markdown 过程中,偶尔会有忘记语法格式的情况,比如表格该怎么开始来的?代码高亮是三个撇号吗?所以还是要去上网查找语法格式,于是写了这样一篇语法汇总,旨在可以直观呈现效果和对应的语法格式。你可以把它作为自己在使用 Markdown 初期时手头的参考资料,希望对你开始或者熟练使用 Markdown 能有所帮助。

一、标题

在文字写书写不同数量的#可以完成不同的标题,如下:

一级标题

# 一级标题

二级标题

## 二级标题

三级标题

### 三级标题

四级标题

#### 四级标题

五级标题

##### 五级标题

六级标题

###### 六级标题

等号及减号也可以进行标题的书写,不过只能书写二级标题,并且需要写在文字的下面,减号及等号的数量不会影响标题的基数,如下:

二级标题

二级标题
=========

二级标题

二级标题
———

二、列表

无序列表的使用,在符号“-”后加空格使用。如下:

  • 无序列表1
  • 无序列表2
  • 无序列表3

- 无序列表1
- 无序列表2
- 无序列表3

如果要控制列表的层级,则需要在符号“-”前使用空格。如下:

  • 无序列表1
  • 无序列表2
    • 无序列表2.1
      • 列表内容
      • 列表内容

- 无序列表1
- 无序列表2
    - 无序列表2.1
        - 列表内容
        - 列表内容

有序列表的使用,在数字及符号“.”后加空格几个,如下:

  1. 有序列表1
  2. 有序列表2
  3. 有序列表3

1. 有序列表1
2. 有序列表2
3. 有序列表3

有序列表如果要区分层级,也可以在数字前加空格,如下:

  1. 有序列表1
  2. 有序列表2
    1. 有序列表1.1
    2. 有序列表1.2
    3. 有序列表1.3
  3. 有序列表3

1. 有序列表1
2. 有序列表2
    1. 有序列表1.1
    2. 有序列表1.2
    3. 有序列表1.3
3. 有序列表3

三、引用

引用的格式是使用符号“>”后面书写文字,及可以使用引用。如下:

以下是引用示例:

这个是引用
是不是和电子邮件中的
引用格式很像

使用引用的语法:

> 这个是引用
> 是不是和电子邮件中的
> 引用格式很像

以下是多重引用示例:

多层引用
- 一重

多层引用
- 二重

多层引用
- 三重

使用多重引用语法:

> 多层引用
> - 一重
>> 多层引用
>> - 二重
>>> 多层引用
>>> - 三重

四、粗体与斜体

粗体的使用是在需要加粗的文字前后各加两个“”,而斜体的使用则是在需要斜体的文字前后各加一个“”,如果要使用粗体和斜体,那么就是在需要操作的文字前后各加三个“*”。如下:

这个是粗体
这个是斜体
这个是粗体加斜体

**这个是粗体**
*这个是斜体*
***这个是粗体加斜体***

五、链接与图片

在文中直接加链接,中括号中是需要添加链接的文字,圆括号中是需要添加的链接,如下:

link text

[link text](http://example.com/ “optional title”)

在引用中加链接,第一个中括号添加需要添加的文字,第二个中括号中是引用链接的id,之后在引用中,使用id加链接:如下:

link text

[link text][id]
[id]: http://example.com/ “optional title here”

在文中直接引用链接,直接使用尖括号,把链接加入到尖括号中就可以实现,如下:

http://example.com/ or [email protected]

or

插入互联网上图片,格式如下:

这里写图片描述

![这里写图片描述](https://img-blog.csdn.net/xxx.png)
![这里写图片描述][test-icon]
[test-icon]: https://img-blog.csdn.net/xxx.png

括号中的图片地址可以是网络的,在本地使用时也可以是本地的文件路径。

六、代码块

用TAB键起始的段落,会被认为是代码块,如下:


    echo “hello world";

    
        echo “hello world”;
    

如果在一个行内需要引用代码,只要用反引号`引起来就好,如下:

Use the printf() function.

Use the `printf()` function.

七、分割线

可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,同时需要在分隔线的上面空一行。如下:



****


___

八、代码高亮

在需要高亮的代码块的前一行及后一行使用三个反引号“`”,同时第一行反引号后面表面代码块所使用的语言,如下:

以下是一段 ruby 代码块:

require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html

```ruby
require ‘redcarpet’
markdown = Redcarpet.new(“Hello World!”)
puts markdown.to_html
```

以下是一段 bash 代码块:

local mds=$(find . -name *.md)
local count=$(echo ${mds} | wc -w)
if [ ${count} -eq 1 ]; then
    FILE_IN=${mds}
    echo "检索到 md 文档: ${mds}"
else
    printUsage
    exit 1
fi

```bash
local mds=$(find . -name *.md)
local count=$(echo ${mds} | wc -w)
if [ ${count} -eq 1 ]; then
    FILE_IN=${mds}
    echo “检索到 md 文档: ${mds}”
else
    printUsage
    exit 1
fi
```

以下是一段 java 代码块:

public class CodeBlock{
    public static void main(String[] args){
        System.out.println("Test java code block");
    }
}

```java
public class CodeBlock{
    public static void main(String[] args){
        System.out.println(“Test java code block”);
    }
}
```

九、表格

可以使用冒号来定义表格的对齐方式,如下:

Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1

| Tables | Are | Cool |
| ————- |:————-:| —–:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |

十、绘制UML

(这个特性是 CSDN 的 Markdown 书写所支持的语法,其它平台不一定支持或有差异。)

可以渲染时序图:

Created with Raphaël 2.1.2 Alice Alice Bob Bob Hello Bob, how are you? Bob thinks I am good thanks!

```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob–>Alice: I am good thanks!
```

或者流程图:

Created with Raphaël 2.1.2 Start My Operation Yes or No? Good idea catch something... End Stuff My Subroutine yes no yes no

```flow
st=>start: Start|past:>http://www.google.com[blank]
e=>end: End:>http://www.google.com
op1=>operation: My Operation|past
op2=>operation: Stuff|current
sub1=>subroutine: My Subroutine|invalid
cond=>condition: Yes
or No?|approved:>http://www.google.com
c2=>condition: Good idea|rejected
io=>inputoutput: catch something…|request

st->op1(right)->cond
cond(yes, right)->c2
cond(no)->sub1(left)->op1
c2(yes)->io->e
c2(no)->op2->e
```

关于

发布地址:
简书
CSDN

2018-03-10 周六 (于北京·大兴)

你可能感兴趣的:(Markdown)