obsidianで書いたものをcloudflareで公開したい。
quartzを使うことでmarkdownをサイト化してくれる。obsidianのmd -> quartz でhtml化 -> cloudflareでサイト構築をする
quartzの導入
git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create
quartzの起動
npx quartz build --serve
package.jsonの定義
npm run の挙動は package.jsonで定義される
npm run pub
だけで、obsidian→quartz→cloudflare が完結するように設定できる
"scripts": {
...
"build": "quartz build",
"serve": "quartz build --serve",
"pub": "/opt/homebrew/bin/rsync -av --iconv=utf-8-mac,utf-8 --delete ~/Library/\"Mobile Documents/iCloud~md~obsidian/Documents/obsidian/public/\" ~/quartz/content/ && npx quartz build && npx wrangler pages deploy public --project-name=mysite --commit-dirty=true"
},
注意点としてはmac NFD問題を解決するためにhomebrewのrsyncを使う必要がある。mac defaultのrsyncだとiconvオプションがない
cloudflare認証
たまに人間が認証する必要がある:
npx wrangler login
永続化するにはAPIトークンを発行する必要がある、package.jsonも長くなるので、とりあえず手動でやる
latexの表示
KaTeXは爆速だけど様々な不都合点がある、MathJaxに変更したほうがきれい
renderEngine: katex → mathjax