ar.falsy.cat/content/note/info-tech/publish-obsidian-by-quartz.md

2.7 KiB
Raw Blame History

title tags
ObsidianとQuartzによるセカンドブレインデジタルガーデンの構築
note
info-tech
web

概要

  • QuartzObsidianのVaultを公開する
  • セカンドブレインデジタルガーデン」という御大層な言葉はQuartzの紹介文からの引用

初期設定

  1. Quartzをforkする
  2. GitHub Actionsを有効化
  3. repoの設定でworkflow permissionread and write permissionsへ変更
    • これしないとdeployに失敗する
  4. repoをローカルにclone
  5. data/config.yamlをいい感じに編集
    • authorなど
  6. config.tomlをいい感じに編集
    • baseURLなど
  7. pushする
  8. deployが終わったらGitHub Pagesのドメイン設定をする

記事の執筆

  1. ローカルrepoのcontent/ディレクトリをVaultとしてObisidianで開く
    • content/templates/は弄ってはいけない
  2. 記事を書く
  3. pushする

ローカルプレビュー

  • dockerがあればリポジトリrootでmake dockerすればlocalhost:1313にアクセスできる
  • Makefiledockerターゲットのコマンドを下のように置き換えることで次の問題が解決できる
    • Ctrl+Cでサーバーが終了しない
    • make dockerする度にゴミコンテナが残る
docker run -it --init --name quartz-preview --volume=$(shell pwd):/quartz -p 1313:1313 ghcr.io/jackyzha0/quartz:hugo; docker rm quartz-preview

カスタマイズ

Recent Notesの表示数を変更する

  1. layouts/partials/recent.htmlfirst 3 $notesを変更する

トップページにグローバルグラフを表示する

  1. data/graphConfig.yamlenableGlobalGraphtrueにする

記事にRelated Notesを表示する

  1. layouts/partials/recent.htmlを作成
  2. layouts/_default/single.htmlの好きな位置に{{partial "related.html" .}}を挿入
  3. i18n/en.tomlrelated_notesの翻訳を追加

layouts/partials/recent.html

<div class="content-list">
  <h2>{{ i18n "related_notes" }}</h2>
  {{$notes := .Site.RegularPages.Related .}}
  {{partial "page-list.html" (first 3 $notes)}}
</div>

所感

  • 扱いやすいObsidianで執筆して,Quartzでいい感じに公開ができた
  • 執筆のためにリポジトリをcloneしなければならないため記事数が増えた時の複数PCの同期コストが問題になりそう
    • ブランチ分けてPullRequest活用すれば解決する
      • 記事書くたびにPR作るのはクソめんどくさそう