なぜ
ここ1年くらい、Obsidianでメモを取っている
TAKE NOTES!――メモで、あなただけのアウトプットが自然にできるようになる - ズンク・アーレンス 二木夢子とかアトミック・シンキングといった本を読んで、小さいメモを積み重ねて記事、あるいは本を書くという考え方を知ってから度々知識メモみたいなのを集積している
インターネットで技術的な調べ物をしているとCosense(旧Scrapbox)で役立つ情報を公開してる人がちらほらいて、自分のメモも他人にとって有益だったりしないかな、と思い公開することにした (例えばkawashimaさんのとか、すごい参考になる)
スタンスとしてはブログというかあくまでメモの公開、あるいは長ロングなツイートくらいの気持ちでやっていきたい
なので未完成でも機密情報さえマスキングできたらバンバン公開していくつもり
アーキテクチャ
技術要素としてはこんな感じ。
- Obsidianプラグイン
- Quartz
- Cloudflare pages(ドメインが野暮ったくないので)
- Cloudflare R2
- Github Actions
//TODO: あとでここに図を貼る
リポジトリには記事公開しないプライベートなメモも載ってるからPublicにはできないけど、「Obsidian Quartz」とかで検索すると出てくるやつそのままな感じ
この辺とか参考にさせていただいた
簡単に言うと都度Obsidian Remotely SaveでR2(S3互換ストレージ)に保存して、毎日深夜0時にGithubActionsでR2にあるmarkdownファイルをaws s3 syncで持ってきてgit commitする。
その後cloudflare pagesがwebhookを受け取ってQuartzをデプロイしてくれるようなワークフローになっている
ちょっと工夫してるのはトップページで、ObsidianのDataview Serializerで最新の記事20件を出している
Dataviewはクエリ結果をプラグインがレンダリングしてくれるので、そのままではstaticな記事としては公開できない。 そこでDataview Serializerプラグインを使うと下のようなコメントに挟まれたクエリを評価してピュアなMarkdownとして吐き出してくれる
<!-- QueryToSerialize: table date, tags from "Notes/topics" where publish = true sort date desc limit 20 -->
<!-- SerializedQuery: table date, tags from "Notes/topics" where publish = true sort date desc limit 20 -->
| File | date | tags |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------ | ---------------------------------------------------------------- |
| [[このインターネットの片隅でObsidianをブログとして公開してみる]] | February 03, 2025 | <ul><li>ポエム</li><li>Obsidian</li></ul> |
| [[lazyvimでpythonを書く設定]] | January 25, 2025 | <ul><li>プログラミング</li></ul> |
| [[Notes/topics/アジャイルな見積もりと計画づくりのための12のガイドライン.md\|アジャイルな見積もりと計画づくりのための12のガイドライン]] | January 13, 2025 | <ul><li>アジャイル</li></ul> |
| [[Notes/topics/スクラムの概要.md\|スクラムの概要]] | January 12, 2025 | <ul><li>アジャイル</li></ul> |
| [[sqlc + sqldef + testcontainersの威力]] | September 17, 2024 | <ul><li>Go</li></ul> |
| [[Cloud RunからCloud SQLに接続する]] | September 17, 2024 | <ul><li>GoogleCloud</li></ul> |
| [[Lambda+EventBridge Scheduleでジョブを定期実行する]] | September 17, 2024 | <ul><li>AWS</li><li>Lambda</li><li>EventBridgeSchedule</li></ul> |
| [[ゲストログイン・匿名ログインをcognitoで実装する]] | September 17, 2024 | <ul><li>AWS</li><li>Cognito</li></ul> |
| [[CognitoのAdminUpdateUserAttributeでエイリアスに設定しているEmailを変更する]] | January 30, 2024 | <ul><li>Cognito</li><li>AWS</li></ul> |
| [[Firebase Authenticationでの匿名ログイン]] | January 28, 2024 | <ul><li>GoogleCloud</li><li>FirebaseAuth</li></ul> |
<!-- SerializedQuery END -->
あとは細かい工夫だがAuto card linkプラグインは使わず(これもピュアなmarkdownではないため)、TemplaterでカードリンクのHTMLを貼り付けている
工事予定
土日、子供が寝ている間に少しずつ改善はしていきたい
- 画像を貼れるようにする
- 今は画像が全部リンク切れになっている(ヤバい)
- 全公開するわけにはいかないので、記事で使われる画像だけアップする仕組みとか考えなきゃいけない
- 読書メモを公開する
- この記事冒頭から書籍リンクが切れてる(これもヤバい)
- 単純に秘匿情報混じってないか、精査ができてない
- サイドバーが欲しい
- トップページからしかメモにたどり着けないけど、もう少しタグとかフォルダとかから漁れるとブログらしくなりそう