Markdown基础语法

206 阅读13分钟

Markdown基础语法

前言部分:这个帖子是我的Markdown学习笔记。目前我还是一个超级小白的小白,为了能快速掌握并熟练Markdown的语法,我决定使用一天通过使用Markdown语法记录详细的学习笔记来达到我上述目的,笔记内容基本为我照着Markdown语法官网(网址:markdown.com.cn/basic-synta… )对着敲的内容。那么作为读者的你可以从我的帖子中得到哪些帮助呢?主要有两点:①如果你是已经会使用Markdown但是不是对所有的语法都十分熟练,你可以把我的帖子当作字典,直接查阅你需要的功能应该使用什么语法实现,虽然我更建议你直接点击上面我贴出的链接在官网查看;②如果你是一个和我一样啥也不懂的小白,你可以模仿我的笔记方式也花一天敲一遍一样的笔记,相信你完成以后就可以熟练掌握了。我想我的帖子更适合超级小白阅读(毕竟我就是超级小白),所以我会从一个小白的角度,猜测作为小白的你有什么前置知识没有掌握,给出你关键词,方便你遇到问题时快速找对提问的方向,能够自己上网搜索找到解决问题的方法。


关于笔记软件:

我自己使用的Markdown笔记软件是vnote,这是一个开源的Markdown笔记软件,也可以免费使用,这边我放一个下载链接(链接在这:github.com/vnotex/vnot… 这是github仓库的链接,所以可能需要你会使用魔法;或者使用百度网盘 pan.baidu.com/share/init?… 提取码:note),感兴趣可以自己百度或者点击链接下载。

1、Markdown标题语法

(1) 含义:一级标题

实际输入:# Heading level 1 实际效果(备注:因为我发现标题语法前面如果输入了其他内容,效果不会生效,所以实际效果转到下一行了):

Heading level

(2)含义:二级标题

实际输入:## Heading level 1 实际效果(实际效果转下一行):

Heading level

(3)含义:三级标题

实际输入:### Heading level 1 实际效果(实际效果转下一行):

Heading level

(4)含义:四级标题

实际输入:#### Heading level 1 实际效果(实际效果转下一行):

Heading level

(5)含义:五级标题

实际输入:##### Heading level 1 实际效果(实际效果转下一行):

Heading level

(6)含义:六级标题

实际输入:###### Heading level 1 实际效果(实际效果转下一行): ####### Heading level

(7)可选语法

还可以在文本下方添加任意数量的 == 号来标识一级标题,或者 -- 号来标识二级标题。(以下例子使用截图代替,如果你在按我开头说的想通过跟着打一遍我的笔记来练习Markdown语法的话,这一部分试一下就好可以跳过)

一级标题.png 二级标题.png

(8)其他建议

标题语法在使用过程中建议“#”和文字中间添加一个空格,官网上的教程说不同的 Markdown 应用程序处理 # 和标题之间的空格方式并不一致,不添加空格可能无法处理,事实证明至少我使用的VNote是这样的。

2、Markdown段落语法

要创建段落,请使用空白行(enter)将一行或多行文本进行分隔。不要用空格(spaces)或制表符( tabs)缩进段落。使用空格(spaces)并不会使段落缩进,不会产生效果段落依旧顶格;此外四个空格(spaces)或者一个制表符( tabs)会将文本变为代码模式,详细见下文“7、Markdown代码语法 (3)代码块部分” 此外,多行空白行只能产生一个空白行的效果。

该部分内容就不进行展示了。

3、Markdown换行语法

在一行的末尾添加两个或多个空格,然后按回车键,即可创建一个换行(<br>)。

但是几乎每个 Markdown 应用程序都支持两个或多个空格进行换行,称为 结尾空格(trailing whitespace) 的方式,但这是有争议的,因为很难在编辑器中直接看到空格,并且很多人在每个句子后面都会有意或无意地添加两个空格。由于这个原因,你可能要使用除结尾空格以外的其它方式来换行。幸运的是,几乎每个 Markdown 应用程序都支持另一种换行方式:HTML 的
标签。

为了兼容性,请在行尾添加“结尾空格”或 HTML 的
标签来实现换行。

还有两种其他方式并不推荐使用。CommonMark 和其它几种轻量级标记语言支持在行尾添加反斜杠 () 的方式实现换行,但是并非所有 Markdown 应用程序都支持此种方式,因此从兼容性的角度来看,不推荐使用。并且至少有两种轻量级标记语言支持无须在行尾添加任何内容,只须键入回车键(return)即可实现换行。 (ps:这一部分全是复制黏贴官网的,想看也可以直接上官网看教程。)

4、Markdown强调语法

通过将文本设置为粗体或斜体来强调其重要性。

(1) 粗体(Bold)

文本加粗

实际输入:

加粗文本
方法一:我是没加粗的文本,**我是加粗的文本**(使用**号)
方法二:我是没加粗的文本,__我是加粗的文本__(使用两个短下划线)

实际效果: 我是没加粗的文本,我是加粗的文本

一个单词或短语的中间部分加粗

实际输入:

一个单词或短语的中间部分加粗
加星号:buf**fer**fly
下滑横线:buf__fer__fly(使用两个短下划线没有用)

实际效果: 加星号:bufferfly 下滑横线:buf__fer__fly(使用两个短下划线没有用)

(2)斜体(Italic)

文本字体倾斜

实际输入:

文本字体倾斜
方法一:我是没字体倾斜的文本,*我是字体倾斜的文本*(使用*号)
方法二:我是没字体倾斜的文本,_我是字体倾斜的文本_(使用一个短下划线)

实际效果: 我是没加粗的文本,我是字体倾斜的文本

一个单词或短语的中间部分字体倾斜

实际输入:

一个单词或短语的中间部分字体倾斜
加星号:buf*fer*fly
下滑横线:buf_fer_fly(使用一个短下划线没有用)

实际效果: 加星号:bufferfly 下滑横线:buf_fer_fly(使用一个短下划线没有用)

(3) 粗体(Bold)和斜体(Italic)同时使用

语法同上类似但使用3个星号

***我是处理过的文字***,我是没处理过的文字
___我是处理过的文字___,我是没处理过的文字
   buf***fer***fly

实际效果: 我是处理过的文字,我是没处理过的文字 我是处理过的文字,我是没处理过的文字 bufferfly

(4)删除线

您可以通过在单词中心放置一条水平线来删除单词。此功能使您可以指示某些单词是一个错误,要从文档中删除。若要删除单词,请在单词前后使用两个波浪号~~。

~~我被删除辣!~~

实际效果:

我被删除辣!

5、Markdown引用语法

(1)单段落引用

要创建块引用,请在段落前添加一个 > 符号。

>祈求上天赐予我平静的心,接受不可改变的事,给我勇气改变可以改变的事,并赐予我分辨这两者的智慧。

实际效果:

祈求上天赐予我平静的心,接受不可改变的事,给我勇气改变可以改变的事,并赐予我分辨这两者的智慧。

(2)多段引用

块引用可以包含多个段落。为段落之间的空白行添加一个 > 符号。

>祈求上天赐予我平静的心,接受不可改变的事,给我勇气改变可以改变的事,并赐予我分辨这两者的智慧。
>
>——古罗马皇帝奥勒留

实际效果:

祈求上天赐予我平静的心,接受不可改变的事,给我勇气改变可以改变的事,并赐予我分辨这两者的智慧。

——古罗马皇帝奥勒留

(3)嵌套块引用

块引用可以嵌套。在要嵌套的段落前添加一个 >> 符号。

>祈求上天赐予我平静的心,接受不可改变的事,给我勇气改变可以改变的事,并赐予我分辨这两者的智慧。
>
>>——古罗马皇帝奥勒留

实际效果:

祈求上天赐予我平静的心,接受不可改变的事,给我勇气改变可以改变的事,并赐予我分辨这两者的智慧。

——古罗马皇帝奥勒留


(4)带有其它元素的块引用

块引用可以包含其他 Markdown 格式的元素。并非所有元素都可以使用,你需要进行实验以查看哪些元素有效。

> #### The quarterly results look great!
>
> - Revenue was off the chart.
> - Profits were higher than ever.
>
>  *Everything* is going according to **plan**.

The quarterly results look great!

>
> - Revenue was off the chart.
> - Profits were higher than ever.
>
>  *Everything* is going according to **plan**.

6、Markdown列表语法

(1)有序列表

要创建有序列表,请在每个列表项前添加数字并紧跟一个英文句点。数字不必按数学顺序排列,但是列表应当以数字 1 起始。

1. First item
2. Second item
3. Third item
4. Fourth item
-------------
1. First item
8. Second item
3. Third item
5. Fourth item
-----------------
1. First item
2. Second item
3. Third item
    1. Indented item
    2. Indented item
4. Fourth item

实际效果

  1. First item
  2. Second item
  3. Third item
  4. Fourth item

  1. First item
  2. Second item
  3. Third item
  4. Fourth item

  1. First item
  2. Second item
  3. Third item
    1. Indented item
    2. Indented item
  4. Fourth item

(2)无序列表

要创建无序列表,请在每个列表项前面添加破折号 (-)、星号 (*) 或加号 (+) 。缩进一个或多个列表项可创建嵌套列表。

- First item
- Second item
- Third item
- Fourth item
-------------
* First item
* Second item
* Third item
* Fourth item
-----------------
+ First item
+ Second item
+ Third item
    + Indented item
    + Indented item
+ Fourth item

实际效果:

  • First item
  • Second item
  • Third item
  • Fourth item

  • First item
  • Second item
  • Third item
  • Fourth item

  • First item
  • Second item
  • Third item
  • Indented item
    • Indented item
    • Fourth item

7、Markdown代码语法

(1)含义:将单词或短语表示为代码

说明:要将单词或者短语表示为代码,请将其包裹在反引号" ` " (小tip:如何输入反引号?在英文输入模式下点击数字1左边的按钮)

实际输入: `<ol><li>First item</li><li>Second item</li><li>Third item</li><li>Fourth item</li></ol>` 实际效果:<ol><li>First item</li><li>Second item</li><li>Third item</li><li>Fourth item</li></ol>

(2)转义反引号

说明:如果你要表示为代码的单词或短语中包含一个或多个反引号,则可以通过将单词或短语包裹在双反引号( ``)中。 (小tip:如果你想转义双反引号,那就是和上面反过来,用单反引号包裹双反引号,此外,单反引号和双反引号之间要间隔一个空格,不然就成了三反引号哦)

实际输入:`` Usecodein your Markdown file. `` 实际效果:Use `code` in your Markdown file.

(3)代码块

说明:要创建代码块,请将代码块的每一行缩进至少四个空格或一个制表符。 实际输入:

    <html>
        <head>
        </head>
    </html>

实际效果:

<html>
    <head>
    </head>
</html>

8、Markdown分隔线语法

要创建分隔线,请在单独一行上使用三个或多个星号 (***)、破折号 (---) 或下划线 (___) ,并且不能包含其他内容。

***

---

_________________

以上三个分隔线的渲染效果看起来都一样,如下所示:


为了兼容性,请在分隔线的前后均添加空白行。

9、Markdown链接语法

链接文本放在中括号内,链接地址放在后面的括号中,链接title可选。

超链接Markdown语法代码:[超链接显示名](超链接地址 "超链接title")
这是一个链接例子: [Markdown语法](https://markdown.com.cn)。

这是一个链接 Markdown语法

由于关于链接的组合众多但原理较为重复,这边建议直接电机官网查看具体内容。

10、Markdown图片语法

(1)添加图片

要添加图像,请使用感叹号 (!), 然后在方括号增加替代文本,图片链接放在圆括号里,括号里的链接后可以增加一个可选的图片标题文本。

插入图片Markdown语法代码:![图片alt](图片链接 "图片title")

(小tip: ①图片路径的表达方式如果自己不知道怎么写的话,可以上网搜索“相路径”和“绝对路径”这几个关键词去了解一下相关知识。 ②在这里直接使用html标签<img src="../img/haidaoqianben.jpg">也会有相同的效果,并且我本人也更喜欢使用html标签来引入图片,因为使用标签的方式可以控制图片大小。具体如何做我找到了一篇别人的文章共大家参考:zhuanlan.zhihu.com/p/666644838

案例中的实际输入:![夹点私货,这是我非常喜欢的一个画师的作品](./img/haidaoqianben.jpg "海岛千本老师的画")。
 

haidaoqianben.jpg

11、Markdown转义字符语法

(1)普通的字符转义

要显示原本用于格式化 Markdown 文档的字符,请在字符前面添加反斜杠字符 \ 。

 \* Without the backslash, this would be a bullet in an unordered list.
 

实际效果: * Without the backslash, this would be a bullet in an unordered list.

(2)以下列出的字符都可以通过使用反斜杠字符从而达到转义目的。

\ 、 * _ {} [] () # + - . ! |

(3)特殊字符自动转义

在 HTML 文件中,有两个字符需要特殊处理: < 和 & 。 < 符号用于起始标签,& 符号则用于标记 HTML 实体,如果你只是想要使用这些符号,你必须要使用实体的形式,像是 < 和 &。

& 符号其实很容易让写作网页文件的人感到困扰,如果你要打「AT&T」 ,你必须要写成「AT&T」 ,还得转换网址内的 & 符号,如果你要链接到:

http://images.google.com/images?num=30&q=larry+bird

你需要写成

http://images.google.com/images?num=30&amp;q=larry+bird

才能放到链接标签的 href 属性里。不用说也知道这很容易忘记,这也可能是 HTML 标准检查所检查到的错误中,数量最多的。

12、表格

(1)表格

要添加表,请使用三个或多个连字符(---)创建每列的标题,并使用管道(|)分隔每列。您可以选择在表的任一端添加管道。

|  Syntax   | Description |
| --------- | ----------- |
| Header    | Title       |
| Paragraph | Text        |

实际效果:

SyntaxDescription
HeaderTitle
ParagraphText

(2)对齐

您可以通过在标题行中的连字符的左侧,右侧或两侧添加冒号(:),将列中的文本对齐到左侧,右侧或中心。

| Syntax    | Description |   Test Text |
| :-------- | :---------: | ----------: |
| Header    |    Title    | Here's this |
| Paragraph |    Text     |    And more |

实际效果:

SyntaxDescriptionTest Text
HeaderTitleHere's this
ParagraphTextAnd more

13、Markdown内嵌HTML标签

HTML 的行级內联标签如 <span><cite><del> 不受限制,可以在 Markdown 的段落、列表或是标题里任意使用。依照个人习惯,甚至可以不用 Markdown 格式,而采用 HTML 标签来格式化。例如:如果比较喜欢 HTML 的 <a><img> 标签,可以直接使用这些标签,而不用 Markdown 提供的链接或是图片语法。当你需要更改元素的属性时(例如为文本指定颜色或更改图像的宽度),使用 HTML 标签更方便些。

这一部分的前置知识是html,如有需要建议自行百度学习。