Principles for Digital Gardening
I want to consolidate all of baku89.icon’s notes and portfolio into a single homepage by the end of 2025.
From there, I’m thinking through a set of principles to implement Digital Gardening in some sort of CMS system much more concretely.
Principles and Their Design Implications
Don’t trust classification -- 分類を信じない
Place all pages directly under the root
Don’t distinguish between content and taxonomy.
“Linking to A” ⇔ “Belongs to A” is treated as equivalent
Use a single post type.
Instead of creating distinct post types like author and news with
Abandon the idea of completion -- 完成概念を捨てる
Pages are to be continually updated.
Avoid using chronological timelines unless explicitly written as a diary
Make it permanent -- 永続的にする
Trust plain text.
HTML or Markdown will likely outlast proprietrary services like Newt or MicroCMS, even if they allow much richer and intuitive experience for writing
Make it Wayback-Machine-friendly.
SEOのためではなく、Wayback Machneに適切にクロールされるためにServer-Side Generationする
Secure a domain at least for a decade.
Ensure URLs remain persistent.
Page Status
published: true: パーマリンクが固定され、バージョン管理がなされている状態。引用することができる
論文におけるIn Proceedings の概念。一度掲載されたものは、DOIが付与され、内容が改ざんされることなく、本人の意志を問わず永続的に公開され続ける
published: false: 公開されず、書いた本人にしか見れない
draft: 無責任なメモ書き。デフォルトの状態。公開されてはいるが、随時内容が変わる可能性があり、かつアーカイブもされない
とすると published | draft | private のほうが良くない?
Page Visibility Settings
sage: 一覧表示はされないが、リンクをたどることで到達することは出来る
unlisted: URLを知らない人にしか見れないページ。URL末尾にパスワード代わりのハッシュが付く。baku89.com/the-post-name/aif9d38xe21 のように
protected: GitHub Sponsor, Patoreon等、何らかのメンバーシップによる認証を必須とする
パスワード付きのページは要らない。
code:page-attributes.ts
type PageAttribute = {
title: string | {ja?: string; en?: string}
date: string
published: boolean
draft: boolean
restrict: 'sage' | 'unlisted' | 'protected'
}
#memo
https://youtu.be/fY2sfrV2zho?si=ELoBmIZHpwseCDkI
メモとWikiとCMSを兼ね備えたデジタル庭を今年中に整えたい
欲しい
ObsidianのようなLocal-first性
CosenseのようなCRDTベース?の共同編集(あまり必須じゃない)
Nuxt ContentのようなMarkdown + 拡張構文(MDC)
どうしたい?
現状のポートフォリオなどのコンテンツを全部そっちに移す
画像やCVなどもそちらに
実装
Wordpress + WPGraphQL
Xserverで(あんまり褒められた使い方じゃないけど)Node.js/Nitroを走らせる
メモ
Nuxt ContentのqueryContent()あたりで、REST APIらしきものは実装できる
Voult全体をgitで管理するのもいいが、そうなるとモバイルでの編集性が悪くなる
https://github.com/vrtmrz/obsidian-livesync?tab=readme-ov-file
Parsing Obsidian-specific syntax in Nuxt Content
https://www.codybontecou.com/nuxt-content-and-obsidian-links