適用對象
用一種仍能打開的格式,保存你讀過的東西
書籤指向會改變或消失的頁面,稍後閱讀服務則會關閉、被收購,或開始為匯出收費。擷取內容就是文字本身,採用沒有廠商、不會到期的格式,存在你決定的地方。
存下的閱讀為什麼會消失
長期大量閱讀的人,至少都失去過一次自己的藏書。某個稍後閱讀服務關閉了,匯出的結果是一個網址的 JSON 檔,其中大多數已經失效。某個筆記應用程式改了格式,舊檔案得用舊版本才能打開。一個 2014 年的書籤資料夾,現在一頁接一頁地導向停放的網域,或跳轉到某人的首頁。
共同的原因是依賴。如果你存下的閱讀需要某家公司仍然存在、某個帳號仍然有效,或某種只有一個程式看得懂的格式,那它就是借來的,而不是你保存的。純文字沒有這些依賴,這正是二十年前寫的檔案今天仍能不費周折打開的原因。
大家之後才會發現的失敗,是找不回來,而不是存不下來。沒人能搜尋的封存,就是一座立意良善的垃圾掩埋場:你知道自己在某一年、某個叫不出名字的網站上讀過某個主題的東西,卻無從找起。純文字以任何介面都做不到的方式解決這件事,因為每個作業系統上的每個工具都能搜尋它,一次 grep 就能從十年的閱讀中找回檔案,而檔案自己的檔頭會說明它是哪個頁面、何時發布。
擷取內容的封存長什麼樣子
- 耐久、開放的格式:帶有 YAML frontmatter 的純文字,任何編輯器和
grep都讀得了。 - 沒有帳號,不上傳任何東西:你擷取的內容留在你自己的磁碟上。
- 發布日期和來源網址隨文字一起擷取,所以筆記多年後仍能辨識。
extraction欄位記錄擷取路徑:dom來自呈現後的頁面,jsonld-articlebody來自頁面自己的結構化資料。- 擷取數量沒有限制:沒有配額、沒有每日上限,也沒有付費方案。
- 檔名衝突時會加上數字後綴,所以同一頁面先前的擷取絕不會被覆寫。
- 逐行的文字能像原始碼一樣壓縮、去重、同步和比對差異,所以備份十年的閱讀成本很低,還原時也不需要任何特殊工具。
- 個別網站規則會在送達時就為整個網域歸檔,所以封存會在你閱讀時自行整理,而不必等一次永遠不會到來的整理時間。
--- title: "Things You Should Never Do, Part I" source: "https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/" author: "Joel Spolsky" date: "2000-04-06" extraction: "dom" --- They did it by making the single worst strategic mistake that any software company can make: they decided to rewrite the code from scratch.
建立封存資料夾
整套設定只為了讓一件事成立:擷取的成本必須低於決定要不要擷取。其他一切都由此而來。
- 選一個資料夾當作封存,例如放在你存放文件的最上層的
Archive。一個資料夾,不是每個主題一個:主題交給搜尋,而資料夾樹是你必須在閱讀當下做的歸檔決定。 - 從擴充功能圖示開啟選項,把存放位置指向那裡,並把按下圖示時的動作設為「存到資料夾」。沒有視窗、沒有對話框、不必做決定:整個習慣就靠它只花一個按鍵。
- 把檔名範本設為
{date}-{domain}-{title}。這讓你得到時間順序、一眼看出網站,以及足夠的唯一性,兩個不同頁面的擷取永遠不會搶同一個檔名。 - 開啟每一個 frontmatter 欄位。
date是頁面自己的發布日期,extraction記錄文字是怎麼取得的,而這兩者都是之後無法補回的東西。 - 為你經常閱讀的少數幾個網站新增個別網站規則,各自對應子資料夾。封存會自動整理你最常擷取的內容,而扁平資料夾最先變得難以管理的,正是這些。
- 把這個資料夾納入你備份文件的方式,並且真的從備份中還原一個檔案、打開它一次。沒人還原過的封存,只是一個假設。
- 邊讀邊擷取,而不是等整理的時候。你會想回頭找的頁面,正是那些到時候已經消失的頁面。
保存東西的設定
這些值假設封存會比它起步的那台電腦活得更久,大概也比瀏覽器活得更久。這裡沒有任何設定會產生必須跟著它一起存活的依賴。
| 設定 | 值 | 為什麼在這裡用這個值 |
|---|---|---|
| 按下圖示 | 存到資料夾 | 一個按鍵的習慣會延續,三個按鍵的習慣會消失 |
| 存放位置 | 一個 `Archive` 資料夾 | 在閱讀時依主題歸檔,是大家到第三週就不再做的步驟 |
| 檔名範本 | `{date}-{domain}-{title}` | 一行就包含時間順序、出處和唯一性,不需要任何索引 |
| Frontmatter | 全部欄位開啟 | 發布日期和擷取路徑無法事後重建 |
| 個別網站規則 | 常讀的網域 → 子資料夾 | 你最常擷取的網站,正是扁平資料夾最先變得不順手的地方 |
| 圖片 | 保留為連結 | 連結記錄了圖片曾經存在,雖然網站壞掉時它也會失效 |
| 備份 | 把資料夾納入平常的備份,並還原一次 | 文字從任何備份都能還原;沒測試過的備份只是信念 |
Archive/ 2019-08-14-the-website-obesity-crisis.md 2026-01-07-the-website-obesity-crisis.md 2026-01-07-the-website-obesity-crisis-2.md 第三個檔案是同一天的第二次擷取:檔名衝突時會加上數字後綴, 而不是覆寫。2019 年的檔案仍能用任何編輯器打開, frontmatter 也仍記載著它來自哪個網址。
同一個習慣的三年
早上閱讀,無意間完成封存
一週內讀了六篇長文,每讀完一篇就按一次鍵擷取。沒有視窗開啟,什麼都不必歸檔,也不必判斷這篇值不值得保留;這正是重點,因為那個判斷,正是讓封存無法成形的原因。
累積下來的是一個資料夾,檔名告訴你日期、網站和標題,每個檔案的前四行告訴你網址、作者和發布日期。什麼都沒有整理,卻依然能搜尋,因為命名已經完成了整理。
找到你幾年前讀過的東西
你只記得一個詞組,其他都不記得:不記得網站、年份,也不記得作者。在封存資料夾中搜尋一次就找回檔案,它的檔頭說明了是哪個頁面。沒有建立任何索引,不需要任何應用程式仍然存在,搜尋在斷網時也能用。
這正是書籤資料夾做不到的事。書籤存的是東西在哪裡,而不是它寫了什麼,所以在書籤中搜尋,只能比對別人取的標題。
網站下線,文字還在
一個你讀了好幾年的部落格打不開了。擷取內容不受影響:文字、作者和發布日期都在你磁碟上的檔案裡,source 行也仍然記錄著網址,即使那裡已經沒有任何回應。
圖片是誠實的例外。它們是連結,所以網站壞掉時也跟著壞掉,價值在於照片的頁面,這個工具保存不了。這是文字封存的取捨,值得知道你的哪些頁面落在錯的那一邊。
和其他保存閱讀的方式相比
這張表裡最強的選項不是這一個。完整保真的封存保存得更多,代價也更高:空間、設定,以及必須持續運作的東西數量。
| 目前的做法 | 你得到什麼 | 代價是什麼 |
|---|---|---|
| 書籤 | 一份網址清單,免費 | 只存在哪裡,從不存內容;十年前的資料夾大多已是停放的網域 |
| 稍後閱讀服務 | 乾淨的閱讀體驗,到處同步 | 服務必須持續存在、保留匯出功能、維持價格 |
| 把頁面存成 HTML | 含資源檔和版面的頁面 | 檔案龐大、難以跨檔搜尋,而且要用瀏覽器才讀得舒服 |
| 自架的封存伺服器 | 完整保真,包括截圖和資源檔 | 要執行的軟體、要管理的儲存空間、要套用的更新,而且沒有盡頭 |
| 列印成 PDF | 到處都能打開的固定紀錄 | 無法以文字跨資料夾搜尋、無法比對差異,每次閱讀一個檔案 |
| Clean Web Clipper | 文字、中繼資料,其他什麼都沒有,永久保存 | 沒有版面、沒有圖片、沒有第三方時間戳記:刻意只保存文字 |
多年下來會出什麼問題
舊擷取內容裡的圖片壞了
它們是連結,而它們指向的網站已經搬家、改版或消失。擴充功能不下載二進位資源,所以擷取內容的封存就是文字的封存。圖片本身是重點時(攝影專題、圖表、漫畫),要嘛當下另外儲存,要嘛接受這不是保存它們的工具。
資料夾裡越來越多幾乎重複的檔案
這是檔名衝突規則在發揮作用:同一頁面的第二次擷取會加上數字後綴而不是取代第一次,因為已經改變的頁面,第二次擷取往往比較有意思。沒有任何東西會自動去重。在純文字上,找出重複檔案用任何常見工具一行就能做到,比較其中兩個則是一次差異比對。
一半的封存都叫「Home」或「Untitled」
標題取自頁面自己的中繼資料,而有些網站給每個頁面都取同一個標題。這正是檔名範本中 {domain} 和 {date} 的用途:兩者都在名稱中時,沒幫助的標題仍是找得到的檔案。如果封存裡已經有一百個這種檔案,它們都是文字檔:手動或用腳本重新命名就能解決,檔案內容不會有任何損失。
有些頁面就是擷取不了
分三類。瀏覽器保護的頁面,也就是 chrome:// 網址和擴充功能商店,任何擴充功能都不能在上面執行。沒有文章內文的頁面,例如資訊流、商店首頁和搜尋結果,會被回報為「沒有文章」,而不是以連結清單傳回。以及任何從未為你呈現的內容,包括嵌入式檢視器中的內容,那是擷取碰不到的另一份文件。
它不保存的東西
它保存文字,不保存頁面:沒有版面、沒有截圖、沒有字型、沒有腳本,也不下載圖片;圖片連結仍然指向原始網站,那個網站壞掉時就會失效。它不是網頁封存,也沒有第三方時間戳記。它不會讀取你的瀏覽紀錄,也不會批次匯入你的書籤;你擷取的是你正在看的頁面。它擷取的是瀏覽器呈現的內容,所以從未為你呈現的頁面,無法保存。
常見問題
如果擴充功能停止維護怎麼辦?
它會儲存圖片嗎?
擷取數量有限制嗎?
可以批次匯入我現有的書籤嗎?
十年後這些檔案還打得開嗎?
我也該保留一份完整保真的封存嗎?
可以在手機上讀這些封存嗎?
.md 文字檔,所以行動版筆記應用程式、文字編輯器或 Markdown 閱讀器都能打開,搜尋方式也和桌面上一樣。