Markdown基础语法
§0 前言
以下内容只在Typora(mac)编辑器中做过测试。
§1 代码片段
- 效果:
#include <cstdio>
int main() {
printf("Hello, world!\n");
return 0;
}
其中printf()
是一个常用的库函数。
同时四个空格或一个Tab开头的内容也表示代码块,但此时应该有空行与上方的内容隔开。此处就是用这种方式生成的代码块。注意除了列表(第三章)和代码块以外,别的地方慎用Tab和行首空格!
- markdown代码:
#include <cstdio>
int main() {
printf("Hello, world!\n");
return 0;
}
其中`printf()`是一个常用的库函数。
同时四个空格或一个Tab开头的内容也表示代码块,但此时应该有空行与上方的内容隔开。此处就是用这种方式生成的代码块。注意除了列表(第三章)和代码块以外,别的地方慎用Tab和行首空格!
§2 标题
- 效果:
一级标题(最多有六级标题)
二级标题
三级标题
四级标题
五级标题
六级标题
这也可以是一级标题
这也可以是二级标题
- markdown代码:
# 一级标题(最多有六级标题)
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
这也可以是一级标题
=====
这也可以是二级标题
-----
§3 列表
在子列表前加入Tab或四个空格后可与上级列表嵌套。
-
无序号的表
每一表项都由'-'或'*'或'+',后加一个空格开头,三种字符可以混合使用,但不建议这么用。。- 效果:
- 表项1
- 表项2
- 表项3
- markdown代码:
- 效果:
- 表项1
* 表项2
+ 表项3
-
有序号的表
每一表项由数字序号加'.'加一个空格开头。- 效果:
- 项目1
- 项目2
- 项目3
- markdown代码:
- 效果:
1. 项目1
2. 项目2
3. 项目3
-
checkbox
由'-'加空格加'['加空格加']'加空格
或'-'加空格加'['加'x'加']'加空格开头(Typora中可用)- 效果:
- markdown代码
- 效果:
- [ ] 计划任务
- [x] 完成任务
§4 文本样式
- 效果:
- 首尾各一个'*'使该部分变成斜体, 首尾各一个'_'也可以.
- 首尾各两个'*'加粗文本, 首尾各两个'_'也可以。
- 首尾各三个'*'使该部分变成粗斜体,首尾各三个'_'也可以。
首尾各两个'='可以标记文本(typora中不行),首尾各两个'~'字符用来删除文本。- 下划线可以利用html中的标签u实现。
- 若某行末尾至少有两个空格,则表示该行和下一行属于两个不同的段落。使用单独的一个空行也可以起到划分段落的作用。建议使用单独的空行,这样更直观,而且使用末尾两个空格时cnblogs在某些情况下和typora的解析结果不一样?特别注意在使用列表时的段落划分。
用'>'开头来引用文本,好像要用一个空行来结束引用
引用是可以嵌套的,用若干个'>'即可。
注意引用可以和列表等其他语法嵌套使用。嵌套时注意空行空格Tab等等的用法。
- 试试这个脚注怎么样[1],即使我给这个脚注起了名字,但cnblogs好像显示不出来。
- 关于上标和下标:
可以使用html中的sup和sub标签:x2 - x = 6=>x1 = -2, x2 = 3 - 分隔线用三个及以上的'-', 或三个及以上的'_', 或三个以上及的'*'表示,行内可以有空格。注意分隔线使用的字符'-'也可以产生二级标题,所以可能产生冲突。分隔线示例如下:
- markdown代码:
1. *首尾各一个'\*'使该部分变成斜体*, _首尾各一个'\_'也可以_.
2. **首尾各两个'\*'加粗文本**, __首尾各两个'\_'也可以__。
3. ***首尾各三个'\*'使该部分变成粗斜体***,___首尾各三个'\_'也可以___。
4. ~~==首尾各两个'\='可以标记文本==(typora中不行)~~,~~首尾各两个'\~'字符用来删除文本~~。
5. <u>下划线可以利用html中的标签u实现。</u>
6. 若某行末尾至少有两个空格,则表示该行和下一行属于两个不同的段落。使用单独的一个空行也可以起到划分段落的作用。建议使用单独的空行,这样更直观,而且使用末尾两个空格时cnblogs在某些情况下和typora的解析结果不一样?特别注意在使用列表时的段落划分。
7.
> 用'>'开头来引用文本,好像要用一个空行来结束引用
> > 引用是可以嵌套的,用若干个'>'即可。
> > > 注意引用可以和列表等其他语法嵌套使用。嵌套时注意空行空格Tab等等的用法。
8. 试试这个脚注怎么样[^脚注],即使我给这个脚注起了名字,但cnblogs好像显示不出来。
9. 关于上标和下标:
可以使用html中的sup和sub标签:x<sup>2</sup> - x = 6=>x<sub>1</sub> = -2, x<sub>2</sub> = 3
10. 分隔线用三个及以上的'-', 或三个及以上的'_', 或三个以上及的'*'表示,行内可以有空格。注意分隔线使用的字符'-'也可以产生二级标题,所以可能产生冲突。分隔线示例如下:
___
---
***
[^脚注]:既然是脚注,当然要放在后面啦。
§5 链接
- 链接
-
效果:
这是我的链接->link name 1
这也是我的链接->https://www.cnblogs.com/watchphone/
这还是我的链接(使用变量)->[link name 2]variable name
[variable name]:https://www.cnblogs.com/watchphone/ -
markdown代码:
-
这是我的链接->[link name 1](https://www.cnblogs.com/watchphone/)
这也是我的链接-><https://www.cnblogs.com/watchphone/>
这还是我的链接(使用变量)->[link name 2][variable name](cnblogs中好像不能用)
[variable name]:https://www.cnblogs.com/watchphone/
- 图片
-
效果:
-
markdown语法:
-
![alt 属性文本](图片地址 "可选标题")
- PS:
Markdown还没有办法指定图片的高度与宽度,如果你需要的话,你可以使用html的 img 标签。
§6 表格
- 效果:
Column 1 | Column 2 |
---|---|
centered 文本居中 | right-aligned 文本居右 |
- markdown代码:
| Column 1 | Column 2 |
|:--------:| -------------:|
| centered 文本居中 | right-aligned 文本居右 |
§7 其他技巧
- 用反斜杠可以转义保留字符
- 不在Markdown涵盖范围之内的标签,都可以直接在文档里面用HTML 撰写。目前支持的 HTML 元素有:<kbd> <b> <i> <em> <sup> <sub> <br>等。
-
效果:
用command + w 关闭本页面。(只是举个例子。。) -
markdown代码:
-
用<kbd>command</kbd> + <kbd>w</kbd> 关闭本页面。(只是举个例子。。)
-
LaTeX 数学公式(不知道为啥cnblogs预览正确,但有时候显示不出来。。)
使用两个美元符包裹TeX或LaTeX格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax对数学公式进行渲染。参考文档- 效果:
\[\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
\]
\[ \mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
\]
$$
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
$$
$$
\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
$$
- 流程图等(用到了再补充)
甘特图
UML图
Mermaid流程图
Flowchart流程图
既然是脚注,当然要放在后面啦。 ↩︎
本人菜鸡一枚!
如有错误还请大佬们多多指教!
如有错误还请大佬们多多指教!