让 Hexo 安知鱼博客兼容 Obsidian 语法

AI-摘要
DeepSeek GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
让 Hexo 安知鱼博客兼容 Obsidian 语法
雨天狂奔让 Hexo 安知鱼博客兼容 Obsidian 语法
碎碎念
用 obsidian 黑曜石已经很多年,对它的语法已经非常习惯,然而安知鱼主题原生并不支持 obsidian 语法,而是自创了一套 tag plugin 标签语法,这就给我带来一个困扰:在 ob 里写文章使用安知鱼语法时,无法实现所见即所得的预览模式,且安知鱼标签语法众多,难以记忆,真的不想去记两套语法
于是,我开始对安知鱼的代码进行改造,使它兼容 ob 的原生语法,经过三四天的打磨,终于完成了最核心、最常用的部分
已实现的兼容语法
- 提示块,ob 叫它 callout
- 用
的写法自定义图片尺寸 - 链接卡片
- 自动生成文章封面图(这不是 ob 语法,是本次折腾的附属产物)
一. 先看提示块
效果预览
- 单行无标题
按图操作,注意端口一定不要错,格式
localhost:25002
- 多行:默认标题 + 正文
信息
部署完成后等待两分钟,点击 CF 分配的域名访问博客
- 多行:自定义标题 + 正文
特别建议
建议使用最新版本,旧版本可能存在兼容性问题
写法示例
关键词字段不区分大小写,此写法多行形式 obsidian 和 github 都支持
1 | > [!TIP] 单行正文 → 图标 + 同一行文字,无标题 |
支持的字段与颜色
| 颜色 | 字段 | 色值 |
|---|---|---|
| 🔵 蓝 | note, info, todo | #027AFF |
| 🌀 青 | summary, tip, hint, important | #53DFDD |
| 🟢 绿 | success, check, done | #44CF6E |
| 🟠 橙 | help, faq, question, warning, caution | #E9973F |
| 🔴 红 | fail, danger, error, bug | #FB464C |
| 🟣 紫 | example, quote | #A882FF |
修改步骤
1. 创建 Hexo Filter
1 | themes/anzhiyu/scripts/filters/blockquote.js |
- 完整代码
1 | /** |
2. 添加 CSS 样式
- 文件路径
1 | source/css/article.css |
- 完整代码
1 | /* ===== 行内代码样式 ===== */ |
3. 引用 CSS
- 在
_config.anzhiyu.yml的inject配置中添加:
1 | inject: |
二. 自定义图片尺寸
效果预览
单行多图片
单行 1 张图片
写法示例——obsidian 原生语法
1 | - 单行多图写法,两个图片之间用1个空格分隔,图片总宽度加起来不要超过100%,否则会自动切换为两行 |
修改步骤
1. 创建 img-embed.js
- 文件路径
1 | themes/anzhiyu/scripts/filters/img-embed.js |
- 代码
1 | /** |
2. 添加 CSS 样式
- 文件路径
1 | source/css/article.css |
- 在其中追加以下代码
1 | /* 图片嵌入 — 父级居中 */ |
千万记住
在主题里引用上述 CSS,引用方法上文已有,若已引用,则可忽略
链接卡片
需要重点说明一下
obsidian 原生并不支持自动生成链接卡片,但他有一个强大的插件
AutoCardLink Enhanced可以生成非常精美的链接卡片,并支持明暗双模式
先看预览效果
写法示例
- 其实不需要写语法,先在 ob 中安装
AutoCardLink Enhanced插件 - 复制需要外链的链接,到 ob 中点击右键,选择
Paste URL to a card link,即可自动生成
修改步骤
1. 创建 JS 文件
- 文件路径
1 | themes\anzhiyu\scripts\filters\link-card.js |
- 完整代码
1 | /** |
2. 加入 CSS 样式
- 文件路径——没错,还是这个文件
1 | blog-demo\source\css\article.css |
- 追加以下代码
1 | /* ===== Cardlink 卡片样式(Obsidian 插件兼容) ===== */ |
- 记住引用代码!
附加功能——自动生成封面图
注意
这个功能和 obsidian 没有任何关系,安知鱼原生也不支持,只是我为了偷懒,避免每次都去找封面图,很麻烦,才有了这个修改
效果就不看了,你点进我的博客,在首页看到的这篇文章的卡片,封面图就是自动生成的,包括图上的文字,他会自动提取文章标题放到图片上
前提条件
- 要有一个随机图的 API,我可以提供一个
https://bing.by.ccwu.cc/api/daily?redirect=true,但不保证长期可用 - 最好是可以自己部署一个,项目地址如下:
- 在主题配置文件
config.anzhiyu.yml中找到default_cover:字段,设置随机图直链 API 地址
1 | cover: |
- 在文章的
frontmatter元信息中,将cover字段留空,已定义了 cover 字段的则以 cover 定义优先
开始折腾
1. 修改 themes/anzhiyu/scripts/filters/random_cover.js
- 在约 57 行增加
data.is_random_cover = true
1 | if (!coverVal) { |
2. 修改 themes/anzhiyu/layout/includes/mixins/post-ui.pug
- 将以下段落整体替换,注意缩进!
1 | if post_cover && theme.cover.index_enable |
3. 修改 themes\anzhiyu\source\css\_extra\anzhiyu\custom.css
1 | #article-container |
4. 增加 CSS 样式
- 还是
source/css/article.css这个文件,追加以下内容
1 | /* ===== 文章卡片封面标题叠加 ===== */ |
大功告成
至此,已完成所有修改,hexo 经典的一键三连
hexo clean && hexo g && hexo s先预览一下,没问题就部署吧
#主题 #建站 #博客
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果


