Mẫu Obsidian Web Clipper: 6 ví dụ dùng được ngay

Obsidian Web Clipper chính chủ miễn phí, mã nguồn mở và lưu thẳng vào vault của bạn. Sức mạnh thật sự của nó nằm ở các mẫu (template): mỗi loại trang một mẫu, được chọn tự động nhờ trigger, và mỗi mẫu quyết định tên ghi chú, thư mục, thuộc tính lẫn nội dung.

Vấn đề là một trình soạn mẫu trống trơn chẳng cho bạn biết gì. Bài viết này là bộ sưu tập sáu mẫu bạn có thể dán vào ngay hôm nay, với cú pháp đã được đối chiếu với tài liệu chính thức và mã nguồn của clipper. Sau đó là phần về trigger, biến và filter, để bạn tự viết mẫu cho riêng mình.

Một mẫu được cấu tạo thế nào

Mẫu nào cũng gồm những phần giống nhau:

  • Note name (tên ghi chú) và note location (vị trí ghi chú, ví dụ Clippings/Videos)
  • Properties (thuộc tính), sẽ trở thành frontmatter YAML
  • Note content (nội dung ghi chú), phần thân Markdown
  • Triggers, các mẫu URL hoặc kiểu schema.org dùng để tự động chọn mẫu

Cả bốn trường đều nhận biến như {{title}} hay {{url}}, và biến nào cũng có thể đi qua filter, ví dụ {{published|date:"YYYY-MM-DD"}}. Muốn biết một trang cung cấp những gì, hãy mở clipper và bấm vào biểu tượng ...: nó liệt kê các biến của trang hiện tại.

Mẫu được chia sẻ dưới dạng file .json. Để nhập một mẫu, mở phần cài đặt của clipper, vào một mẫu bất kỳ và bấm Import (hoặc kéo thả file vào). Repo clipper-templates của Kepano trên GitHub có thêm khoảng chục ví dụ cùng định dạng.

1. Video YouTube kèm transcript

Đây là file JSON đầy đủ có thể nhập trực tiếp, để bạn thấy định dạng một lần. Lưu nó thành youtube.json rồi nhập vào.

{
  "schemaVersion": "0.1.0",
  "name": "YouTube",
  "behavior": "create",
  "noteNameFormat": "{{title|safe_name}}",
  "path": "Clippings/Videos",
  "noteContentFormat": "![{{title}}]({{url}})\n\n{% if transcript %}## Transcript\n\n{{transcript}}{% else %}No transcript available.{% endif %}",
  "properties": [
    { "name": "title", "value": "{{schema:name}}", "type": "text" },
    { "name": "channel", "value": "{{schema:author|wikilink}}", "type": "multitext" },
    { "name": "published", "value": "{{schema:uploadDate|date:YYYY-MM-DD}}", "type": "date" },
    { "name": "duration", "value": "{{schema:duration|duration}}", "type": "text" },
    { "name": "source", "value": "{{url}}", "type": "text" },
    { "name": "tags", "value": "videos", "type": "multitext" }
  ],
  "triggers": ["https://www.youtube.com/watch?v="]
}

Có hai chi tiết đáng biết. Dòng ![...]({{url}}) nhúng trình phát video vào ghi chú của bạn. Còn {{transcript}} không có trong bảng biến của tài liệu: nó đến từ bộ trích xuất YouTube trong Defuddle, trình phân tích nằm bên trong clipper, và chỉ tồn tại khi video có phụ đề. Vì thế mẫu mới bọc nó trong {% if %}. Nếu bạn muốn giữ một bản tóm tắt thay vì 10.000 chữ phụ đề, hãy bật Interpreter và thay nó bằng một biến prompt như {{"a five bullet summary of the video"}}.

2. Thread X (Twitter)

Các phiên bản gần đây của clipper nhận diện được bài đăng X và đưa cả thread vào {{content}}, nên mẫu này chủ yếu lo việc đặt tên và trigger.

Trigger (một regex, để nó chỉ kích hoạt trên bài đăng, không phải trên timeline của bạn):

/^https:\/\/(x|twitter)\.com\/[^\/]+\/status\/\d+/

Nội dung ghi chú:

{{content}}

Source: [{{author}}]({{url}})

Các thuộc tính hữu ích: author = {{author|wikilink}}, source = {{url}}, created = {{date|date:"YYYY-MM-DD"}}, tags = threads.

3. Công thức nấu ăn

Các trang công thức nấu ăn đều công bố dữ liệu schema.org, nên đây là mẫu gọn gàng nhất trong số này: không cần CSS selector, chạy được trên hầu hết mọi trang công thức.

Trigger:

schema:@Recipe

Nội dung ghi chú:

![{{title}}]({{image}})

{{description}}

## Ingredients

{{schema:@Recipe:recipeIngredient|list:task}}

## Steps

{{schema:@Recipe:recipeInstructions[*].text|list:numbered}}

Thuộc tính: cuisine = {{schema:@Recipe:recipeCuisine}}, total_time = {{schema:@Recipe:totalTime|duration}}, source = {{url}}. Danh sách nguyên liệu trở thành checklist để bạn đánh dấu trong lúc nấu. Một số trang chia các bước thành từng phần; khi đó recipeInstructions[*].text có thể trả về rỗng và bạn sẽ phải chỉnh lại đường dẫn.

4. Cuộc trò chuyện ChatGPT hoặc Claude

Trình phân tích của clipper có bộ trích xuất cho chatgpt.com và claude.ai, nên ở các phiên bản gần đây {{content}} chứa đầy đủ các lượt trò chuyện. Những hướng dẫn cũ dùng một chuỗi selectorHtml dài ngoằng cho ChatGPT; giờ bạn không cần đến nó nữa.

Trigger (mỗi dòng một trigger):

https://chatgpt.com/c/
https://chatgpt.com/share/
https://claude.ai/chat/

Nội dung ghi chú:

{{content}}

Thuộc tính: title = {{title}}, source = {{url}}, created = {{date|date:"YYYY-MM-DD"}}, tags = ai/conversation. Tìm hiểu thêm cách giữ các cuộc trò chuyện luôn mang đi được: lưu cuộc trò chuyện ChatGPT dưới dạng Markdown.

5. Bài viết Wikipedia

Cách trích xuất chung chung trên Wikipedia giữ lại cả navbox lẫn phần chân trang. Mẫu này nhắm thẳng vào thân bài viết và loại bỏ phần nhiễu.

Trigger:

/^https:\/\/[a-z-.]+\.wikipedia\.org\/wiki\/.*$/

Nội dung ghi chú:

{{selectorHtml:#mw-content-text|remove_html:(".navbox,.printfooter,.side-box,.mw-editsection")|markdown}}

Thuộc tính: title = {{title}}, author = [[Wikipedia]], source = {{url}}, tags = wikipedia. Với bài blog và tin tức thông thường, một mẫu {{content}} đơn giản đặt ở đầu danh sách sẽ đóng vai trò mẫu dự phòng.

6. Bài báo khoa học (arXiv)

Các trang tóm tắt của arXiv có sẵn thẻ meta citation_*, cho bạn siêu dữ liệu sạch sẽ mà không phải đoán.

Trigger:

https://arxiv.org/abs/

Nội dung ghi chú:

## Abstract

{{selector:blockquote.abstract|replace:"Abstract\:":""|trim}}

## Key contributions

{{"three key contributions of this paper, as a bullet list"}}

Thuộc tính: title = {{meta:name:citation_title}}, authors = {{selector:.authors a|wikilink|join}}, published = {{meta:name:citation_date|date:("YYYY-MM-DD", "YYYY/MM/DD")}}, pdf = {{meta:name:citation_pdf_url}}. Dòng “key contributions” là một biến prompt: nó cần bật Interpreter với một mô hình (API key hoặc một mô hình chạy cục bộ qua Ollama). Hãy xóa dòng đó nếu bạn không dùng Interpreter.

Giải thích về trigger của mẫu

Trigger có ba loại, mỗi dòng một quy tắc:

LoạiVí dụKhớp với
Đơn giảnhttps://www.youtube.com/watch?v=Mọi URL bắt đầu bằng đoạn văn bản này
Regex/^https:\/\/arxiv\.org\/abs\//Các URL khớp với mẫu (nhớ escape . và /)
Schemaschema:@RecipeCác trang có kiểu schema.org là Recipe

Trigger schema còn có thể kiểm tra một trường (schema:@Recipe.name) hoặc một giá trị (schema:@Recipe.name=Cookie).

Thứ tự rất quan trọng: mẫu đầu tiên khớp trong danh sách sẽ thắng, và trang nào không khớp mẫu nào sẽ dùng mẫu đầu tiên. Hãy kéo mẫu bài viết chung chung của bạn lên đầu để nó làm mẫu dự phòng.

Bảng tra nhanh biến và filter

Năm loại biến:

  • Preset: {{title}}, {{url}}, {{author}}, {{published}}, {{content}}, {{highlights}}, {{date}}
  • Prompt (Interpreter): {{"a summary of the page"}}
  • Meta: {{meta:name:description}}, {{meta:property:og:title}}
  • Selector: {{selector:h1}}, {{selectorHtml:#main|markdown}}
  • Schema.org: {{schema:@Recipe:recipeIngredient}}, {{schema:author.name}}

Những filter bạn sẽ dùng nhiều nhất: date, duration, wikilink, list (với task hoặc numbered), join, replace, safe_name, markdown, remove_html, blockquote và callout. Logic trong mẫu ({% if %}, {% for %}, {% set %}, và giá trị dự phòng ??) xử lý những trường hợp thiếu dữ liệu.

Hoặc khỏi phải bảo trì mẫu

Mẫu có một cái giá mà tài liệu không nhắc tới: công bảo trì. Các trang web thay đổi mã HTML, selector hỏng mà không báo, và vài tuần sau bạn mới phát hiện khi một ghi chú về tay trống trơn. Nếu bạn clip từ hàng chục trang, rốt cuộc bạn sẽ phải bảo trì cả một codebase nho nhỏ.

Minibase đi theo hướng ngược lại. Thay vì mỗi trang một mẫu, nó có sẵn cách xử lý riêng cho hàng trăm trang (thread X, Reddit, GitHub, cuộc trò chuyện ChatGPT và Claude, trang tài liệu) và trả về Markdown sạch kèm frontmatter, không cần cấu hình gì. Các file .md được lưu vào một thư mục Minibase Vault mà bạn có thể trỏ Obsidian tới, nên chúng hiện ra trong vault như mọi ghi chú khác.

Gói miễn phí cho bạn 20 lượt lưu mỗi tháng, không cần tài khoản. Minibase+ (5,99 $/tháng hoặc 34,99 $/năm) bổ sung hơn 20 mẫu AI (Obsidian, Academic, Recipe, Cornell notes, Flashcards và nhiều mẫu khác) cùng tính năng chép lời video cho YouTube, Reels và TikTok. Đây là cách transcript YouTube hoạt động.

Công bằng mà nói với Obsidian: nếu bạn chỉ clip từ vài trang và thích tinh chỉnh ghi chú, clipper chính chủ cùng các mẫu ở trên là lựa chọn tuyệt vời và hoàn toàn miễn phí. Nếu bạn không muốn ngồi gỡ lỗi CSS selector, Minibase là lựa chọn ít phải bảo trì, và chẳng có gì ngăn bạn dùng cả hai. Chúng tôi đã so sánh chi tiết hai công cụ trong bài Obsidian Web Clipper và Minibase.

Câu hỏi thường gặp

Tìm thêm mẫu Obsidian Web Clipper ở đâu? Repo clipper-templates của Kepano trên GitHub có mẫu cho YouTube, Wikipedia, công thức nấu ăn, IMDb, Goodreads, arXiv và nhiều hơn nữa. Diễn đàn và Discord của Obsidian cũng có rất nhiều mẫu do cộng đồng chia sẻ.

Web Clipper có lưu được transcript YouTube không? Có, khi video có phụ đề: các phiên bản gần đây cung cấp biến {{transcript}} trên trang YouTube. Video không có phụ đề thì không có transcript nào để lấy.

Vì sao mẫu của tôi không được kích hoạt? Thường là do thứ tự: một mẫu khác nằm cao hơn trong danh sách đã khớp trước. Ngoài ra, hãy kiểm tra xem trigger đơn giản có khớp chính xác phần đầu URL không (https://www. so với https://).

Biến prompt có tốn tiền không? Chúng chạy trên mô hình bạn cấu hình trong Interpreter. Các nhà cung cấp đám mây sẽ tính phí vào API key của bạn; một mô hình cục bộ qua Ollama thì miễn phí.

Continue reading

Sẵn sàng lưu thông minh hơn chưa?

Chuyển đổi bất kỳ trang web nào thành Markdown chỉ với một cú nhấp.

Thêm vào Chrome