LOADING

若你不会魔法,这可能会有些慢

Markdown入门

2023/5/20 教程 Markdown

Markdown入门语法教程

因为看到OJ上很多人不会,就想教一下

你可以查看Markdown官方中文文档
但如果你不喜欢阅读大量的文字,可以看我的博客
如果你有兴趣或需求,可以看KaTeX入门教程

0.Markdown介绍

Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版。

它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。

因简洁、高效、易读、易写,Markdown被大量使用,如Github、Wikipedia、简书等。

----摘自Markdown官方文档

简单的说就是让你的文章更加丰富多彩,可读性更高。

注意,在没有添加 Markdown 插件的网页中,如果要使用 Markdown ,就得将其转换成 HTML 语言。

而在已经添加了 Markdown 插件的网页中,插件会自动识别 Markdwon 格式并转换为 HTML 语言。

这就是为什么当你查看网页源码时,看不到 Markdown 的格式,而是转换后的 HTML 格式。

1.标题语法

在文本的前面添加 # 可以创建标题

# 的数量表示标题的级别,最小是6级

Tip: 一二级标题下会自动添加分隔线

例如


# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题


效果


一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

2.段落语法

在Markdown里,两个回车才是一个段落

即两个段落间空一行

Tip: 有些编译器可能只需要一个回车,但为了养成习惯最好打两个

例如


错误的段落一
错误的段落二

正确的段落三

正确的段落四


效果


错误的段落一错误的段落二

正确的段落三

正确的段落四


3.强调语法

强调即设置文本的 粗体斜体

但我个人喜欢用行内代码块强调

要强调的话只需用 * (星号) _ (下划线) 将文本围起来即可

一个强调符号是斜体,二两个则是粗体,三个就是又粗又斜

Tip: 强调符和文本间最好不要加空格,否则会和列表语法冲突

例如


*看好了,我要让它变斜了!*
**看好了,我要让它变粗了!**
***看好了,我要让它又粗又斜了!***
_看好了,我要让它变斜了!_
__看好了,我要让它变粗了!__
___看好了,我要让它又粗又斜了!___


效果


看好了,我要让它变斜了!
看好了,我要让它变粗了!
看好了,我要让它又粗又斜了!
看好了,我要让它变斜了!
看好了,我要让它变粗了!
看好了,我要让它又粗又斜了!


4.链接语法

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

超链接Markdown语法代码:[超链接显示名](超链接地址 “超链接title”)

例如

[TZHSOJ](https://tzhsoj.com/)

效果

TZHSOJ

5.图片语法

只需在链接语法前加 ! (感叹号)即可

Tip: 图片语法中,中括号内的文本是可选的

例如

![](https://tzhsoj.com/file/1040/.avatar.png)

效果

6.引用语法

> (右尖括号) 在文本前即可引用

例如

> 引用的文字

效果

引用的文字

7.代码语法

用` `可以创建行内代码块

虽然我都是拿来当强调用的

` 还有更进阶的用法, 用```可以创建代码块,使代码更清晰

例如


```

a = int(input(a))

b = int(input(b))

print(a + b)

```


效果


a = int(input(a))
b = int(input(b))
print(a + b)

在第一个```后写上文件后缀,如py, python, cpp可以更改代码高亮

例如


```python

a = int(input(a))

b = int(input(b))

print(a + b)

```

```cpp

#include <iostream>

using namespace std;

int main() {

&nbsp;&nbsp;&nbsp;&nbsp;int a, b;

&nbsp;&nbsp;&nbsp;&nbsp;cin >> a >> b;

&nbsp;&nbsp;&nbsp;&nbsp;cout << a + b;

&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}

```


效果


a = int(input(a))
b = int(input(b))
print(a + b)
#include <iostream>
using namespace std;
int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b;
    return 0;
}

8.列表语法

可以将多个条目组织成有序或无序列表

Tip: 无序列表和有序列表可以相互内嵌

有序列表

只需要用任意数字加一个点就行,Markdown会帮你生成有序列表

例如


1. 睁眼
2. 起床
3. 到卫生间
&nbsp;&nbsp;&nbsp;&nbsp;1. 看一看美丽的自己
&nbsp;&nbsp;&nbsp;&nbsp;234. 刷牙
&nbsp;&nbsp;&nbsp;&nbsp;1283. 洗脸
&nbsp;&nbsp;&nbsp;&nbsp;8. 看一看美丽的自己
2. 出门
1. 吃饭


效果


  1. 睁眼
  2. 起床
  3. 到卫生间
    1. 看一看美丽的自己
    2. 刷牙
    3. 洗脸
    4. 看一看美丽的自己
  4. 出门
  5. 吃饭

无序列表

使用 -(减号) +(加号) *(星号)

Tip: 但同一个无序列表内只能使用同一个符号

例如

* 11111
* 22222
* 33333

- 111
- 111
&nbsp;&nbsp;&nbsp;&nbsp;- 11122
&nbsp;&nbsp;&nbsp;&nbsp;- 11133
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 1113344
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 1113355
- 111

+ 11
+ 11
+ 11

效果

  • 11111
  • 22222
  • 33333
  • 111
  • 111
    • 11122
    • 11122
      • 1113344
      • 1113355
  • 111
  • 11
  • 11
  • 11

9.分隔线语法

在单行内写 *** --- ___ 即可创建分割线(至少三个)

Tip: 为了兼容所有情况,打分隔线时应当在前后都加空白行

例如

***
****
-–
-———–
___
***************************

效果


&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;


&nbsp;&nbsp;&nbsp;&nbsp;


10.转义语法

最后,你肯定好奇为什么我写的例如里面,有符号但样式不变

使用转义字符 \ (反斜杠) 就行

Tip: 转义字符可以转义转义字符

例如

\*1*

\[TZHSOJ](https://tzhsoj.com/)

\!\[](https://tzhsoj.com/file/1040/.avatar.png)

转义图片语法时,转义了感叹号后会被识别为链接语法,需要把中括号也转义了

` \` `

转义代码块里的反引号时,不建议用反斜杠

而应该在双反引号里写反引号

`` ` ``

效果

*1*

[TZHSOJ](https://tzhsoj.com/)

![](https://tzhsoj.com/file/1040/.avatar.png)

转义图片语法时,转义了感叹号后会被识别为链接语法,需要把中括号也转义了

\ `

转义代码块里的反引号时,不建议用反斜杠

而应该在双反引号里写反引号

`

11.表格语法

要添加表,请使用三个或多个连字符(—)创建每列的标题

并使用管道(|)分隔每列。您可以选择在表的任一端添加管道

例如

|基因型|A|a|
|—|—|—|
|A|AA|Aa|
|a|Aa|aa|

效果

基因型 A a
A AA Aa
a Aa aa

Tip: 表格样式视网站而定,我的 Blog 里是蓝色的

12.附录

现在给出 Markdown 支持的所有语言

bash
clojure, cpp, cs, css
dart, dockerfile, diff
erlang
go, gradle, groovy
haskell
java, javascript, json, julia
kotlin
lisp, lua
makefile, markdown, matlab
objectivec
perl, php, python
r, ruby, rust
scala, shell, sql, swift
tex, typescript
verilog, vhdl
xml
yaml