▌買了一個「自己名字」的網域。
買了10年,$109.83USD,用PayPal付的。
——臉書「內容營利」賺的,還剩不少。
□
從以前的無名、Blogger,再到後來的 Medium 和方格子,我想擁有一個「可以長久存放和經營內容的平台」其實已經很久了。但儘管直到最近,我都還是只在社群平台發表文章。
但,社群平台的缺點,我們都明白:⑴不是自己的,這最直接;⑵不能很好的組織和保存是第二個原因,或許也是最重要的原因——在臉書,我會用「在留言手動附上連結」的方式,土法煉鋼做出「雙向連結」來模仿卡片盒筆記(Zettelkasten)。但模仿終究是模仿而且臉書的搜尋功能,除了「爛透了」之外,我實在不知道還能有什麼更客氣的說法。
但臉書終究有其優點,或者說,像 Obsidian 這樣的筆記軟體,也有其缺點:沒有「對話感」而終究要不只會留下許多的破碎的片段,要不會為了完成一部所謂傑作而永遠也無法完成。反倒,是臉書和知乎,這樣具備社交屬性的平台,才能剛剛好地,不上不下地,讓我能輕鬆完成一些儘管事後難以進一步加工完善,但也至少是完成了的一些產出。
所以,我需要想到一個好的辦法,以「去蕪存菁」:取兩者之長,讓我可以快速完成「作品」,而又保有後續的可延展性;去兩者之短,讓我不會生成即用而也用完即丟的積灰塵,另一個極端的永遠沒法完成而從一開始就是灰塵——我思考工具和方法,也思考更根本的筆記原則,然後發現至少在這個領域,幾乎所有工具都是為了特定理念而生:例如,Quartz 和「數位花園」或就是 Obsidian 的最廣義和「基進(radical)」的「去中心化」,儘管最後並沒有選擇 Quartz 我還是認真讀了作者的好幾篇筆記,也很喜歡他的這句引用:
“[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming
但這對我來說,並不足夠:如果只是要敞開大門,我的臉書可說是最雜草叢生又富有生命力的花園了,但我卻始終無法從中澆灌出什麼。至於 Obsidian,它們更是不斷的翻土卻從來沒有播種,種籽是收集了很多,但最終也都風乾了。
——只是,在觀察這些「將『筆記』視為『花園』甚至直接賦予「植物生長隱喻」的分類時,我忽然被 seedling、budding、evergreen、(pillar)的最後一個並非所有人都接受的概念所吸引……:它讓我想到,evergreen note 也就是「常青筆記」的最初倡導人 Andy Matuschak 前兩年寫的一篇名為〈常青笔记的五年历程〉的文章。
在那篇文章中,他提到:
在开启我的笔记写作实践后不久,我开始为赞助人撰写月度文章。这为我的写作和思考提供了一个新的环境,比起工作笔记,它的要求更高,内容更为丰富,但相较于那些更为严肃的主要文章,难度又相对较低。在过去的五年里,我在这些月度赞助人文章中累计写作了逾 15 万字。通过这些持续的写作实践,我的写作能力和自信心都得到了显著提升。最初,我需要借助笔记这个「脚手架」来拓展有限的想法。而现在,我已经能够在写作过程中自如地发展新的想法。准备性的笔记似乎变得不那么必要了。如果我能够直接在文章中阐述想法,我自然会选择这样做:因为这样的作品通常会更加生动、直接,也更加真实。
儘管,這看似一個「對過去」的揚棄,我卻更想到,他的另外兩篇,互有關聯但卻沒有被整合的筆記,分別是〈在写作时创建推测性大纲〉以及〈§ 笔记写作系统〉——後者,就是前者的成果,一份由近半百個筆記,所組成的要點大綱。而得益於「每写一条新笔记时,把它添加到你正在维护的一个或多个大纲中,有必要的话也可以创建新的大纲。非常完整的写作项目会自然从中涌现。」——比較,他前後「兩篇文章」的想法,我想,我們不難看出答案:之所以,有那麼多的僅僅「萌芽」而無法常青;或僅僅「拾穗」卻無法播種,其根源其實在於「沒有支柱(pillar)作為目標」——只有在那三、五根支柱,所撐起和反哺的天空,這一切的耕耘「gleaning、seedling、budding、evergreen」才或許能有意義。
□
網站,當然「是用 AI」架的。
但不是讓它直接弄好,而是讓 AI 一步步帶著我做。
一來,想順便學點東西,二來,是意外發現還挺簡單和有趣的。首先,網站是用 Astro Modular 架的:Astro Modular 是 Astro 的一個主題,Astro 則是一個「以內容為中心的」的現代網頁框架:根據AI給我的說法,一個網站就像一本書,你可以自己一個字一個字刻好手工印拓,也可以寫好草稿就丟給工廠去排版印刷。
——而像 Astro 這樣的框架,就是有著自己一套印刷規則的印刷廠,既是生成器也是網頁框架:以「內容為中心」的意思,則是它更適合生成「靜態」的網站,也就是印好後就不管你了,每個讀者拿到的都是同一個一模模一樣樣的那一本書,而不像動態網站那樣,每個讀者只會拿到暫定本,如果不滿意或在上面寫了些什麼,就會有小精靈千里傳音跑回伺服器,然後伺服器再趕快根據他的反饋,印出符合他條件的那一本書。
至於 Astro Modular,則是 Astro 這間印刷廠中,一個特別的版型,或甚至是一套出版流程:以我的例子來說,我是依照 Astro Modular 作者在 GitHub儲存庫的指示,在 Quick Start 直接選擇把網站部署到 Cloudflare——此時,你需要確保幾件事情:⑴有一個 GitHub 帳號、⑵一個 Cloudflare 帳號而能自動在你的 GitHub 複製一個儲存庫,再透過 Cloudflare 部署、生成一個可以公開瀏覽的網址。
然後,視個人情況不同,你可能還會需要安裝:⑶分散式版本控制軟體 Git 把複製在 GitHub 的儲存庫存到本機¹、⑷筆記軟體 Obsidian 用來編輯文件,也就是網頁後台、⑸JavaScript 執行環境 Node.js 和套件管理器 pnpm:因為 Astro 是用 JavaScript 寫的,所以如果你要在本地預覽網頁就需要安裝它們——但如果你想直接在 GitHub 上編輯,不預覽也不用本機編輯,就其實都不用這些。
¹ 雖然,按理來說,應該是「GitHub 是用來儲存 Git 的數據庫」才對,但可喜可賀的是我們應該可以不用管那麼多。
在過程中,我碰到了幾個困難:在透過 Cloudflare 部署時,因為⑴ Astro Modular 要求較新版的 pnpm,但作者並未在文件中指定,導致 Cloudflare 抓了較舊的版本;並且⑵在因應 Astro 7.0 升級時,作者在 config 設定檔新增了一個套件,卻忘了在 json 安裝,導致 Cloudflare 找不到套件而建置失敗——然後,在 Obsidian 打開本地文件時,我又因為⑶沒按照指示打開正確的資料夾而沒有成功觸發設定外掛;接著又因為⑷沒有乖乖填內容,而多次在「網址、描述、作者名稱」等地方空白,導致驗證不過關…。
還好,這些問題都能交給 AI 解決——把 Cloudflare 的 build log 直接貼給 AI 或把整個儲存庫的 config 檔直接貼給它:是的,我甚至只用的是網頁版,而沒有用 Claude Code 或桌面版 Claude Cowork 等花裡胡哨的工具。就這樣浪費 token 的全貼全輸出,也磕磕絆絆的完成了。此外,還做了幾個個人化的調整:⑴用 Cusdis 讓訪客可以匿名提交留言但必須等待審核;⑵增加了文章置頂並刪除了 RSS 和 Atom 訂閱按鈕;⑶調整了字體樣式,像是左右對齊和超連結底線和引文大小等等。最後,就是一邊看對話,回顧整個過程,一邊打出這一篇文章,作為測試和回顧。