quartz-research-note/content/ObsidianとQuartzで部分的に公開したメモを作る.md
Tomoya Matsuura 36bca3d4b7
All checks were successful
Build / build (push) Successful in 2m57s
[obsidian] vault backup: 2024-04-10 15:51:52
2024-04-10 15:51:52 +09:00

2.5 KiB
Raw Permalink Blame History

date
2023-02-09

#obsidian #quartz

  • 元々contentObsidianのvaultになっているとする
  • content/private以下に公開したくないファイルを置くとする
    • ただ、Gitで履歴は追えてほしい
  • 最も簡単な方法としては、GitHubやGiteaのリポジトリ自体を非公開にしてしまうこと
    • しかし、できればパブリックなートはやはり履歴をGithubのhistoryとかに飛ばして追えるようにしたい
  • なので、content/privateをsubmoduleにして、submodule以下はプライベートリポジトリにする

リポジトリ側の準備

GitHubとかGitea上にリポジトリをプライベートで作る。

content/private以下でgit init、git remote add origin <sshのgitアドレス>で登録、

ファイルを適当にコミットしてgit push -u origin master

元のリポジトリに戻ってsubmoduleを作る。

元々private以下にファイルがコミットされてる場合はgit filter-branchで歴史上からファイルの存在を消し去る必要がある。

私はまだ試験中でprivate以下にはどうでもいいファイルしか入れてなかったのでgit rm -r --cached content/privateするだけでよかった。

一旦content/private以下のファイルが消えたら、git submodule add <sshのgitアドレス> content/private

.gitmodulesが作られる。そのままではbranchの指定がないが、しないと後でobsidianのプラグインが困ってしまうので指定しておく必要あり。

[submodule "content/private"]
path = content/private
url = <sshのgitアドレス>
branch = main

この.gitmoduleも含めてコミットする。

Obsidianの設定

obsidian-gitのプラグインには、バックアップの作成時にsubmoduleのアップデートを考慮してくれる"Update Submodule"オプションが下の方にある。これをオンにする。 あと、vaultはリポジトリ全体から見ると一つ階層が下なので、サブモジュールの相対パスがずれてしまうため、Custom base pathを../にしなければならない。

!img/obsidiangitsubmodule.png

できたらCommand Paletteから"Git: create backup"で正しくcommitとpushができてるか確認する

Quartzのテーマをいじる

quartz/components/ContentMeta.tsxをいじってcreated date, modified dateに加えて、git historyへのURLを追加するこの辺はQuartzのDiscordに書いてあったものを参考にしたので割愛

テスト