Hexo、Shoka格式整理(云部署专用版)
Hexo 格式
Front-matter格式
参考连接:https://hexo.io/zh-cn/docs/front-matter.html
正文格式其实和以前的md书写没什么差别,主要是要开始写【Front-matter】。
Front-matter 是文件最上方以 ---
分隔的区域,用于指定个别文件的变量,举例来说:
1 | --- |
以下是预先定义的参数,您可在模板中使用这些参数值并加以利用。
参数 | 描述 | 默认值 |
---|---|---|
layout |
布局 | config.default_layout |
title |
标题 | 文章的文件名 |
date |
建立日期 | 文件建立日期 |
updated |
更新日期 | 文件更新日期 |
comments |
开启文章的评论功能 | true |
tags |
标签(不适用于分页) | - |
categories |
分类(不适用于分页) | - |
permalink |
覆盖文章网址 | - |
excerpt |
文章摘要 | - |
disableNunjucks |
启用时禁用Nunjucks标签 | |
和标签插件的呈现 | - | |
lang |
设定语言 | 在 _config.yml 插入 |
主题自定义参数 | - | - |
注:现在正在用的主题和这个没啥关系,请参考Hugo-stack的文档(会写)。
自定义Front-matter参数教程(Hexo用)
下面是设定主页隐藏某篇指定文章的教程,因为初始主题没有这个功能,所以需要调整layout的index.swig文件以增加相关的功能。
(同样和目前用的主题无关)
参考页面:https://www.jianshu.com/p/79fe9fb9dfa0
将路径:Hexo\themes\next\layout\index.swig 中的
1 | {% block content %} |
改成:
1 | {% block content %} |
Front-matter示例与问题
另外,这里举一个语雀上书写时的格式标准,对应主题是Shoka:
1 | tags: |
我在写的时候遇到拼写错误的问题,看样子脑子是该好好整顿一下了?
让我气的半死的‘catagories’,为什么语雀没有拼写检查:
正文markdown格式及问题
可以学习一下shoka使用的插件的根源渲染器:
https://markdown-it.github.io/
里面比较详尽的介绍了所有用得上的md格式。
问题(后续继续更新):
- 表格中不能嵌套列表相关的表达,否则会整个拆掉。
- 表格各个单元格都要写点东西,要不然会乱掉。
- 代码行前后都需要有空行,否则无法识别代码。
Shoka 格式(括号内为云部署效果)
参考链接:主题特殊功能
内容基本上照抄,测试了一下云端部署的效果。
使用前须知
由于部署渲染并不在本地进行,所以语雀输出到Github Actions到hexo的表达会和Nunjucks标签冲突,因此所有表达中含有花括号{}
的都会出现错误。相关无效功能请在相应文件夹建立MD文件进行渲染。
本文中部分示例涉及与Nunjucks标签冲突的情况,因此需要禁用。
相关禁用方法包括:参考自在带有数学公式的markdown文档里的交叉引用
- 直接在Front-Matter设置
disableNunjucks: true
; - 在_config.yml里添加:
1 | marked: |
- 修改代码
node_modules/hexo/lib/hexo/post.js
的390行(但是此方法云部署无效)
1 | ## From: |
生效情况
因为主题换成Hugo-Stack了,所以下面的内容大幅简化,仅保留相关内容的生效情况和用法。
预览:
- 代码块(有效)
- 连接块(无效)
- 练习题(无效)
- 绘文字/emoji (有效)
- effects 文字特效(部分有效)
- spoiler 隐藏文字(无效)
- label 标签块(有效)
- note 提醒块(有效)
- tab 标签卡(有效)
- collapse 折叠块(有效)
- taskList 待办事项(有效)
- furigana 文字注音(有效)
- media 多媒体(无效)
- math 数学公式(有效)
- mermaid 流程图(部分有效)
代码块(有效)
标准:[language] [title] [url] [link text] [mark] [command]
选项 | 描述 | 默认值 |
---|---|---|
language | 支持的语言戳此,如果不需要代码高亮,但希望显示代码块样式,则设为 raw;留空或设为 info ,将不显示代码高亮和代码块样式 | null |
title | 代码块的标题文字 | null |
url | 代码块标题右侧显示的链接 | null |
link text | 上述链接显示的标题 | link |
mark | 行高亮显示,格式为 mark:行号,行号开始-行号结束,其他行号 。(内部无空格) | |
例如 mark:1,4-7,10 ,将高亮显示第 1、4、5、6、7、10 行 | null | |
command | 命令行提示符,格式为 command:("提示内容":行号,行号||"提示内容":行号开始-行号结束) |
null |
连接块(无效)
使用 links 标签块,包围 yml 语法书写的内容,字段包括:
site | 站点名称 | 必填 |
---|---|---|
owner | 管理员名字 | 可选,默认为 site 的值 |
url | 站点链接 | 必填 |
desc | 站点描述 | 可选,默认为 url 的值 |
image | 站点图片 | 可选,默认为 images/404.png |
color | 方块颜色 | 可选,默认为 #666 |
练习题(无效)
首先需要在Front-matter添加quiz: true
使其生效。
下面是相关标签和用途:
标签 | 含义 |
---|---|
{.quiz} |
选择题 |
{.quiz .multi} |
多选题 |
{.quiz .true} |
正确的判断题 |
{.quiz .false} |
错误的判断题 |
{.quiz .fill} |
填空题 |
[]{.gap} |
空白下划线 |
[答案内容]{.gap} |
答案内容带下划线 |
{.options} |
ABCDE 选项 |
{.correct} |
选择题的正确选项 |
> |
答案解析 |
[8.4]{.mistake} |
错题备注 |
绘文字/emoji (有效)
用法:
1 | :kissing_heart: |
effects 文字特效(部分有效)
1 | 【下为无效部分】 |
spoiler 隐藏文字(无效)
1 | !! 黑幕黑幕黑幕黑幕黑幕黑幕!!: 鼠标滑过显示内容 |
label 标签块(有效)
1 | [default]{.label} |
note 提醒块(有效)
1 | :::default |
tab 标签卡(有效)
注意:
开始行:;;;[同一ID] [标签名称]
结束行:;;;
1 | ;;;id1 卡片 1 |
collapse 折叠块(有效)
注意:
开始行:+++[风格颜色] [标题文字]
结束行:+++
1 | +++ 默认默认 这里是一段文字 |
taskList 待办事项(有效)
1 | - [ ] 这是一个小叉叉 |
furigana 文字注音(有效)
为了兼容性,采用 markdown-it-ruby
的基本格式: {文字^注音}
,并且为了兼容表格,将分隔符由 | 换成了 ^ 。
注音分隔基于 furigana-markdown-it
显示说明看:https://www.npmjs.com/package/furigana-markdown-it#quick-usage
media 多媒体(无效)
1 | {% media audio %} |
math 数学公式(有效)
需要加math: true
以支持KaTex。
1 | 行内公式:$\sqrt {3x-1}+(1+x)^2$ |
mermaid 流程图(部分有效)
两组mermaid代码中部分类别生效:
1 | ···mermaid |