Dành cho ai
Lưu trang web ở định dạng bền lâu
Dấu trang trỏ tới những trang thay đổi hoặc biến mất, còn dịch vụ đọc sau thì đóng cửa, bị mua lại hoặc bắt đầu tính phí cho việc xuất dữ liệu. Một bản trích là chính văn bản, ở định dạng không có nhà cung cấp và không hết hạn, lưu ở nơi bạn quyết định.
Vì sao những bài đọc đã lưu biến mất
Ai có thói quen đọc lâu năm đều từng mất một thư viện ít nhất một lần. Một dịch vụ đọc sau đóng cửa và bản xuất hóa ra là một tệp JSON toàn URL, phần lớn đã chết. Một ứng dụng ghi chú đổi định dạng, và tệp cũ cần phiên bản cũ mới mở được. Một thư mục dấu trang từ năm 2014 giờ mở ra, trang này qua trang khác, một tên miền bị bỏ hoang hoặc một chuyển hướng tới trang chủ của ai đó.
Điểm chung là sự phụ thuộc. Nếu bài đọc bạn đã lưu cần một công ty vẫn còn tồn tại, một tài khoản vẫn còn hoạt động, hoặc một định dạng chỉ một chương trình hiểu, thì đó là đồ đi mượn chứ không phải đồ cất giữ. Văn bản thuần không có sự phụ thuộc nào như vậy, và đó chính là lý do các tệp viết từ hai mươi năm trước hôm nay vẫn mở được mà không cần thủ tục gì.
Lỗi mà người ta nhận ra muộn hơn là việc tìm lại chứ không phải việc lưu. Một kho lưu trữ không ai tìm kiếm được là một bãi rác đầy thiện chí – bạn biết mình đã đọc gì đó về một chủ đề, vào năm nào đó, trên một trang không nhớ tên, và không có lối vào. Văn bản thuần giải quyết điều đó theo cách không giao diện nào làm được, vì mọi công cụ trên mọi hệ điều hành đều tìm kiếm được nó, một lệnh grep trên cả thập kỷ đọc sẽ trả về tệp, và phần đầu của chính tệp cho biết đó là trang nào và được đăng khi nào.
Một kho lưu trữ bản trích trông như thế nào
- Định dạng bền và mở: văn bản thuần với frontmatter YAML, đọc được bằng mọi trình soạn thảo và bằng
grep. - Không tài khoản và không tải lên gì: những gì bạn trích xuất ở lại trên ổ đĩa của bạn.
- Ngày đăng và URL nguồn được chụp cùng văn bản, nên một ghi chú vẫn nhận diện được nhiều năm sau.
- Trường
extractionghi lại đường đi:domtừ trang đã hiển thị,jsonld-articlebodytừ dữ liệu có cấu trúc của chính trang. - Không giới hạn số lần trích xuất: không hạn mức, không giới hạn theo ngày, không có gói trả phí.
- Tên trùng được thêm hậu tố số, nên bản chụp trước đó của cùng trang không bao giờ bị ghi đè.
- Văn bản theo dòng nén, loại trùng, đồng bộ và diff như mã nguồn, nên sao lưu cả thập kỷ đọc tốn rất ít và khôi phục không cần công cụ đặc biệt nào.
- Quy tắc theo trang web sắp xếp cả một tên miền ngay khi tới, nên kho lưu trữ tự sắp xếp trong lúc bạn đọc thay vì chờ một buổi dọn dẹp không bao giờ tới.
--- 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.
Thiết lập thư mục lưu trữ
Toàn bộ cấu hình tồn tại để khiến một điều thành sự thật – việc trích xuất phải rẻ hơn việc quyết định có trích xuất hay không. Mọi thứ khác theo sau từ đó.
- Chọn một thư mục và coi nó là kho lưu trữ –
Archive, ở cấp cao nhất của nơi chứa tài liệu của bạn. Một thư mục, không phải mỗi chủ đề một thư mục – chủ đề là việc của tìm kiếm, còn cây thư mục là một quyết định sắp xếp bạn phải đưa ra ngay lúc đang đọc. - Mở Tùy chọn từ biểu tượng tiện ích, trỏ nơi lưu vào đó, và đặt việc cú nhấp vào biểu tượng sẽ làm là “lưu vào thư mục”. Không cửa sổ, không hộp thoại, không quyết định: cả thói quen phụ thuộc vào việc nó chỉ tốn một phím bấm.
- Đặt mẫu tên tệp là
{date}-{domain}-{title}. Nó cho bạn thứ tự thời gian, trang web nhìn là thấy, và đủ độc nhất để hai bản trích của hai trang khác nhau không bao giờ tranh nhau một cái tên. - Bật mọi trường frontmatter.
datelà ngày đăng của chính trang,extractionghi lại văn bản được lấy bằng cách nào, và cả hai đều là loại thông tin bạn không thể bổ sung về sau. - Thêm quy tắc theo trang web cho một vài trang bạn đọc thường xuyên, mỗi trang một thư mục con. Khi đó kho lưu trữ tự sắp xếp phần tư liệu bạn trích xuất nhiều nhất, chính là chỗ một thư mục phẳng trở nên khó quản lý đầu tiên.
- Đưa thư mục vào hệ thống sao lưu tài liệu của bạn, và một lần, thật sự một lần, hãy khôi phục một tệp từ bản sao lưu đó rồi mở ra. Một kho lưu trữ chưa ai từng khôi phục là một giả thuyết.
- Trích xuất ngay khi đọc thay vì trong các buổi dọn dẹp. Những trang bạn định quay lại chính là những trang sẽ biến mất.
Cài đặt để giữ lâu dài
Các giá trị này giả định kho lưu trữ sẽ sống lâu hơn chiếc máy nó bắt đầu, và có lẽ lâu hơn cả trình duyệt. Không có gì ở đây tạo ra sự phụ thuộc phải sống sót cùng nó.
| Cài đặt | Giá trị | Vì sao chọn giá trị này |
|---|---|---|
| Cú nhấp vào biểu tượng | Lưu vào thư mục | Thói quen sống sót ở một phím bấm và chết ở ba |
| Nơi lưu | Một thư mục `Archive` | Sắp xếp theo chủ đề lúc đọc là bước người ta thôi làm vào tuần thứ ba |
| Mẫu tên tệp | `{date}-{domain}-{title}` | Thứ tự thời gian, nguồn gốc và tính độc nhất trong một dòng, không cần chỉ mục |
| Frontmatter | Bật mọi trường | Ngày đăng và đường trích xuất không dựng lại được sau khi sự việc đã qua |
| Quy tắc theo trang web | Tên miền đọc thường xuyên → thư mục con | Những trang bạn trích xuất nhiều nhất là chỗ thư mục phẳng bắt đầu bất tiện đầu tiên |
| Hình ảnh | Giữ liên kết | Liên kết ghi lại rằng một hình đã tồn tại, dù nó sẽ hỏng khi trang hỏng |
| Sao lưu | Thư mục, trong bản sao lưu thường ngày, đã khôi phục thử một lần | Văn bản khôi phục được từ bất cứ thứ gì; bản sao lưu chưa thử là một niềm tin |
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 The third file is a second clip made the same day: a name collision takes a numeric suffix instead of overwriting. The 2019 file still opens in any editor, and its frontmatter still names the URL it came from.
Ba năm của cùng một thói quen
Đọc buổi sáng, lưu trữ một cách tình cờ
Sáu bài đọc dài trong một tuần, mỗi bài được trích xuất bằng một phím bấm ngay khi bạn đọc xong. Không cửa sổ nào mở, không có gì phải sắp xếp, không có quyết định nào về việc bài này có đáng giữ không – và đó chính là mấu chốt, vì quyết định đó là thứ ngăn kho lưu trữ hình thành.
Thứ tích lũy lại là một thư mục mà tên tệp cho bạn ngày, trang web và tiêu đề, còn bốn dòng đầu của mỗi tệp cho bạn URL, tác giả và ngày đăng. Không có gì được sắp xếp, và nó vẫn tìm kiếm được, vì cách đặt tên đã làm việc sắp xếp.
Tìm lại thứ bạn đọc từ nhiều năm trước
Bạn nhớ một cụm từ và không gì khác: không trang web, không năm, không tác giả. Một lần tìm trên thư mục lưu trữ trả về tệp, và phần đầu của nó ghi tên trang. Không cần dựng chỉ mục, không cần ứng dụng nào còn tồn tại, và lần tìm chạy được khi tắt mạng.
Đây chính là điều mà thư mục dấu trang không làm được. Dấu trang lưu nơi một thứ từng nằm, không lưu nó đã nói gì, nên tìm kiếm trong dấu trang chỉ khớp được những tiêu đề do người khác đặt.
Trang web sập nhưng văn bản thì không
Một blog bạn đọc nhiều năm ngừng truy cập được. Các bản trích không bị ảnh hưởng: văn bản, tác giả và ngày đăng nằm trong các tệp trên ổ đĩa của bạn, và dòng source vẫn ghi địa chỉ dù giờ không còn gì trả lời ở đó.
Hình ảnh là ngoại lệ thật. Chúng là liên kết, nên chúng hỏng khi trang hỏng, và một trang có giá trị nằm ở ảnh chụp thì không được lưu giữ bằng cách này. Đó là sự đánh đổi của một kho lưu trữ văn bản, và đáng biết trang nào của bạn nằm ở phía bất lợi.
So với các cách khác để giữ bài đọc
Lựa chọn mạnh nhất trong bảng này không phải là lựa chọn này. Một kho lưu trữ nguyên vẹn giữ được nhiều hơn; nó cũng tốn hơn, về dung lượng, về thiết lập và về số thứ phải tiếp tục hoạt động.
| Cách đang làm | Bạn nhận được gì | Cái giá phải trả |
|---|---|---|
| Dấu trang | Danh sách địa chỉ, miễn phí | Lưu nơi chốn, không bao giờ lưu nội dung; thư mục từ mười năm trước phần lớn là tên miền bỏ hoang |
| Dịch vụ đọc sau | Đọc sạch, đồng bộ mọi nơi | Dịch vụ phải tiếp tục tồn tại, giữ chức năng xuất và giữ giá |
| Lưu trang dạng HTML | Trang kèm tài nguyên và bố cục | Nặng, khó tìm kiếm trên nhiều tệp, và cần trình duyệt để đọc cho thoải mái |
| Máy chủ lưu trữ tự vận hành | Nguyên vẹn, kèm cả ảnh chụp và tài nguyên | Phần mềm phải chạy, dung lượng phải quản lý và bản cập nhật phải áp dụng, vô thời hạn |
| In ra PDF | Bản ghi cố định mở được ở mọi nơi | Không tìm được như văn bản trên cả thư mục, không diff được, mỗi buổi đọc một tệp |
| Clean Web Clipper | Văn bản, siêu dữ liệu và không gì khác, mãi mãi | Không bố cục, không hình ảnh, không dấu thời gian của bên thứ ba: chỉ văn bản, theo thiết kế |
Những gì trục trặc qua năm tháng
Hình ảnh trong các bản trích cũ bị hỏng
Chúng là liên kết, và các trang chúng trỏ tới đã chuyển đi, thiết kế lại hoặc biến mất. Tiện ích không tải tệp nhị phân nào, nên kho lưu trữ bản trích là kho lưu trữ văn bản. Khi hình ảnh là trọng tâm (phóng sự ảnh, sơ đồ, truyện tranh), hãy lưu chúng riêng ngay lúc đó hoặc chấp nhận rằng đây không phải công cụ lưu giữ chúng.
Thư mục đầy những bản gần trùng nhau
Đó là quy tắc trùng tên đang làm đúng việc – lần trích xuất thứ hai của cùng một trang được thêm hậu tố số thay vì thay lần đầu, vì lần chụp thứ hai của một trang đã thay đổi thường là bản đáng chú ý hơn. Không có gì tự động loại trùng. Với văn bản thuần, tìm bản trùng là việc một dòng lệnh với bất kỳ công cụ quen thuộc nào, và so sánh hai bản là một lần diff.
Một nửa kho lưu trữ tên là “Home” hoặc “Untitled”
Tiêu đề lấy từ siêu dữ liệu của chính trang, và một số trang đặt cùng một tiêu đề cho mọi trang. Đó là lý do có {domain} và {date} trong mẫu tên tệp – có cả hai trong tên, một tiêu đề vô dụng vẫn là một tệp tìm được. Nếu kho lưu trữ đã có cả trăm tệp như vậy, chúng là tệp văn bản – đổi tên bằng tay hoặc bằng script là cách sửa, và không có gì bên trong bị mất.
Một số trang đơn giản là không trích xuất được
Có ba loại. Trang được trình duyệt bảo vệ – địa chỉ chrome:// và cửa hàng tiện ích – nơi không tiện ích nào được chạy. Trang không có phần thân bài viết, như trang tin, trang cửa hàng và trang kết quả tìm kiếm, được báo là “không có bài viết” thay vì trả về danh sách liên kết. Và mọi thứ chưa bao giờ hiển thị cho bạn, kể cả nội dung trong trình xem nhúng, vốn là một tài liệu riêng mà bản trích không chạm vào được.
Những gì nó không lưu giữ
Nó lưu văn bản, không lưu trang: không bố cục, không ảnh chụp, không phông chữ, không script và không tải hình ảnh – liên kết hình vẫn trỏ tới trang gốc và hỏng khi trang đó hỏng. Nó không phải kho lưu trữ web và không mang dấu thời gian của bên thứ ba. Nó không đọc lịch sử duyệt web hay nhập hàng loạt dấu trang của bạn; bạn trích xuất trang bạn đang mở. Và nó chụp những gì trình duyệt đã hiển thị, nên một trang không bao giờ hiển thị cho bạn thì không giữ được.
Câu hỏi
Nếu tiện ích ngừng được duy trì thì sao?
Nó có lưu hình ảnh không?
Có giới hạn số lần tôi trích xuất không?
Tôi có nhập hàng loạt dấu trang hiện có được không?
Mười năm nữa tệp có còn mở được không?
Tôi có nên giữ thêm một kho lưu trữ nguyên vẹn không?
Tôi có đọc kho lưu trữ trên điện thoại được không?
.md, nên ứng dụng ghi chú di động, trình soạn thảo văn bản hay trình đọc Markdown đều mở được, và tìm kiếm hoạt động y như trên máy tính.