跳转至

使用Obsidian、Hexo、MkDocs搭建个人博客

约 504 个字 1 张图片 预计阅读时间 2 分钟

已过时

最新方案👉 Obsidian 结合 MkDocs

实现流程

Obsidian、Hexo、MkDocs流转图.excalidraw.svg

实现步骤

Obsidian

使用Obsidian正常完成文档的编写。如果要联动Hexo,则还需进行如下配置:

  1. 文档元数据必须包含abbrlink字段。该字段用于生成永久链接,否则404
  2. 安装Link Server Plugin,通过API提供Obsidian文件信息

Hexo

除了常规配置外,还需要安装以下插件:

  1. hexo-abbrlink:用于生成永久链接,对应Obsidian的abbrlink字段
  2. hexo-link-obsidian:用于请求Obsidian插件,获取文档信息。处理图片、视频、wiki等链接。
    • 图片被拷贝至posts目录
    • 如果转换后的链接文档不在hexo的_posts目录中,则此链接修正为404

Hexo使用

至此完成了Obsidian和Hexo的联动,只需要执行以下操作即可:

  1. 拷贝Obsidian文档至Hexo的_posts目录
  2. Hexo生成并发布

MkDocs

虽然Hexo非常不错,但不折腾就难受

鉴于Hexo部分已经把该做的都做了,这里直接偷懒,拷贝一份Hexo处理后的文件到MkDocs目录。

思路

目录说明

Hexo与MkDocs目录需要在同一级

TL;DR

使用该文件替换Hexo/node_modules/hexo-link-obsidian/index.js即可

思路如下:

  1. 在Hexo执行图片拷贝时,同时复制一份到MkDocs的MkDocs/docs/images目录
  2. 将Hexo处理后的MD文件输出到MkDocs的MkDocs/docs目录
    • 处理不正确的URL
    • 重新添加元数据信息到处理后的MD
    • 写入到abbrlink.md文件
  3. 将处理后的文件链接写入到MkDocs/docs/SUMMARY.md,推荐搭配mkdocs-literate-nav插件使用

MkDocs使用

至此完成Hexo与MkDocs的联动,在前两步的基础上执行:

  1. 整理SUMMARY.md,构建nav导航
  2. MkDocs生成并发布

成果

已知不足

MkDocs

  • Categories界面点击分类并无对应子界面
  • Categories不兼容当前使用的格式
  • RSS无法使用
  • Tag不完善
  • MkDocs的标题链接为英文+编号,无法对应

最后更新 : 2025年3月17日
创建日期 : 2022年7月12日
Author : chushen