obsidian的发布方案

这里是我在确定使用 obsidian 记录笔记以后. 对比选择我的博客发布方案.

之前我的博客和笔记内容是割裂的. 一直使用 vscode 编写博客, 然后 hugo 发布. 而现在我想重新组合我的工作流.

先说结果,我选的 HEIGE-PCloud/DoIt: A clean, elegant and advanced blog theme for Hugo..没有哪种方案是十全十美的, 于是我先确定了优先级.

  • seo: 既然是发布系统. 那么发布出去最重要的就是 seo 优化了.
  • 评论: 交流, 反馈都会直接帮助到内容, 重要性排名第二.
对比项hugo-quartzhugo-doit官方 publish
#todo标签无法过滤解析 🚫无法过滤解析 🚫支持 ✅
支持预览页面支持 wikilink 和普通 link, 但效果一般 ⚠️不支持 🚫支持 ✅
需要做的改动obsidian 发布到 quartz ℹ️移动 static 文件夹并配置 staticDirc ℹ️不需要 ✅
markdown 正常 link 到 head只能定位到 page⚠️通过 goldmark-wiki 支持 ⚠️支持 ✅
seo6 分10 分10 分
评论🚫🚫

在确定了使用 doit 后,其中最让我纠结的就是语法问题.

  1. 禁用 wikilink 语法 - 相对于根目录. 需要在主题内修改 md 链接的渲染. 检测到 md 结尾就绕过原有逻辑,去除 md 结尾, 加上 /posts/ 前缀.
  2. 禁用 wikilink 语法 - 相对于当前文件, 需要开启 uglyURLs, 同时将 md 改成 html
  3. 采用 wikilink 语法, 在我编写笔记的时候好用. 但是发布需要渲染成 uglyURLs. 且要改源码编译 hugo 加入 goldmark-wikilink. 同时改动 wikilink 的渲染逻辑

分析:

2 比 1 要好, 不是绕过原有逻辑, 而是在原有逻辑后加入判断. 同时有兼容性好. 任意 markdown 编辑器都通用

3 比较麻烦, 同时如果

#todo/笔记

powershell

# 设置源文件夹和目标文件夹的路径
# $sourceRootFolder = "D:\files\posts"
# $targetRootFolder = "D:\code\kentxxq.github.io\content\posts"

$sourceRootFolder = "obsidian文档路径"
$targetRootFolder = "博客路径\content\posts"

# 切换到目标文件夹
Set-Location -Path $targetRootFolder
git pull
Write-Host "github拉取完成"

Get-ChildItem -Path $targetRootFolder | Remove-Item -Force -Recurse
Write-Host "已删除存在的内容"

# 需要拷贝的文件夹
$folders = @("笔记", "附件", "日记")

foreach ($folder in $folders) {
    Copy-Item -Path "$sourceRootFolder\$folder" -Destination "$targetRootFolder\$folder" -Recurse -Force
}

Write-Host "文件拷贝完成"

Write-Host "查看效果"
Get-ChildItem -Path $targetRootFolder

git add -A
git commit -am "文章更新"
git push
Write-Host "推送完成"