来源:obsidian中文社区 @ yikelee
<br>
<br>
有朋友问我 ,Markdown 的效果 用Word 完全可以复现,甚至功能更多,那为何要用 Markdown 呢?
答:
MD的优势:
用 Markdown 写东西,记住一个原则
能用10个字搞定的,绝不用11个字
经常使用 Markdown 书写的朋友,也许会有一种奇妙的感触
关于标识符的滥用
这个其实是写在最后的,之所以放在这里,是因为它很重要!
如果你有一定的MD语法基础,可以直接[[#19 避免标识符的滥用|点击跳转]]
<br>
<br><br>
<br>
这是一段普通的文本
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
<br>
[toc]
,会根据 标题 自动生成目录 ( Table of Content )输入下方内容会生成一个目录:
[toc]
<br><br>
<br>
*
+ 文本内容 + *
_
+ 文本内容 + _
( 下划线 )这是一段普通文本
*这里是一段斜体文本*
_这也是一段斜体文本_
这是一段普通文本
这里是一段斜体文本
这也是一段斜体文本
<br>
粗体 的格式:
**
+ 文本内容 + **
__
+ 文本内容 + __
(这里是两个 <kbd>_</kbd> )说明:
这是一段普通文本
**这里是一段加粗文本**
__这也是一段加粗文本__
这是一段普通文本
这里是一段加粗文本
这也是一段加粗文本
<br>
粗斜体 的格式:
***
+ 文本内容 + ***
___
+ 文本内容 + ___
( 这里是3个 <kbd>_</kbd> )**_
+ 文本内容 + _**
__*
+ 文本内容 + *__
*__
+ 文本内容 + __*
_**
+ 文本内容 + **_
说明:
这是一段普通文本
***粗斜体文本1***
___粗斜体文本2___
**_粗斜体文本3_**
__*粗斜体文本4*__
*__粗斜体文本5__*
_**粗斜体文本6**_
这是一段普通文本
粗斜体文本1
粗斜体文本2
粗斜体文本3
粗斜体文本4
粗斜体文本5
粗斜体文本6
<br>
斜体中包含粗体 的格式:
*
+ 斜体文本 + **
+ 粗体文本 + **
+ 斜体文本 + *
_
+ 斜体文本 + __
+ 粗体文本 + __
+ 斜体文本 + _
( 这里是两个 <kbd>_</kbd> )*
+ 斜体文本 + __
+ 粗体文本 + __
+ 斜体文本 + *
_
+ 斜体文本 + **
+ 粗体文本 + **
+ 斜体文本 + _
说明:
这是一段普通文本
*这里是一段斜体中**包含粗体**的文字*
_这也是一段斜体中**包含粗体**的文字_
*这又是一段斜体中__包含粗体__的文字*
_这还是一段斜体中**包含粗体**的文字_
这是一段普通文本
这里是一段斜体中包含粗体的文字
这也是一段斜体中包含粗体的文字
这又是一段斜体中__包含粗体__的文字
这还是一段斜体中包含粗体的文字
<br>
**
+ 粗体文本 + *
+ 斜体文本 + *
+ 粗体文本 + **
__
+ 粗体文本 + _
+ 斜体文本 + _
+ 粗体文本 + __
( 这里是两个 <kbd>_</kbd> )**
+ 粗体文本 + _
+ 斜体文本 + _
+ 粗体文本 + **
__
+ 粗体文本 + *
+ 斜体文本 + *
+ 粗体文本 + __
这是一段普通文本
**这里是一段粗体中*包含斜体*的文字**
__这也是一段粗体中_包含斜体_的文字__
**这又是一段粗体中_包含斜体_的文字**
__这还是一段粗体中*包含斜体*的文字__
这是一段普通文本
这里是一段粗体中包含斜体的文字
这也是一段粗体中_包含斜体_的文字
这又是一段粗体中_包含斜体_的文字
这还是一段粗体中包含斜体的文字
<br><br>
<br>
*
或 -
组成下面是一条水平分割线:
---
***
<br>
~~
+ 文本内容 +~~
首尾各加两个 <kbd>~</kbd> 波浪号~~这是一段加了删除线的文本~~
这是一段加了删除线的文本
<br>
<u>
+ 文本内容 + </u>
<u>这是一段加了下划线的文本</u>
<u>这是一段加了下划线的文本</u>
<br><br>
<br>
有序列表 的格式:
1.
+ <kbd>空格</kbd> + 文本内容说明:
1. 这是第一个有序列表 <!-- (Enter) -->
2. 这是第二个有序列表 <!-- (Enter) -->
3. 这是第三个有序列表
1. 这是第一个有序列表 <!-- (Shift + Enter) -->
这是同个列表下,另起一行的文本内容 <!-- (Enter) -->
2. 这是第二个有序列表 <!-- (Shift + Enter) -->
这是同个列表下,另起一行的文本内容
这是第一个有序列表
这是第二个有序列表
这是第三个有序列表
这是第一个有序列表
这是同个列表下,另起一行的文本内容
这是第二个有序列表
这是同个列表下,另起一行的文本内容
数字
+ .
+ 内容- 10.这是无序列表下,整十数排列的内容
- 20.这是无序列表下,整十数排列的内容
- 30.这是无序列表下,整十数排列的内容
- 100.这是无序列表下,整百数排列的内容
- 200.这是无序列表下,整百数排列的内容
- 300.这是无序列表下,整百数排列的内容
效果:
<br>
<br>
- 这是第1个无序列表 <!-- (Enter) -->
- 这是第2个无序列表 <!-- (Enter) -->
- 这是第3个无序列表
- 这是第一个无序列表 <!-- (Shift + Enter) -->
这是同个列表下,另起一行的文本内容
- 这是第二个无序列表 <!-- (Shift + Enter) -->
这是同个列表下,另起一行的文本内容
<br>
<br>
>这是第一段引用文本的第1行 <!-- (Enter) -->
>这是第一段引用文本的第2行 <!-- (Enter) -->
<!-- (Enter) -->
>这是第二段引用文本的第1行 <!-- (Enter) -->
>这是第二段引用文本内第2行
这是第一段引用文本的第1行
这是第一段引用文本的第2行
这是第二段引用文本的第1行
这是第二段引用文本的第2行
<br>
在列表和引用的书写过程中,我们需要利用 缩进 与 退格 ,让文章肌理分明,更具层级
缩进:
退格:
<br>
1. 第一级有序列表1 <!-- (Enter) -->
1. 第二级有序列表1 <!-- 写文本之前,先( Tab 或 Ctrl + ] ) ;写完文本后,再(Enter) -->
2. 第二级有序列表2 <!-- (Enter) -->
2. 第一级有序列表2 <!-- 写文本前,先 ( Shift + Tab 或 Ctrl + [ ) -->
<br>
- 第一级无序列表1 <!-- (Enter) -->
- 第二级无序列表1 <!-- 写文本前,先( Tab 或 Ctrl + ] ) ;写完后,再(Enter) -->
- 第二级无序列表2 <!-- (Enter) -->
- 第一级无序列表2 <!-- 写文本前,先 ( Shift + Tab 或 Ctrl + [ ) -->
<br>
>第一级引用1 <!-- (enter) -->
>>第二级引用1 <!-- 先打1个 > (这里的第一个 > 是会自动补充的,只需额外增补1个即可) ,再(enter) -->
>>第二级引用2 <!-- (enter) -->
>第一级引用2 <!-- 写文本前,先 ( Shift + Tab 或 Ctrl + [ ) -->
第一级引用1
第二级引用1
第二级引用2第一级引用2
<br>
Shift
+ Enter
,配合方向键,在多个 >
之间灵活断行>
Gif演示1:
<br>
<br>
111
222
333
444
555
<br>
Gif演示2:
<br>
<br>
111
222
333
444
555
666
777
<br>
1. 第一级 有序列表1 <!-- (Shift + Enter) -->
- 第二级 无序列表1 <!-- (Shift + Enter) -->
>第三级 引用1 <!-- (Enter) -->
- 第四级 无序列表2 <!-- (Shift + Enter) -->
1. 第五级 有序列表2 <!-- (Enter) -->
- 第四级 无序列表3 <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) ;写完后再 (Enter) -->
>第三级 引用2 <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) ;写完后再 (Enter × 2) -->
- 第二级 无序列表4 <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) -->
2. 第一级 有序列表3 <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) -->
第一级 有序列表1
第二级 无序列表1
第三级 引用1
- 第四级 无序列表2
- 第五级 有序列表2
- 第四级 无序列表3
第三级 引用2
第二级 无序列表4
第一级 有序列表3
Tab
和 Shift + tab
会无法 缩进 退格
Ctrl + ]
与 Ctrl + [
来解决问题- - 这是第一段就被缩进的列表
- 这是第二段被再次缩进的列表 <!-- 这里需按两次 Ctrl + ] ,Tab键是无效的 -->
- 这是第三段列表 <!-- Ctrl + [ -->
<br><br>
<br>
"提示信息文本"
是可选项,一般不会填鼠标左键点击
才可跳转链接,不过也有 直接鼠标点击 就能跳转的[显示文本内容](链接地址 "提示信息文本")
[百度一下,你就知道](http://www.baidu.com "按住Ctrl点击跳转百度")
示范:
<br>
<br><br>
!
代表 可见" "
内[ ]
方括号里的文字信息在 Markdown 没啥实质的作用,只是方便在源代码模式下,知道这个图片是什么,在渲染界面是不会显示的。有点类似于HTML img标签 里的 alt属性。![文字信息](图片链接 "提示文本信息")
![湘湖1](https://z3.ax1x.com/2021/08/06/fuNkXq.jpg "湘湖一角")
补充:
Ctrl + C
黏贴,Ctrl + V
复制 就可以style="zoom: %;"
,这里数值可以自己修改![[图片名]]
![[图片名|宽度数值]]
![[图片名|宽度数值x高度数值]]
x
是 英文字母x![图床|宽度数值](链接地址)
<br><br>
Ctrl + T
即可快速插入表格,自由定义样式|这里是表头1|这里是表头2|这里是表头3|
|:-|:-:|-:| <!--区分表头和表格主体,:代表文本对齐方式,分别是左对齐,居中对齐,右对齐-->
|单元格数据1|单元格数据2|单元格数据3|
|单元格数据4|单元格数据5|单元格数据6|
这里是表头1 | 这里是表头2 | 这里是表头3 |
---|---|---|
单元格数据1 | 单元格数据2 | 单元格数据3 |
单元格数据4 | 单元格数据5 | 单元格数据6 |
<br>
如下图所示:
表头1 | 表头2 |
---|---|
这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长的文本 | 普通文本 |
<br>
( 换行标签 )| 表头1 | 表头2 |
|:-:|:-:|
|这是第一行文本<br>这是另起一行的文本|普通文本|
表头1 | 表头2 |
---|---|
这是第一行文本<br>这是另起一行的文本 | 普通文本 |
<br><br>
<br>
着重标记
**,突出显示内容`这是一段行内代码`
`<table border="1" cellspacing="0" width="500" height="500">`
`print("Hello, World!")`
`这是一行突出显示的文本内容`
<table border="1" cellspacing="0" width="500" height="500">
<br>
print("Hello, World!")
<br>
这是一行突出显示的文本内容
<br>
```
+ 语言种类```
~~~
+ 语言种类~~~
```语言种类
代码内容
代码内容
代码内容
```
下面是HTML代码块
```html
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
```
下面是CSS代码块
```css
.box {
width: 600px;
height: 400px;
margin: 100px auto;
background-image: linear-gradient(black 33.3%,red 33.3%, red 66.6%, yellow 66.6%, yellow);
}
```
下面是JavaScript代码块
```js
// 定义一个30个整数的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程
let arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
let newarr = [];
for (let i = 0, count = 0, sum = 0, len = arr.length; i < len; i++) {
sum += arr.shift();
count++;
if (count % 5 === 0) {
newarr.push(sum / 5);
sum = 0;
}
}
console.log(newarr);
let arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
let newarr = [];
for (let i = 0, len = arr.length; i < len / 5; i++) {
let subarr = arr.splice(0, 5)
for (let j = 0, sum = 0; j < subarr.length; j++) {
sum += subarr[j];
}
newarr.push(sum / 5);
}
console.log(newarr);
```
下面是Python代码块
```python
#!/usr/bin/python
# -*- coding: UTF-8 -*-
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print i, " 是素数"
i = i + 1
print "Good bye!"
```
下面是一块突出显示的文本
```txt
这是一段
突出显示的
文本内容
```
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
.box {
width: 600px;
height: 400px;
margin: 100px auto;
background-image: linear-gradient(black 33.3%, red 33.3%, red 66.6%, yellow 66.6%, yellow);
}
// 定义一个30个整数的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程
let arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
let newarr = [];
for (let i = 0, count = 0, sum = 0, len = arr.length; i < len; i++) {
sum += arr.shift();
count++;
if (count % 5 === 0) {
newarr.push(sum / 5);
sum = 0;
}
}
console.log(newarr);
let arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
let newarr = [];
for (let i = 0, len = arr.length; i < len / 5; i++) {
let subarr = arr.splice(0, 5)
for (let j = 0, sum = 0; j < subarr.length; j++) {
sum += subarr[j];
}
newarr.push(sum / 5);
}
console.log(newarr);
#!/usr/bin/python
# -*- coding: UTF-8 -*-
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print i, " 是素数"
i = i + 1
print "Good bye!"
这是一段
突出显示的
文本内容
<br>
<br>
格式:
`
包裹 3个 `
````txt
```js
// 3. 输出 100以内(不包括100) 所有偶数的和
// 这类求和问题的核心 : 利用循环 (总和 = 旧数的和 + 新数)
let sum = 0;
for (let i = 1, sum = 0; i < 100; i++) {
if (i % 2 == 0) {
// 筛选偶数
sum += i; // sum = sum + i // 累加偶数并赋值给sum
// sum为(旧的,已经进入循环的数)的和,i 为新进入循环的数。当加到(最后一个新数i)时,sum就是最后的 总和
}
}
console.log(sum); // 打印总和
```
````
<br>
如果要再套一层,就在最外层 加 5个 `
,以此类推……
<br>
首尾各用 两个反引号`
+ 空格
包裹
格式:
``+空格+带`的内容+空格+`` <!-- 不要忘记前后的两个空格 -->
`` 这是一段能显示`反引号`的行内代码 ``
效果:
这是一段能显示`反引号`的行内代码
<br><br>
任务列表 的格式:
[ ]
+<kbd>空格</kbd> + 任务列表内容 ( 中括号[ ]
里面必须有个空格)√
,变成 已办
√
( 例如 Obsidian )补充:
Ctrl + Enter
,即可生成一个待办列表
Ctrl + Enter
,会在待办列表 打 √
格式:
- [ ] 待办任务列表1
- [ ] 待办任务列表2
- [x] 已办任务列表1 <!-- 英文字母X -->
- [x] 已办任务列表2
<br>
-
+ <kbd>空格</kbd> + <kbd>Ctrl</kbd> + <kbd>Enter</kbd> +待办文本内容Ctrl + enter
)<br>
<br> <br>
Markdown 的 注释 和 HMTL 一样,注释的内容在 渲染界面 不可见 (部分编辑器可见)
<!-- 这里是注释的内容 -->
%%这是Obsidian的注释内容%%
<!-- 这里是一行注释 -->
<!--
这里是
一段
假装有
很多行的
注释
-->
%%这是一行Obsidian里的注释%%
%%
这里是
一段
假装有
很多行的
Obsidian里的
注释
%%
<!-- 这里是一行注释 -->
<!--
这里是一段
假装有
很多行的
注释
-->
%%这是一行Obsidian里的注释%%
%%
这里是
一段
假装有
很多行的
Obsidian里的
注释
%%
<br><br>
<br>
[显示文本内容]
+ [变量名]
[变量名]
+ <kbd>:</kbd> + <kbd>空格</kbd> + 链接地址 (这个**<kbd>空格</kbd>** 不打也没事)[百度一下,你就知道][度娘]
[知乎-有问题,就会有答案][知乎]
<!-- 这里是变量区域 -->
[度娘]: http://www.baidu.com
[知乎]: https://www.zhihu.com
<br>
[^脚注代号]
( 脚注代号会直接显示在渲染界面 )
[^脚注代号]
+ <kbd>:</kbd> + <kbd>空格</kbd> + 脚注内容 (这个 <kbd>空格</kbd> 不打也没事)鲁迅原名是什么[^1] ,浙江哪里人[^2]
<!-- 这里是变量区域 -->
[^1]: 周树人
[^2]: 绍兴人
<br><br>
<br>
键盘文本的 格式:
<kbd>键盘文本</kbd>
<kbd>Ctrl</kbd> + <kbd>X</kbd>
效果:
说明:
加粗键盘文本的格式有两种:
<kbd>**键盘文本**</kbd>
**<kbd>ctrl + x</kbd>**
效果:
<br>
放大文本 的格式:
这是一段普通文本
<big>这是一段放大文本</big>
效果:
**<big>这是一段放大粗体文本</big>**
<big>**这是一段放大粗体文本**</big>
<br>
这是一段普通文本
<small>这是一段缩小文本</small>
<small>*这是一段缩小斜体文本*</small>
*<small>这是一段缩小斜体文本</small>*
<br>
<font color=orange>这是一段橘色文本</font>
<br>
**<font color=teal>这是一段加粗的水鸭色文本</font>**
<font color=teal>**这是一段加粗的水鸭色文本**</font>
<strong style="color:teal;">这是一段加粗的水鸭色文本</strong>
(标记略复杂,不是很推荐)<br>
**
换成 *
即可*<font color=teal>This is an italic teal text</font>*
<font color=teal>*This is an italic teal text*</font>
<br>
***
***<font color=teal>This is a bold italic teal text</font>***
<font color=teal>***This is a bold italic teal text***</font>
<br>
#注意 多彩文本尽量慎用,Markdown 的核心就是 简洁精炼,注重 实质内容,而非花哨的 颜色样式
<br><br>
<br>
==这里是一段高亮文本==
<br>
x^2^
<sup>这里是上标内容</sup>
X<sup>2</sup>
<br>
H~2~O
<sub>这里是下标内容</sub>
H<sub>2</sub>O
<br>
用一对 <kbd>:</kbd> 包裹,里面是 Emoji 符号的 语义化文本 ( Typora编辑器 中,输入 :
就会带提示器 )
:smile:
:sweat:
:cat:
:woman_cartwheeling:
<br>
<br><br>
\
的作用是让标识符 转义 变为一个普通字符,完成这个效果后,反斜线会自动隐藏\
,\
不会自动隐藏\
显示出来,可以在反斜线前面再加一个 <kbd>\</kbd> ,用它自己来转义自己
这里紧跟在标识符前面的反斜线\\*会被转义成普通字符显示出来,不会自动隐藏,且这段文件会是斜体*
<br>
*
号 包裹的文本内容,能够正常显示 *
,且文本不改变格式
\*这段文本被一对星号包裹,但不会倾斜\*
\*\*这段文本被2对星号包裹,但不会加粗\*\*
\*\*\*这段文本被3对星号包裹,但它既不倾斜也不加粗\*\*\*
<br>
|表头1|表头2|
|-|-|
|这里的文本被\|分隔|这里的文本也被\|分隔|
表头1 | 表头2 |
---|---|
这里的文本被|分隔 | 这里的文本也被|分隔 |
<br>
#补充 该技巧可用于 Obsidian 表格内 双链的文本修饰
文本修饰:
在 双链[[ ]]
内 以 |
引导的内容
[[链接的内容|文本修饰]]
表格内的格式:
在 |
前面加上 \
[[表格内的链接内容\|文本修饰]]
示例:
| 表头1 | 表头2 |
|:---------------------------------------:|:---------------------------------------------------:|
| [[#例2 表格内 单元格中的竖杠\|单元格中的竖杠]] | [[#例3 不会变成代码的反引号\|不会变成代码的反引号]] |
效果:
表头1 | 表头2 |
---|---|
[[#例2 表格内 单元格中的竖杠|单元格中的竖杠]] | [[#例3 不会变成代码的反引号|不会变成代码的反引号]] |
<br>
使用 转义符号\
让 反引号`
变成普通字符,不再具有[[#7 1 行内代码|行内代码]]的标识符功能
格式:
\`这段被反引号包裹的内容不会变成行内代码\`
效果:
`这段被反引号包裹的内容不会变成行内代码`
<br>
在 网页链接 的 显示文本内容 中,使用 中括号 [ ]
[链接里的 \[中括号\] 能被正常显示](https://www.runoob.com)
<br>
- 出处
如下所示:
The Web, the Tree, and the String.
写作之难,在于把网状的思考,用树状结构,体现在线性展开的语句里。
- 史蒂芬·平克
解决方法:
>The Web, the Tree, and the String.
>写作之难,在于把网状的思考,用树状结构,体现在线性展开的语句里。
>\- 史蒂芬·平克 <!-- 加上转义符号 \ , 不会变成无序列表 -->
效果:
The Web, the Tree, and the String.
写作之难,在于把网状的思考,用树状结构,体现在线性展开的语句里。
- 史蒂芬·平克
<br>
让 #
不被识别为标题标识符
格式:
\# 这里的内容不会被识别为标题
效果:
# 这里的内容不会被识别为标题
<br>
在 Obsidian 中 注释是前后各两个 %
号
使用 转义符号\
,让 %%
作为普通字符显示出来,不具备注释的功能
\%\%这里的内容可以被显示喔\%\%
<br>
Obsidian 的双向链格式是2个方括号 [[ ]]
(双方),使用 转义符号\
,让 [
]
不再具有 双链功能
格式:
\[\[这段文本被双方包裹,但不是一个双向链\]\]
效果:
[[这段文本被双方包裹,但不是一个双向链]]
<br>
使用转义符号\
,让中括号
可以作为显示文本
在[[#5 1 网页链接|网页链接]]中显示出来
格式:
[\[这是一个带中括号的网页链接显示文本,点击会跳转至百度\]](https://www.baidu.com/)
效果:
<br>
文本修饰的 中括号[ ]
不需要使用 转义符号\
示范:
[[#例8 木有链接的双链|[这是一个带中括号的文本修饰]]]
效果:
[[#例8 木有链接的双链|[这是一个带中括号的文本修饰]]]
<br><br>
<br>
这里有 6个空格分隔
<br>
场景1:
<br>
标签,在 单独一行 中使用,增加额外的空行间距<br><br><br><br><br>
<br>
标签的时候,如果前后有标题标识符或者列表标识符,确保 br元素 前后两行都是空白行格式:
这里是第一段文本
<br><br><br><br><br> <!-- 这里插入了5个空行间距 -->
这里是第二段文本
效果:
这里是第一段文本
<br><br><br><br><br>
这里是第二段文本
<br><br>
场景2:
- 这是一段无序列表
<br> <!-- 插入一个空行间距,需单独一行,上下不用预留空格 -->
这是同一段无序列表中,空一行距离显示的内容
- 这是第二段无序列表
效果:
<br>
<br>
Shift
+ Backspace
即可强制删除
<br><br>
<br>
格式:
<audio controls="controls" preload="none" src="音频链接地址"></audio>
示例:
<audio controls="controls" preload="none" src="https://www.ldoceonline.com/media/english/exaProns/p008-001803372.mp3?version=1.2.37"></audio>
<audio controls="controls" preload="none" src="https://www.ldoceonline.com/media/english/exaProns/p008-001803372.mp3?version=1.2.41"></audio>
<br>
<video width="600" height="420" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
<source src="movie.webm" type="video/webm">
</video>
width=100%
代表水平撑满整个窗口height=50%
代表垂直撑满半个窗口<br>
<iframe width=600 height=400 src="页面链接地址" scrolling="auto" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
<iframe width=600 height=400 src="https://www.runoob.com/html/html-tutorial.html" scrolling="auto" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
<iframe width=600 height=400 src="https://www.runoob.com/html/html-tutorial.html" scrolling="auto" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
<br>
iframe标签 除了嵌入页面,也可以嵌入在线视频,主流的视频网站都会提供嵌入代码
//
前面补充 http:
示例:
<iframe width=600 height=400 src="http://player.bilibili.com/player.html?aid=20190823&bvid=BV1yW411s7og&cid=32964980&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
<br>
<iframe width=600 height=400 src="http://player.bilibili.com/player.html?aid=20190823&bvid=BV1yW411s7og&cid=32964980&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
<br><br>
<br>
格式:
<br>
$x^2 + 2x + 5 + \sqrt x = 0$
$\ce{CO2 + C -> 2 CO}$
$\ce{CO2 + C -> 2 CO}$
$\ce{2Mg + O2 ->[燃烧] 2 MgO}$
<br>
<br>
$$
$$
<br>
% 化学公式
$$
\ce{Zn^2+ <=>[+ 2OH-][+ 2H+] $\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$ <=>[+ 2OH-][+ 2H+] $\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$}
$$
% 麦克斯韦方程组
$$
\begin{array}{lll}
\nabla\times E &=& -\;\frac{\partial{B}}{\partial{t}}
\ \nabla\times H &=& \frac{\partial{D}}{\partial{t}}+J
\ \nabla\cdot D &=& \rho
\ \nabla\cdot B &=& 0
\ \end{array}
$$
% 薛定谔方程
$$
i\hbar\frac{\partial \psi}{\partial t} = \frac{-\hbar^2}{2m} \left(\frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2}+\frac{\partial^2}{\partial z^2} \right) \psi + V \psi
$$
<br>
$$
% 化学公式
\ce{Zn^2+ <=>[+ 2OH-][+ 2H+] $\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$ <=>[+ 2OH-][+ 2H+] $\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$}
$$
<br>
$$
% 麦克斯韦方程组
\begin{array}{lll}
\nabla\times E &=& -;\frac{\partial{B}}{\partial{t}}
\ \nabla\times H &=& \frac{\partial{D}}{\partial{t}}+J
\ \nabla\cdot D &=& \rho
\ \nabla\cdot B &=& 0
\ \end{array}
$$
<br>
$$
i\hbar\frac{\partial \psi}{\partial t} = \frac{-\hbar^2}{2m} \left(\frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2}+\frac{\partial^2}{\partial z^2} \right) \psi + V \psi
$$
<br><br>
这里只提供一些演示的图表,具体教程可戳下方
<br>
<br>
<big>源码1:</big>
```mermaid
graph TB
%% s=start e=end f=fork n=normal
s([开始])-->f1{{if条件}};
%% 分支点2
f1--true-->n1[if语句块]-->e([结束]);
f1--false-->f2{{else if条件}};
%% 分支点1
f2--true-->n2[else if语句块]-->e;
f2--false-->n3[else语句块]-->e;
```
<big>渲染1:</big>
graph TB
%% s=start e=end f=fork n=normal
s([开始])-->f1{{if条件}};
%% 分支点1
f1--true-->n1[if语句块]-->e([结束]);
f1--false-->f2{{else if条件}};
%% 分支点2
f2--true-->n2[else if语句块]-->e;
f2--false-->n3[else语句块]-->e;
<br>
<big>源码2:</big>
```mermaid
graph LR
%% s=start e=end f= fork n=normal
%% 虚线
s[朱百六]-.->|子|n1[朱四九]-.->|子|n2[朱五四]-.->|子|f1_帝((朱八八))
%% 分支点 朱八八
f1_帝-->|长子|f2[朱标]
f1_帝-->|次子|n3[朱樉]
f1_帝-->|三子|n4[朱棢]
f1_帝-->|四子|n5_帝((朱棣))
%% 分支点 朱标
f2-->|长子|e1[朱雄英]
f2-->|次子|e2_帝((朱允炆))
n5_帝-->|长子|e3[朱高炽]
```
<big>渲染2:</big>
graph LR
%% s=start e=end f= fork n=normal
%% 虚线
s[朱百六]-.->|子|n1[朱四九]-.->|子|n2[朱五四]-.->|子|f1_帝((朱八八))
%% 分支点 朱八八
f1_帝-->|长子|f2[朱标]
f1_帝-->|次子|n3[朱樉]
f1_帝-->|三子|n4[朱棢]
f1_帝-->|四子|n5_帝((朱棣))
%% 分支点 朱标
f2-->|长子|e1[朱雄英]
f2-->|次子|e2_帝((朱允炆))
n5_帝-->|长子|e3[朱高炽]
<br>
<br>
<big>源码:</big>
```mermaid
pie
title 为什么总是宅在家里?
"喜欢宅" : 45
"天气太热" : 70
"穷" : 500
"关你屁事" : 95
```
<big>渲染:</big>
pie
title 为什么总是宅在家里?
"喜欢宅" : 45
"天气太热" : 70
"穷" : 500
"关你屁事" : 95
<br>
<br>
<big>源码:</big>
```mermaid
sequenceDiagram
%% 自动编号
autonumber
%% 定义参与者并取别名,aliases:别名
participant A as Aly
participant B as Bob
participant C as CofCai
%% 便签说明
Note left of A: 只复习了一部分
Note right of B: 没复习
Note over A,B: are contacting
A->>B: 明天是要考试吗?
B-->>A: 好像是的!
%% 显示并行发生的动作,parallel:平行
%% par [action1]
rect rgb(0, 25, 155)
par askA
C -->> A:你复习好了吗?
and askB
C -->> B:你复习好了吗?
and self
C ->>C:我还没准备复习......
end
end
%% 背景高亮,提供一个有颜色的背景矩形
rect rgb(25, 55, 0)
loop 自问/Every min
%% <br/>可以换行
C ->> C:我什么时候<br/>开始复习呢?
end
end
%% 可选择路径
rect rgb(153, 83, 60)
alt is good
A ->> C:复习了一点
else is common
B ->> C:我也是
end
%% 没有else时可以提供默认的opt
opt Extra response
C ->> C:你们怎么不回答我
end
endsequenceDiagram
%% 自动编号
autonumber
%% 定义参与者并取别名,aliases:别名
participant A as Aly
participant B as Bob
participant C as CofCai
%% 便签说明
Note left of A: 只复习了一部分
Note right of B: 没复习
Note over A,B: are contacting
A->>B: 明天是要考试吗?
B-->>A: 好像是的!
%% 显示并行发生的动作,parallel:平行
%% par [action1]
rect rgb(0, 25, 155)
par askA
C -->> A:你复习好了吗?
and askB
C -->> B:你复习好了吗?
and self
C ->>C:我还没准备复习......
end
end
%% 背景高亮,提供一个有颜色的背景矩形
rect rgb(25, 55, 0)
loop 自问/Every min
%% <br/>可以换行
C ->> C:我什么时候<br/>开始复习呢?
end
end
%% 可选择路径
rect rgb(153, 83, 60)
alt is good
A ->> C:复习了一点
else is common
B ->> C:我也是
end
%% 没有else时可以提供默认的opt
opt Extra response
C ->> C:你们怎么不回答我
end
end
```
<big>渲染:</big>
sequenceDiagram
%% 自动编号
autonumber
%% 定义参与者并取别名,aliases:别名
participant A as Aly
participant B as Bob
participant C as CofCai
%% 便签说明
Note left of A: 只复习了一部分
Note right of B: 没复习
Note over A,B: are contacting
A->>B: 明天是要考试吗?
B-->>A: 好像是的!
%% 显示并行发生的动作,parallel:平行
%% par [action1]
rect rgb(0, 25, 155)
par askA
C -->> A:你复习好了吗?
and askB
C -->> B:你复习好了吗?
and self
C ->>C:我还没准备复习......
end
end
%% 背景高亮,提供一个有颜色的背景矩形
rect rgb(25, 55, 0)
loop 自问/Every min
%% <br/>可以换行
C ->> C:我什么时候<br/>开始复习呢?
end
end
%% 可选择路径
rect rgb(153, 83, 60)
alt is good
A ->> C:复习了一点
else is common
B ->> C:我也是
end
%% 没有else时可以提供默认的opt
opt Extra response
C ->> C:你们怎么不回答我
end
end
<br>
<br>
<big>源码:</big>
```mermaid
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
```
<big>渲染:</big>
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
<br>
<big>源码:</big>
```mermaid
classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
```
<big>渲染:</big>
classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
<br><br>
格式:
#标签名
<br>
<br>
#BlueTopaz
#blue_topaz
#blue-topaz
<br>
#1984
❌#1984Date
⭕#da_1984_te
⭕#date-1984
⭕<br>
在标签名内,使用 /
斜杠 可以实现标签的嵌套
格式:
#主标签/子标签1
#主标签/子标签2
#主标签/子标签3
嵌套标签可以像普通标签一样通过点击来唤起搜索,嵌套标签允许你选择搜索的层次。例如:
#主标签
,即可找到包含任意一个子标签的所有笔记
<br>
综上所述,标签内能被使用的符号共有三种
_
下划线-
连字符/
斜杠<br>
可以使用前面提到的转义符号 \
反斜杠,与上述的 转义标题 类似
格式:
\#这里的内容不会被识别为标签
效果:
#这里的内容不会被识别为标签
<br>
即使在 Markdown 中,也要尽量避免标识符的滥用
比如我的这篇教程,就存在一定程度的滥用
标识符的本质是突出显示,代表重点
有三种标识,慎用!
起飞
==了原因:
卧==虎==藏==龙==
卧虎
-- 搜不到藏龙
-- 搜不到<!-- 变量区域 -->