jackyzha0/quartz是利用 hugo 生成個(gè)人數(shù)字花園靜態(tài)網(wǎng)站的「模板」粹断,對(duì)中文支持良好,而且可以和 Obsidian 結(jié)合使用凿宾,可以用來(lái)將 Obsidian 筆記庫(kù)部署成靜態(tài)網(wǎng)站麻捻。它本質(zhì)上做了三件事情:
- 用jackyzha0/hugo-obsidian解析 Obsidian 中的 wikilink纲仍,提供給 hugo;
- 用 hugo 生成靜態(tài)網(wǎng)站文件芯肤;
- 通過(guò) github action 簡(jiǎn)化將靜態(tài)網(wǎng)站發(fā)布到 github pages 的步驟。
搜索一通压鉴,網(wǎng)絡(luò)上關(guān)于如何結(jié)合使用 quartz 和 Obsidian 的中文資料只有一篇崖咨。而且我的需求并不是要部署到 github pages 上,只是想局域網(wǎng)內(nèi)建站油吭,所以不能完全按照 quartz 的官方文檔操作击蹲。2023-07-11 晚上跑通了之后,在這里記錄一下步驟備忘婉宰。
克隆 quartz 項(xiàng)目到本地
quartz 其實(shí)相當(dāng)于一個(gè)空的 hugo 項(xiàng)目+作者自己制作的自動(dòng)化腳本歌豺,里面有完整的項(xiàng)目文件結(jié)構(gòu)。我們的 Obsidian 筆記需要放在項(xiàng)目中的對(duì)應(yīng)目錄里才能起作用心包。所以首先需要克隆整個(gè) quartz 項(xiàng)目类咧。
git clone https://github.com/jackyzha0/quartz.git
克隆后要確保項(xiàng)目處于hugo
分支上⌒诽冢可以看到項(xiàng)目的文件結(jié)構(gòu)和 hugo 基本是一樣的痕惋。其中最需要關(guān)注的是content
文件夾郭赐,我們的所有筆記文件都需要放在這個(gè)文件夾內(nèi)(包括筆記相關(guān)的附件)宪巨,參見(jiàn) hugo 文檔對(duì)此文件夾的定義:
All content for your website will live inside this directory. Each top-level folder in Hugo is considered a content section. For example, if your site has three main sections—
blog
,articles
, andtutorials
—you will have three directories atcontent/blog
,content/articles
, andcontent/tutorials
. Hugo uses sections to assign default content types.
在content
文件夾中,quartz已經(jīng)準(zhǔn)備好了一些內(nèi)容愈腾,他們各有作用:
- notes文件夾:這里存放你的筆記內(nèi)容
- private文件夾:存放私有內(nèi)容炉爆,在生成靜態(tài)網(wǎng)站的過(guò)程中會(huì)將其排除在外
- templates文件夾:用來(lái)存放Obsidian模板
-
_index.md
文件:主頁(yè)文件
使用 Obsidian 編輯筆記
Obsidian本質(zhì)上是作為hugo的文章內(nèi)容編輯器堕虹,參與到整個(gè)工作流中卧晓。在Obsidian中將content
文件夾作為一個(gè)筆記vault打開(kāi)即可,同時(shí)須在Obsidian中作幾項(xiàng)設(shè)置赴捞,改變Obsidian存儲(chǔ)筆記文件和處理鏈接的默認(rèn)行為:
其中設(shè)置新筆記都默認(rèn)存儲(chǔ)在note
文件夾下逼裆,這并不是必須的,只是為了符合quartz的默認(rèn)做法螟炫。不設(shè)置后面也能跑得通波附。
附件管理
這里需要注意Obsidian對(duì)于附件的處理。平時(shí)編輯Obsidian筆記的時(shí)候昼钻,經(jīng)常把圖片等文件拖拽進(jìn)筆記掸屡,Obsidian會(huì)將這些文件作為附件自動(dòng)轉(zhuǎn)存到筆記vault中,具體有4種方式可供選擇:
- vault folder:直接把附件轉(zhuǎn)存到筆記vault文件夾然评,在這里即
content
文件夾仅财。 - in the folder specified below:轉(zhuǎn)存到一個(gè)我們自己指定的文件夾下。
- same folder as current file:保存到當(dāng)前筆記文件的同目錄下碗淌。
- in subfolder under current folder:如果你的筆記在
content/subfoler
目錄中盏求,Obsidian會(huì)在該目錄下新建一個(gè)子目錄用來(lái)存放附件,目錄名稱可以自己指定亿眠。
這幾種方式都不影響后續(xù)步驟碎罚,只需要根據(jù)自己的附件管理習(xí)慣選擇就可以。
設(shè)置新筆記模板
---
title: "Example Title"
tags:
- example-tag
---
Rest of your content here...
安裝先決工具
后續(xù)步驟依賴到一些工具纳像,在這里要先行安裝好:
- Git
- Go:后面的 hugo 和 hugo-obsidian 都是基于 Go 的荆烈。
- hugo-obsidian:用來(lái)解析 Obsidian 筆記雙鏈,提供給 hugo竟趾。
- hugo:需要安裝 extended 版本憔购。
- make:在 Windows 上沒(méi)有 make 命令,需要單獨(dú)安裝岔帽。quartz 的一些自動(dòng)化功能是通過(guò) makefile 實(shí)現(xiàn)的玫鸟,所以需要用到。
這里我直接使用 Chocolatey 安裝犀勒,比較方便屎飘。
choco install go
choco install git
choco install hugo-extended
choco isntall make
go install github.com/jackyzha0/hugo-obsidian@latest
由于眾所周知的原因,安裝 hugo-obsidian 的時(shí)候需要通過(guò)設(shè)置http_proxy
贾费、https_proxy
這兩個(gè)環(huán)境變量來(lái)讓 go 使用代理——[[在Powershell中設(shè)置環(huán)境變量]]……
更改quartz默認(rèn)設(shè)置
中文設(shè)置
quartz項(xiàng)目默認(rèn)對(duì)中文有很好的支持枚碗,不需要額外設(shè)置。但是默認(rèn)網(wǎng)站的很多部件是用英語(yǔ)顯示的——例如搜索框铸本、頁(yè)腳的反向鏈接等——需要修改根目錄config.toml
配置文件肮雨,設(shè)置默認(rèn)語(yǔ)言為中文:
defaultContentLanguage='zh-cn'
在項(xiàng)目i18n
目錄中可以查看還支持哪些語(yǔ)言。
其他設(shè)置
在data
目錄下還有graphConfig.yaml
箱玷、config.yaml
這兩個(gè)配置文件怨规,可以對(duì)quartz的具體功能做配置陌宿。
生成預(yù)覽網(wǎng)站
在用 Obsidian 編輯筆記的過(guò)程中,quartz 可以提供本地預(yù)覽波丰。直接在 quartz 項(xiàng)目文件夾下運(yùn)行命令即可壳坪。本質(zhì)上是通過(guò)作者寫(xiě)好的 makefile,自動(dòng)化調(diào)用了 hugo-obsidian 和 hugo掰烟。
make serve
運(yùn)行命令后爽蝴,默認(rèn)在http://localhost:1313/
訪問(wèn)本地預(yù)覽。
預(yù)覽網(wǎng)站并不能用作正式訪問(wèn)纫骑,它只是通過(guò)hugo server
指令將網(wǎng)站內(nèi)容緩存在內(nèi)存里蝎亚,并沒(méi)有生成正式的靜態(tài)網(wǎng)站文件,所以訪問(wèn)中會(huì)遇到一些問(wèn)題先馆,例如視頻這樣的大附件沒(méi)辦法正常顯示发框。
生成靜態(tài)網(wǎng)站文件
首先需要修改項(xiàng)目根目錄中的config.toml
配置文件,將第一行baseURL選項(xiàng)設(shè)置成自己的網(wǎng)站地址煤墙,例如:baseURL = "http://localhost:8080/"
梅惯。這一步很重要,否則之后編譯出來(lái)的許多靜態(tài)資源(js仿野、css)都無(wú)法訪問(wèn)铣减,影響網(wǎng)站運(yùn)行。
前一步生成預(yù)覽網(wǎng)站的過(guò)程中脚作,make serve
命令已經(jīng)調(diào)用了hugo-obsidian對(duì)筆記做了一些處理葫哗,這里只需要直接用hugo編譯即可。
hugo
編譯完成后生成的靜態(tài)網(wǎng)站文件全部位于public
文件夾下鳖枕。自己部署到服務(wù)器上就可以訪問(wèn)了魄梯。