Hexo 测试
markdown 基础语法
测试 markdown 的基本语法部分,出于可迁移性考虑,忽略 hexo 以及 butterfly 主题所提供的额外语法支持。
标题
支持 markdown 的各级别标题,效果略。
1 | # title 1 |
列表
注意必须在列表的前面空一行,否则语法解析时无法识别为列表。列表支持嵌套,包括两类列表的混合嵌套。
无序列表可以使用星号* XX、减号- XX、加号+ XX等三种样式,目前只使用减号。
- a
- b
- c
有序列表可以使用两种写法:样式一,数学编号1. XX
- a
- b
- c
1 | 1. a |
样式二,全 1 编号 1. XX
- a
- b
- c
1 | 1. a |
待办事项
大部分markdown编辑器支持checkbox样式的待办事项
1 | - [x] TODO 1 |
效果如下
- TODO 1
- TODO 2
引用
可以用> XX表示引用,支持嵌套引用> > XXX,例如
白日依山尽,黄河入海流
众里寻他千百度,慕然回首,那人却在灯火阑珊处。
注意,hexo 以及 butterfly 主题给引用设置了样式。
在 Github README,VSCode 以及 Typora 中可能还支持几种带有特殊语义的 markdown 引用,例如
1 | > [!NOTE] |
但是测试发现 Hexo 不支持
[!NOTE]
Useful information that users should know, even when skimming content.
[!TIP]
Helpful advice for doing things better or more easily.
[!IMPORTANT]
Key information users need to know to achieve their goal.
[!WARNING]
Urgent info that needs immediate user attention to avoid problems.
[!CAUTION]
Advises about risks or negative outcomes of certain actions.
字体
- 一对星号包裹起来,表示斜体,例如
*斜体*,效果为: 斜体。 - 两对星号包裹起来,表示加粗,例如
**加粗**,效果为:加粗。 - 两对波浪号包裹起来,表示删除,例如
~~删除~~,效果为:删除。
表格
支持 markdown 语法的表格,可以设置左右对齐或居中对齐。
1 | | Tittle1 | Tittle2 | Tittle3 | |
效果如下,注意表格前后要留空行。
| Tittle1 | Tittle2 | Tittle3 |
|---|---|---|
| Content | Content | Content |
| Content | Content | Content |
分割线
可以在一行中用三个或以上的星号、减号、底线来建立一个分隔线,行内不能有其他字符,但是不要求连续,中间可以含空格。例如
1 | *** |
最好在分割线的前后各留一个空行,防止语法被错误地解析。
可以给分割线提供定制的样式,例如上文的剪刀效果就是 butterfly 主题自带的。
代码
行内的代码使用一对反引号即可(或者更多对也可以),例如printf
1 | `printf` |
行间的代码块需要使用三对反引号,并且建议标注语言,用于代码高亮。
1 |
|
图片
可以使用标准 markdown 语法来添加图片,提供对应的 URL 即可,例如本地图片
1 |  |
效果如下:
这个写法在 hexo 中测试发现存在路径问题,使用 html 语法则正常。
除了标准的 markdown 语法的图片,同样支持 html 语法的插入图片,这种方式可以指定图片比例(如果同时设置了宽度和高度,以宽度缩放为准)
1 | <img src="assets/girl.jpg" width="50%"/> |
超链接
标准的 markdown 语法。
1 | 这是一个链接 [显示文本](https://baidu.com "浮动文本")。 |
效果为:
这是一个链接 显示文本。
链接中尽量避免出现空格,使用%20替代空格是标准做法。
更多
Emoji
例如
- 常见 💡⭐🐞🚀🌍🚁⚡️🌌⬇️
- 书本 📔📕📗📘📙📒📃📜📚📖🧾
- 动植物 🌲🌵🐳🐬🐍🐣
- 人 🤺✍👌👈👉👆👇
- 其他 ⚠🚩💬🔨⏰💎
提供一个查询 Emoji 的网站:https://emoji.muan.co/。
一些常用emoji
1 | ✅✔️➕❌⭕️🟡 |
音乐
可以在文章中嵌入一个网易云播放器(不能是会员歌曲)
代码如下,可以去网易云网页版复制外链播放器。
1 | <iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=1488737309&auto=1&height=66"></iframe> |
视频
可以嵌入 b 站的视频播放
代码如下,可以去 b 站分享中选择代码。
1 | <iframe src="//player.bilibili.com/player.html?aid=938539117&bvid=BV1JT4y1r74p&cid=587958621&page=10" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> |
在线文档
对于网上的 PDF 文档等,直接使用 URL,例如:pdf-test,浏览器会直接缓存并在新页面打开它,对于手机端和 iPad 也是一样。
可以在 GitHub 存放文档,使用 URL,例如:README,注意如果希望在 Github 网站打开,是仓库名+blob+分支名+文件名,如果以纯文件的形式打开,需要把 blob 替换为 raw。
Latex 公式测试
行内公式例如 $\frac12$,$\frac{1}{\sqrt{1-x^2}}$。
行间公式例如
$$
f(x) = x^2
$$
$$
g(x)=\left{
\begin{aligned}
& 1, x<1\
& x, otherwise
\end{aligned}
\right.
$$
$$
\begin{aligned}
\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot \nabla) \mathbf{u} &= -\nabla p + \nu \nabla^2 \mathbf{u}\
\nabla \cdot \mathbf{u} &= 0\
\mathbf{u}|_{\partial \Omega} &= \mathbf{u}b\
\mathbf{u}|{t=0} &= \mathbf{u}_0
\end{aligned}
$$
注意跨行大括号可能会渲染错误,建议避免序号。
由于目前这个博客的定位不会涉及到复杂的数学公式,因此不做过多的配置。
如果需要更完整的数学公式支持,可以考虑选择基于 pandoc 的插件
1 | npm uninstall hexo-renderer-marked |
此时本地也需要安装 pandoc。