quartz-research-note/content/ObsidianとQuartzで部分的に公開したメモを作る.md
Tomoya Matsuura(MacBookPro) 1b0bed27db
All checks were successful
Build / build (push) Successful in 1m37s
[obsidian] vault backup: 2024-02-09 00:38:38
2024-02-09 00:38:38 +09:00

54 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2023-02-09
---
#obsidian #quartz
- 元々`content`が[[Obsidian]]の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に書いてあったものを参考にしたので割愛