Abstract

本站点搭建采用 Obsidian+Quartz+Vercel(+OSS),用户只需在本地专注于 Obsidian,Obsidian-git 会自动上传本地仓库到远程,并借助 Quartz 生成静态文件部署到 Vercel。

Quartz:官方文档 | 中文文档 | 示例网站

本地预览:

npx quartz build --serve

小白教学:0成本搭建基于github actions+obsidian+quartz的持续化集成博客最佳实践_哔哩哔哩_bilibili


Error

Plugin.RemoveDrafts()Plugin.ExplicitPublish() 不要连用,否则会报错: Warning: you seem to be missing an index.md home page file at the root of your content folder. This may cause errors when deploying. )导致部署失败,页面跳转至 404.

我们采用默认的 Plugin.RemoveDrafts(),当文章设置私密时,在 font-matter 中设置属性 draft: true 即可,由于不使用 ExplicitPublish 所以无法通过 publish: false 设置

ObsidianFlavoredMarkdown 插件使用高亮时,不能嵌套其他语法(例如加粗行内代码块等),否则高亮失效


阿里云添加二级域名 TXT 授权校验失败

阿里云购买的域名 ben43.cn 未使用官方的 DNS 解析,所以不能在阿里云配置解析记录。之前域名使用了 Cloudflare 的 DNS,所以需要去 Cloudflare 官网去配置二级域名

Cloudflare 添加二级域名,直接添加解析记录,最后绑定到 Vercel 上即可

一般添加二级域名只需添加解析记录即可,然后到服务商的域名处绑定(例如到 vercel 的设置 Domain 中绑定即可),独立托管的二级域名才需要 TXT 解析(以阿里云为例,添加 TXT 解析的前提是使用阿里云本身的 DNS)

DNS 服务器地址

Wiki 双链的好处是附件路径无需理会


.git 和.github 目录能同时存在吗?

是的,.git.github 目录可以同时存在,且它们有不同的功能和作用,彼此并不冲突。如果删除 .git 目录,当前文件夹就不再是一个 Git 仓库,版本历史和所有版本控制功能将丢失。

.git 目录是 Git 版本控制系统的核心部分,独立于平台,任何 Git 仓库都会包含它。 .github 目录是 GitHub 平台特有的,用于配置项目在 GitHub 上的行为(如自动化流程、贡献指南等)。

因此,两者可以同时存在,并且它们互不冲突。.git 处理版本控制,而 .github 用于与 GitHub 平台的集成。

典型项目结构示例:

my-project/
├── .git/               # Git 版本控制目录
├── .github/            # GitHub 特定的配置目录
│   └── workflows/      # GitHub Actions 的工作流
├── src/                # 源代码
├── README.md           # 项目说明文件
└── LICENSE             # 许可证
 

这种结构在许多 GitHub 项目中是常见的,也是推荐的做法。


Git 软回滚:

git reset --soft <commit_hash>

<commit_hash> 通过 git log 获取需要的历史提交哈希值进行软回滚(无需加上<>),昨天使用软回滚的原因是部署失败但找不到 根本问题

Git 回滚和类型介绍


Obsidian 常用插件:


Question

已上传 Github 仓库的文件/目录如何删除(只保留本地版本)

举例:
 
git rm -r --cached content/书单
 
git rm -r --cached content/杂物间
 
git commit -m "Remove directory from tracking"
 
git push origin main