Obsidian知识库静态部署
Obsidian知识库静态部署
#resource / obsidian
#type / howto
#status / growing
[!info] related notes
Obsidian知识库静态部署
问题详情
从 Hexo 迁移到 Obsidian 中,希望能实现静态部署。
解决方案
1. 核心方案对比
| 工具 | 优点 | 缺点 |
|---|---|---|
| Hexo | 专为博客设计,主题丰富 | 需手动迁移Obsidian笔记 |
| Obsidian | 保留双链/图谱,实时同步 | 需额外配置发布流程 |
2. 实现方案(3种主流方式)
方案一:Obsidian + MkDocs(推荐)
特点:保留Markdown原生语法,支持双链转换
graph LR
A[Obsidian Vault] --> B[导出Markdown]
B --> C[MkDocs构建]
C --> D[GitHub Pages部署]
操作步骤:
- 安装插件:
- Obsidian Git:版本控制
- Linter:规范Markdown格式
- 配置
mkdocs.yml:
site_name: My Knowledge Base
nav:
- Home: index.md
- Notes: notes/
plugins:
- search
- markdownextradata# 支持Obsidian双链
- 使用 obsidian-export 转换双链:
obsidian-export vault/ docs/
方案二:Obsidian + Quartz(高阶)
特点:完整保留Obsidian特性(图谱、双链)
# 克隆Quartz模板
git clone https://github.com/jackyzha0/quartz
# 替换content目录为Obsidian库
ln -s ~/obsidian-vault quartz/content
效果:
- 自动生成交互式知识图谱
- 支持
[[内部链接]]语法 - 实时搜索功能
方案三:Obsidian + Hexo(兼容现有博客)
转换工具:
# 将Obsidian库转为Hexo格式
npm install -g obsidian-to-hexo
obsidian-to-hexo ~/obsidian-vault ~/hexo/source/_posts
3. 关键问题解决
双链语法转换
- 问题:
[[内部链接]]无法直接渲染 - 方案:替换为标准Markdown链接:
// 在构建脚本中添加转换逻辑
content.replace(/\[\[(.*?)\]\]/g, '[$1]($1.md)')
附件处理
- 使用
mkdocs.yml配置静态资源:
extra_javascript:
- js/copy-relative-path.js# 保持附件相对路径
自动化部署
GitHub Actions 示例(.github/workflows/deploy.yml):
name: Deploy
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force
4. 效果对比
| 功能 | MkDocs方案 | Quartz方案 | Hexo方案 |
|---|---|---|---|
| 双链支持 | 需转换 | 原生支持 | 需转换 |
| 知识图谱 | 无 | 交互式 | 需插件 |
| 部署速度 | 快(<1min) | 中等(~2min) | 慢(依赖Node) |
| 定制自由度 | 高 | 中 | 极高 |
5. 推荐工具链
- 轻度用户:MkDocs + GitHub Pages
- 知识图谱需求:Quartz
- 已有Hexo博客:obsidian-to-hexo迁移工具
提示:所有方案均建议配合 Obsidian Git 插件实现版本控制,保留原始库的编辑体验。