近期技术实践:Obsidian博客自动化与数据可视化

近期技术实践:Obsidian博客自动化与数据可视化

最近花了不少时间优化博客工作流,主要围绕Obsidian集成、自动化部署和笔记可视化展开。以下是具体实践分享。

Obsidian与GitHub集成:Enveloppe插件应用

使用Obsidian一段时间后,深感其本地笔记管理的便捷性,于是萌生了用它直接更新托管在GitHub上的Hexo博客的想法。该博客原本通过Netlify构建部署,传统更新方式是利用github.dev在线编辑,但若能无缝衔接Obsidian,效率将大幅提升。

GitHub为此提供了多种可能:

  • obsidian-git:将整个博客设为Obsidian仓库,实现同步更新。
  • obsidian-digital-garden:托管笔记至GitHub,通过Vercel构建静态站点。

但这些方案更适用于全新项目,对于已有大量笔记和博客内容的我来说不够优雅。最终,obsidian-github-publisher(现更名为Enveloppe)脱颖而出,它能将任意笔记自动或手动同步到GitHub仓库的指定位置。

配置步骤

  1. 基础设置:在插件中填写GitHub仓库、用户名、Token和分支信息。
  2. 上传路径:指定笔记在GitHub中的存储目录,例如我的Hexo博客文章位于source/posts,故设为固定文件夹。
  3. 发布机制:在笔记Frontmatter中添加share: true属性,右键即可发布。

该插件还全面支持Wikilinks、Dataview及Mermaid、LaTeX等富文本元素,详细功能可参考官方文档。

Hexo博客迁移至腾讯云COS

原博客部署于Netlify并搭配国内CDN,但访问体验始终不够流畅。意识到Hexo作为静态博客的优势在于部署灵活性后,决定迁移至腾讯云对象存储(COS)。

迁移优势与方案

  • 部署多样性:除Netlify外,COS、FTP、Linux主机等均可部署Hexo。
  • 资源分离:得益于WordPress时代养成的习惯,图片、JS等静态资源已托管第三方,简化迁移过程。
  • 自动化构建:鉴于博客主题限制(仅支持Node.js 14.x),放弃插件方式,改用GitHub Actions自动构建并推送至COS。

实现步骤

  1. 创建Actions工作流:在.github/workflows/cos-deploy.yml中定义自动化任务。
  2. 环境变量配置:于GitHub设置中添加TENCENT_CLOUD_SECRET_IDTENCENT_CLOUD_SECRET_KEYCOS_BUCKETCOS_REGION四个密钥。
  3. 工作流逻辑
    • 检出代码
    • 缓存依赖
    • 构建Hexo静态文件
    • 使用coscmd工具同步至COS(支持增量更新与文件删除)

域名与访问优化

上传后绑定自定义源站域名,测试显示访问IP多样,速度显著优于Netlify+CDN组合,体验更为丝滑。

数据可视化:Dataview插件实战

曾推荐过微信读书Obsidian插件(weread),它能同步阅读笔记,但默认展示方式不够直观。结合obsidian-dataview插件,可实现动态数据过滤与展示。

应用场景

Dataview作为高人气插件,支持从笔记库中提取、排序和呈现数据。针对读书笔记,它利用weread提供的Frontmatter(如书名、作者、阅读时间)生成定制化视图。

示例代码

1
2
3
table author, lastReadDate 
from "read/weread"
sort lastReadDate desc

此代码从read/weread文件夹查询数据,按最后阅读时间倒序展示作者和信息。

发布优化

直接在Hexo中发布Dataview笔记仅显示代码行,但通过Enveloppe插件的Dataview渲染功能,可在上传前转换为标准Markdown,确保博客中完美呈现书目列表。

这些实践不仅提升了工作效率,更为后续探索开辟了新路径——技术折腾永无止境!