Intro
Quartz v4でObsidianを公開する。
Method
Git Repoのセットアップ
commit: b397dae95113b0eaaf8054adf951fc533791bd0d
git clone https://github.com/jackyzha0/quartz.git
cd quartz
git branch stardev
git switch stardev
(GitHubでrepositoryを作成)
(originをGitHubのrepositoryに設定)
git push origin stardev
git branch --set-upstream-to=origin/stardev stardev
念の為、GitHub上でブランチの削除とforce pushをprotectした。
Quartzのセットアップ
nodenvで20.9.0をインストールした。
npm i
npx quartz create
すると、どのようにセットアップするか聞かれた。ひとまず、
- Choose how to initialize the content…: iCloud上のObsidian Vaultへのsimlink
- Choose how Quartz should resolve links…: Treat links as shortest path
と選択。
Configを設定
以下のように設定した。
| 項目 | 値 |
|---|---|
| PageTitle | StarDev |
| analytics | null |
| locale | ja-JP |
| baseUrl | blog.dojang.jp |
| ignorePatterns | ”Untitled”を追加 |
このページ自体をObsidianで記述しているため、npx quartz build --serveで正常に描写されるか確認する。
(追記:現状のQuartzの設定はQuartzのカスタマイズを参照。)
Gitで追跡
gitにここまでの変更をコミットし、npx quartz sync --no-pull。
ここで気づいたが、contents/をiCloud上へのシンボリックリンクに設定しているため、少々特殊なことが起こっているようだ。
Detected symlink, trying to dereference before committing
quartz syncを実行した時の動作は以下のようになっているように見受けられる。
contents/のシンボリックリンクを解除contents/配下のファイルをコピー- コミット
- シンボリックリンクを元に戻す
- 何らかのpush?(おそらく、「v4」ブランチをpushしている)
そのため、この実行後はシンボリックの部分が常にstageされていないという表示になる。 これを無視するとして、記事を書いた後は以下のように操作すれば良いこととなる。
npx quartz sync --no-pull
git push
デプロイ
Cloudflare Pagesでデプロイすることにした。 Ref: Cloudflare Pages
ブランチ名だけstardevに設定し、後は記事の通りに進めた。
Cloudflareでのドメインの設定は、Pagesの中の「Custom domains」タブから設定した。画面の指示に従うだけだったので、すんなりと設定できた。
Last Words
これからQuartzを色々いじってみて、カスタマイズしていきたい。 具体的には、
quartz sync時のブランチ名の変更- その他の機能の理解
を試す。
また、今回はquartzのセットアップ時に既存のObsidian Vaultへのシンボリックリンクを置く選択をしたため、アクセスのトップ時に404が出ていた。これは、index.mdを作成することで解決した。