由于您已在本地安装了 Quartz,无需再次 fork 或克隆仓库。只需检出 alpha 分支,安装依赖项,然后导入旧仓库即可。
git fetch
git checkout v4
git pull upstream v4
npm i
npx quartz create
如果你遇到类似 fatal: 'upstream' does not appear to be a git repository
的错误,请确保已将 upstream
添加为远程仓库:
git remote add upstream https://github.com/jackyzha0/quartz.git
运行 npx quartz create
时,系统会提示您如何初始化内容文件夹。在此处,您可以选择导入或链接之前的内容文件夹,Quartz 将如预期般正常工作。
Note
如果您希望使用的现有内容文件夹位于不同分支的_相同_路径,请在其他位置_不同_路径重新克隆仓库以使用该文件夹。
主要变更
- 移除 Hugo 和
hugo-obsidian
:Hugo 在早期版本的 Quartz 中表现良好,但也使得非 Golang 和 Hugo 社区的用户难以完全理解 Quartz 的内部运作机制,并无法根据需求进行定制。Quartz 4 现在采用基于 Node 的静态站点生成流程,这将带来更友好的错误提示和整体更流畅的用户体验。 - 完全热重载:
hugo-obsidian
与 Hugo 集成的诸多问题导致监视模式无法重新触发hugo-obsidian
更新内容索引。这造成了许多监视模式输出不准确的异常情况。Quartz 4 现在采用统一的解析、过滤和输出管道,每次变更都会触发该流程,确保热重载始终准确。 - 用 JSX 替代 Go 模板语法:Quartz 3 使用 Go 模板创建页面布局。然而,该语法在处理复杂渲染(如文本处理)时表现欠佳,且对 Quartz 3 进行重大布局调整非常困难。Quartz 4 使用名为 JSX 的 JavaScript 语法扩展,允许您编写类似 HTML 的布局代码,显著提升了可理解性和可维护性。
- 全新的可扩展配置和插件系统:Quartz 3 在不了解 Hugo 局部模板技术细节的情况下难以配置。扩展功能更是难以实现。Quartz 4 的配置和插件系统专为用户扩展设计,同时使升级到新版本 Quartz 更加便捷。
需要更新的内容
- 您需要更新部署脚本。详情请参阅托管指南。
- 确保 GitHub 上的默认分支从
hugo
更新为v4
。 - 文件夹与标签列表也发生了变化。
- 文件夹描述应放置在
content/<文件夹名称>/index.md
,其中<文件夹名称>
是文件夹的实际名称。 - 标签描述应放置在
content/tags/<标签名称>.md
,其中<标签名称>
是标签的实际名称。
- 文件夹描述应放置在
- Quartz 3 和 Quartz 4 之间的 HTML 布局可能有所不同。如果您依赖特定的 HTML 层级结构或类名,可能需要更新自定义 CSS 以反映这些变化。
- 如果您曾定制 Quartz 3 的布局,可能需要将这些修改从 Go 模板转换为 JSX,因为 Quartz 4 不再使用 Hugo。关于组件定制,请查阅创建组件指南获取详细信息。