Summary of Hexo Blog Markdown Syntax
I have built a personal website using Hexo and Github Pages. Here, I would like to document the commonly used blog syntax for writing.
公式:
$$
\hat{x}_k=\hat{x}_k^-+K_t\left(y_k\right)
$$
标签插件(Tag Plugins)
常用小结
公式
正常使用LaTeX语法。
代码
- 使用
codeblock
{% codeblock _.compact lang:js http://underscorejs.org/#compact Underscore.js %} |
_.compact([0, 1, false, 2, '', 3]); |
- 使用三个反引号
[language] [title] [url] [link text] code snippet
图片
在文章中插入指定大小的图片。
{% img [class names] /path/to/image [width] [height] '"title text" "alt text"' %}
<a href="https://xxiao.org" target="_blank"> |
首选:img标签
<img src="/images/logo.png" width="25%" title="title" alt="alt"> |
<img src="/images/logo.png" width="25%" title="title" alt="alt"> |
其他样式
Youtube
在文章中插入 Youtube 视频。
{% youtube video_id [type] [cookie] %}
Examples
视频
Taylor Swift - Lavender Haze (Official Music Video)
播放列表
Bilibili
插入Bilibili视频
网易云音乐
标签插件和 Front-matter 中的标签不同,它们是用于在文章中快速插入特定内容的插件。
虽然你可以使用任何格式书写你的文章,但是标签插件永远可用,且语法也都是一致的。
Tag plugins should not be wrapped inside Markdown syntax, e.g. []({% post_path lorem-ipsum %})
is not supported.
引用块
在文章中插入引言,可包含作者、来源和标题。
别号: quote
{% blockquote [author] [link] [source_link_title] %} |
content
样例
没有提供参数,则只输出普通的 blockquote
{% blockquote %} |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque hendrerit lacus ut purus iaculis feugiat. Sed nec tempor elit, quis aliquam neque. Curabitur sed diam eget dolor fermentum semper at eu lorem.
引用书上的句子
Do not just seek happiness for yourself. Seek happiness for all. Through kindness. Through mercy.
引用 Twitter
{% blockquote @DevDocs https://twitter.com/devdocs/status/356095192085962752 %} |
NEW: DevDocs now comes with syntax highlighting. http://devdocs.io
引用网络上的文章
{% blockquote Seth Godin http://sethgodin.typepad.com/seths_blog/2009/07/welcome-to-island-marketing.html Welcome to Island Marketing %} |
Every interaction is both precious and an opportunity to delight.
代码块
在文章中插入代码。
别名: code
{% codeblock [lang:language] [title] [url] [link text] %} |
import seaborn as sns |
以 option:value
的格式指定额外选项,例如:line_number:false first_line:5
。
示例
普通的代码块
{% codeblock %} |
alert('Hello World!'); |
指定语言
{% codeblock lang:objc %} |
[rectangle setX: 10 y: 10 width: 20 height: 20]; |
附加说明
{% codeblock Array.map %} |
array.map(callback[, thisArg]) |
附加说明和网址
{% codeblock _.compact http://underscorejs.org/#compact Underscore.js %} |
_.compact([0, 1, false, 2, '', 3]); |
反引号代码块
另一种形式的代码块,不同的是它使用三个反引号来包裹。
[language] [title] [url] [link text] code snippet
Pull Quote
在文章中插入 Pull quote。
This is a Pull quote
Gist
在文章中嵌入 Gist。
{% gist gist_id [filename] %}
{% gist 0358ce6eb43ef15f853a [filename] %} |
iframe
在文章中插入 iframe,适用于视频、音频等。
{% iframe url [width] [height] %}
YouTube视频
Bilibili视频
{% iframe https://www.bilibili.com/blackboard/html5mobileplayer.html?aid=82766716&bvid=BV1FJ411V7gy&cid=147308234&hasMuteButton=1&danmaku=0&page=1&high_quality=1 %} |
是否自动播放(默认否):autoplay
默认弹幕开关(默认开启):danmaku
是否默认静音(默认否):muted
一键静音按钮是否显示(默认不显示):hasMuteButton
视频封面下方是都显示播放量弹幕量等信息(默认显示):hideCoverInfo
是否隐藏弹幕按钮(默认不隐藏):hideDanmakuButton
是否隐藏全屏按钮(默认显示):noFullScreenButton
是否开始记忆播放(默认开启):fjw
默认开始时间(单位秒,默认0):t
是否显示高清(默认否):highQuality(无用的,因为除了参数外它还判断了网址是否来自bilibili)
网易云音乐
单曲
歌单
Spotify(试听)
QQ音乐
(失败) (update 20241005 成功)
{% iframe https://i.y.qq.com/n2/m/outchain/player/index.html?songid=102793934&songtype=0 marginwidth="0" marginheight="0" %} |
Image
在文章中插入指定大小的图片。
{% img [class names] /path/to/image [width] [height] '"title text" "alt text"' %} |
![图片](/images/1.png) |
{% img [a] /images/1.png [50] [50] '"这是一张图片" "无图片时的替代文字"' %} |
Link
在文章中插入链接,并自动给外部链接添加 target="_blank"
属性。
Include Code
插入 source/downloads/code
文件夹内的代码文件。source/downloads/code
不是固定的,取决于你在配置文件中 code_dir
的配置。
样例
嵌入 test.js 文件全文
只嵌入第 3 行
嵌入第 5 行至第 8 行
嵌入第 5 行至文件结束
嵌入第 1 行至第 8 行
Youtube
在文章中插入 Youtube 视频。
{% youtube video_id [type] [cookie] %}
Examples
视频
播放列表
隐私模式
禁止 YouTube cookie
Vimeo
在文章中插入 Vimeo 视频。
{% vimeo video_id %} |
引用文章
引用其他文章的链接。
Post not found: filename [title] [escape]在使用此标签时可以忽略文章文件所在的路径或者文章的永久链接信息、如语言、日期。
例如,在文章中使用 {% post_link how-to-bake-a-cake %}
时,只需有一个名为 how-to-bake-a-cake.md
的文章文件即可。即使这个文件位于站点文件夹的 source/posts/2015-02-my-family-holiday
目录下、或者文章的永久链接是 2018/en/how-to-bake-a-cake
,都没有影响。
默认链接文字是文章的标题,你也可以自定义要显示的文本。
默认对文章的标题和自定义标题里的特殊字符进行转义。可以使用escape
选项,禁止对特殊字符进行转义。
链接使用文章标题
Post not found: hexo-3-8-released链接使用自定义文字
Post not found: hexo-3-8-released 通往文章的链接引用资源
引用文章的资源,与 资源文件夹 一起使用。
嵌入图片
hexo-renderer-marked 3.1.0+ 可以(可选)自动解析图片的文章路径,参考 本节 如何启用它。
“foo.jpg” 位于 http://example.com/2020/01/02/hello/foo.jpg
。
默认(无选项)
<img src="/2020/01/02/hello/foo.jpg"> |
自定义 class 属性
<img src="/2020/01/02/hello/foo.jpg" class="post-image"> |
title 和 alt 属性
<img src="/2020/01/02/hello/foo.jpg" title="lorem ipsum" alt="dolor"> |
Raw
如果您想在文章中插入 Swig 标签,可以尝试使用 Raw 标签,以免发生解析异常。
content文章摘要和截断
在文章中使用 <!-- more -->
,那么 <!-- more -->
之前的文字将会被视为摘要。首页中将只出现这部分文字,同时这部分文字也会出现在正文之中。
例如:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
首页中将只会出现
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
正文中则会出现
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
注意,摘要可能会被 Front Matter 中的 excerpt
覆盖。
Updated on 2023-07-14
按钮
<div class="buttons"> |
光有按钮肯定是不行的,一般我们还需要给按钮增加事件,比如点击下面的按钮,可以显示一条一言(Hitokoto)。
↑↑↑ 试着点击“显示一言”!
|
进度条
|
标签页
Pixabay 是全球知名的图库网站及充满活力的创意社区,拥有上百万张免费正版高清照片素材,涵盖风景、人物、动态、静物等多种分类,你可以在任何地方使用 Pixabay 图库中的素材…
网易云音乐 是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。
哔哩哔哩 是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。
石墨文档 是全新一代云 Office 办公软件,支持多人在线协作编辑文档和表格,独有内容级安全,全过程留痕可追溯。PC 端和移动端全覆盖,随时随地远程办公。即写即存…
Pixabay 是全球知名的图库网站及充满活力的创意社区,拥有上百万张免费正版高清照片素材,涵盖风景、人物、动态、静物等多种分类,你可以在任何地方使用 Pixabay 图库中的素材…
|
彩色突出
Icarus 主题以白色的简洁为主,但有时候我们希望在文章中用特别的样式注明一些内容,markdown 语法就不够用了,所以在此分享一下我的高级玩法。
{% raw %}<div class="notification is-info">{% endraw %} |
Icarus 主题以白色的简洁为主,但有时候我们希望在文章中用特别的样式注明一些内容,markdown 语法就不够用了,所以在此分享一下我的高级玩法。
{% raw %}<div class="notification is-success">{% endraw %} |
Icarus 主题以白色的简洁为主,但有时候我们希望在文章中用特别的样式注明一些内容,markdown 语法就不够用了,所以在此分享一下我的高级玩法。
{% raw %}<div class="notification is-warning">{% endraw %} |
Icarus 主题以白色的简洁为主,但有时候我们希望在文章中用特别的样式注明一些内容,markdown 语法就不够用了,所以在此分享一下我的高级玩法。
{% raw %}<div class="notification is-danger">{% endraw %} |
|
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %} |
{% raw %}<article class="message is-warning"><div class="message-body">{% endraw %} |
|
|
点击展开代码
console.log('I love Icarus!'); |
你知道的太多了
iMaeGoo 出自独立游戏 World of Goo 里小粘球的叫声,读作 /ɪ’mæɡu/ 不是爱妹狗啊,在家里电脑还是个大头(CRT)的时候就在玩了,其实头像也是在当时设定的,一直沿用至今。找不到女朋友誓不改头像
{% raw %} |
让简介不出现在正文
我们知道 Hexo 用 <!-- more -->
可以分隔简介和正文部分,但这样简介也会在正文中出现,如果我们不想让简介部分出现在正文呢?
|
封面图来源声明
Vector Landscape Vectors by Vecteezy<a class="tag is-dark is-medium" href="https://www.vecteezy.com/free-vector/vector-landscape" target="_blank"> |
另一种标签
print("Hello, world!") # 源码 |
print("Hello, world!") # NPM |
<div class="tabs is-boxed"><ul> |
Updated on 2023-07-15
代码显示diff
highlight: |
如果设置语言为 diff,可以在代码前添加 +
和 -
来使用如上所示的高亮增删行提示效果,在展示代码改动痕迹时比较实用。
引用站内链接
可以通过如下语法引入站内文章的地址或链接:
{% post_path slug %} |
其中,slug
表示 _post
目录下的 Markdown 文件名。
post_path
标签将会渲染为文章的地址,即 permalink
;而 post_link
标签将会渲染为链接,可以通过 title
指定链接标题。
以下标签则会生成 链接标题
{% post_link markdown 链接标题 %} |
这种站内引用方式比直接使用 url 引用的形式更为可靠,因为即使修改了 permalink
格式,或者修改了文章的路由地址,只要 Markdown 文件名没有发生改变,引用链接都不会失效。
插入 Swig 代码
如果需要在页面内插入 Swig 代码,包括原生 HTML 代码,JavaScript 脚本等,可以通过 raw 标签来禁止 Markdown 引擎渲染标签内的内容。语法如下:
{% raw %} |
该标签通常用于在页面内引入三方脚本实现特殊功能,尤其是当该三方脚本尚无相关 hexo 插件支持的时候,可以通过写原生 Web 页面的形式引入脚本并编写实现逻辑。
插入 Gist
如果需要在页面内插入 Gist 上的代码片段时,可以使用如下标签:
{% gist gist_id [filename] %} |
其中,各参数意义如下:
- gist_id: Gist 仓库页面 url 中最后一段随机字符串
- filename: Gist 中的文件名
如果 Gist 中只有一个文件,可以不用指定 filename,也可以通过 JavaScript 脚本的形式直接引入,如:
<script src="https://gist.github.com/Coodool/cb4ff46a3523955dd4b918dd775b6774.js"></script> |
如果 Gist 中有多个文件,可以在标签内输入 filename 来指定只引入某个文件,如果没有指定 filename,将会引入 Gist 中的所有文件。另外,引用 JavaScript 脚本形式无法精确控制只引入某一个文件,将会同时引入 Gist 中的所有文件。
如果指定了与 Gist 无法匹配的 filename,页面上将不会显示任何标签内容。所以,一般在 Gist 只有一个文件的情况下无需指定 filename。
Summary of Hexo Blog Markdown Syntax