近期技术实践: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仓库的指定位置。
配置步骤
- 基础设置:在插件中填写GitHub仓库、用户名、Token和分支信息。
- 上传路径:指定笔记在GitHub中的存储目录,例如我的Hexo博客文章位于
source/posts,故设为固定文件夹。 - 发布机制:在笔记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。
实现步骤
- 创建Actions工作流:在
.github/workflows/cos-deploy.yml中定义自动化任务。 - 环境变量配置:于GitHub设置中添加
TENCENT_CLOUD_SECRET_ID、TENCENT_CLOUD_SECRET_KEY、COS_BUCKET、COS_REGION四个密钥。 - 工作流逻辑:
- 检出代码
- 缓存依赖
- 构建Hexo静态文件
- 使用coscmd工具同步至COS(支持增量更新与文件删除)
域名与访问优化
上传后绑定自定义源站域名,测试显示访问IP多样,速度显著优于Netlify+CDN组合,体验更为丝滑。
数据可视化:Dataview插件实战
曾推荐过微信读书Obsidian插件(weread),它能同步阅读笔记,但默认展示方式不够直观。结合obsidian-dataview插件,可实现动态数据过滤与展示。
应用场景
Dataview作为高人气插件,支持从笔记库中提取、排序和呈现数据。针对读书笔记,它利用weread提供的Frontmatter(如书名、作者、阅读时间)生成定制化视图。
示例代码
1 | table author, lastReadDate |
此代码从read/weread文件夹查询数据,按最后阅读时间倒序展示作者和信息。
发布优化
直接在Hexo中发布Dataview笔记仅显示代码行,但通过Enveloppe插件的Dataview渲染功能,可在上传前转换为标准Markdown,确保博客中完美呈现书目列表。
这些实践不仅提升了工作效率,更为后续探索开辟了新路径——技术折腾永无止境!