跳转至

markdown语法

心得

引用其他网站的图片时可能加了防盗链,可以在 img 标签中添加下列元素

1
2
3
referrerpolicy="no-referrer"
下方正则替换规则
arctl = sub("<(img.*?)>", r'<\1 referrerpolicy="no-referrer">\n\n', arctl)

示例带标题

bubble_sort.py
1
2
3
4
5
def bubble_sort(items):
    for i in range(len(items)):
        for j in range(len(items) - 1 - i):
            if items[j] > items[j + 1]:
                items[j], items[j + 1] = items[j + 1], items[j]

横线


***、—、___可以显示横线效果

***


标题

1
2
3
4
5
6
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果如下:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

文本

普通文本

这是一段普通的文本

单行文本

Hello,大家好,我是果冻虾仁。
在一行开头加入1个Tab或者4个空格。

文本块

语法1

在连续几行的文本开头加入1个Tab或者4个空格。

欢迎到访
很高兴见到您
祝您,早上好,中午好,下午好,晚安

语法2

使用一对各三个的反引号:

1
2
3
欢迎到访
我是C++码农
你可以在知乎、CSDN、简书搜索【果冻虾仁】找到我
该语法也可以实现代码高亮,见代码高亮

文字高亮

文字高亮功能能使行内部分文字高亮,使用一对反引号。 语法:

`linux` `网络编程` `socket` `epoll`
效果:linux 网络编程 socket epoll

也适合做一篇文章的tag

换行

直接回车不能换行, 可以在上一行文本后面补两个空格, 这样下一行的文本就换行了。

或者就是在两行文本直接加一个空行。

也能实现换行效果,不过这个行间距有点大。

斜体、粗体、删除线

语法 效果
*斜体1* 斜体1
_斜体2_ 斜体2
**粗体1** 粗体1
__粗体2__ 粗体2
这是一个 ~~删除线~~ 这是一个 删除线
***斜粗体1*** 斜粗体1
___斜粗体2___ 斜粗体2
***~~斜粗体删除线1~~*** 斜粗体删除线1
~~***斜粗体删除线2***~~ 斜粗体删除线2
斜体、粗体、删除线可混合使用

图片

基本格式:

![alt](URL title)
alt和title即对应HTML中的alt和title属性(都可省略): - alt表示图片显示失败时的替换文本 - title表示鼠标悬停在图片时的显示文本(注意这里要加引号)

URL即图片的url地址,如果引用本仓库中的图片,直接使用**相对路径**就可了,如果引用其他github仓库中的图片要注意格式,即:仓库地址/raw/分支名/图片路径,如:

https://gitee.com/eox/HowToCook/blob/master/dishes/drink/%E9%87%91%E8%8F%B2%E5%A3%AB/gin-fizz.jpg

# 语法 效果
1 ![baidu](http://www.baidu.com/img/bdlogo.gif "百度logo") baidu

链接

链接外部URL

# 语法 效果
1 [我的博客](https://img-home.csdnimg.cn/images/20201124032511.png "悬停显示") 我的博客
2 [我的知乎][zhihu] [我的知乎][zhihu]

锚点

其实呢,每一个标题都是一个锚点,和HTML的锚点(#)类似,比如我们

语法 效果
[回到顶部](#top1) 回到顶部

不过要注意,标题中的英文字母都被转化为**小写字母**了。

以前GitHub对中文支持的不好,所以中文标题不能正确识别为锚点,但是现在已经没问题啦!

复选框列表

语法

1
2
3
4
5
6
- [x] 需求分析
- [x] 系统设计
- [x] 详细设计
- [ ] 编码
- [ ] 测试
- [ ] 交付

效果

  • 需求分析
  • 系统设计
  • 详细设计
  • 编码
  • 测试
  • 交付

您可以使用这个功能来标注某个项目各项任务的完成情况。

Tip: 在GitHub的**issue**中使用该语法是可以实时点击复选框来勾选或解除勾选的,而无需修改issue原文。

块引用

**“端”(endian)的起源**以下是Jonathan Swift在1726年关于大小端之争历史的描述:

块引用有多级结构

语法

1
2
3
4
5
> 数据结构
>> 树
>>> 二叉树
>>>> 平衡二叉树
>>>>> 满二叉树

效果

数据结构

二叉树

平衡二叉树

满二叉树

代码高亮

语法

在三个反引号后面加上编程语言的名字,另起一行开始写代码,最后一行再加上三个反引号。

效果

public static void main(String[]args){} //Java
int main(int argc, char *argv[]) //C
echo "hello GitHub" #Bash
document.getElementById("myH1").innerHTML="Welcome to my Homepage"; //javascipt
string &operator+(const string& A,const string& B) //cpp

表格对齐

表格可以指定对齐方式

左对齐 居中 右对齐
col 3 is some wordy text $1600
col 2 is centered $12
zebra stripes are neat $1

diff语法

版本控制的系统中都少不了diff的功能,即展示一个文件内容的增加与删除。 GFM中可以显示的展示diff效果。使用绿色表示新增,红色表示删除。

语法

其语法与代码高亮类似,只是在三个反引号后面写diff, 并且其内容中,可以用 +开头表示新增,-开头表示删除。 另外还有有 !#的语法。

效果

1
2
3
4
+ 人闲桂花落,
- 夜静春山空。
! 月出惊山鸟,
# 时鸣春涧中。

常用HTML语法

markdown是支持HTML语法的,虽然不鼓励大量使用HTML语法,毕竟那样就丧失了markdown的意义,但是有一些HTML语法在写README的时候是很少的补充。

折叠居中

很多地方都会用到居中的效果,比如如下内容将会把一个表格在页面中居中展示:

1
2
3
4
5
6
7
8
<div align="center"  markdown="1">

| 表头1  | 表头2|
| ---------- | -----------|
| 表格单元   | 表格单元   |
| 表格单元   | 表格单元   |

</div>
表头1 表头2
表格单元 表格单元
表格单元 表格单元

其他任意需要居中展示的语法,都可以放在其中。


Linux环境 details markdown="1"
Syntax Description
Header Title
Paragraph Text
文字居中

上标:O2
下标:H2O
下划线 underline

1
2
3
上标:O<sup>2</sup>  
下标:H<sub>2</sub>O  
<u>下划线 underline</u>