Шаблоны Obsidian Web Clipper: 6 готовых примеров

Официальный Obsidian Web Clipper бесплатный, с открытым кодом и сохраняет страницы прямо в ваше хранилище. Его настоящая сила в шаблонах: по одному на каждый тип страницы, нужный выбирается автоматически по триггеру, и каждый сам решает, как назвать заметку, в какую папку её положить, какие у неё будут свойства и тело.

Проблема в том, что пустой редактор шаблонов ни о чём не говорит. Эта статья представляет собой галерею из шести шаблонов, которые можно вставить уже сегодня, с синтаксисом, сверенным с официальной документацией и исходным кодом клиппера. Дальше идёт раздел о триггерах, переменных и фильтрах, чтобы вы могли писать свои.

Из чего состоит шаблон

У каждого шаблона одни и те же части:

  • Имя заметки и расположение заметки (например, Clippings/Videos)
  • Свойства, которые превращаются во frontmatter YAML
  • Содержимое заметки, то есть тело в Markdown
  • Триггеры, шаблоны URL или типы schema.org, по которым шаблон выбирается автоматически

Все четыре поля принимают переменные вроде {{title}} или {{url}}, и любую переменную можно пропустить через фильтры, например {{published|date:"YYYY-MM-DD"}}. Чтобы увидеть, что отдаёт страница, откройте клиппер и нажмите на значок ...: там перечислены переменные текущей страницы.

Шаблонами делятся в виде файлов .json. Чтобы импортировать шаблон, откройте настройки клиппера, перейдите в любой шаблон и нажмите Import (или просто перетащите файл). В репозитории clipper-templates от Kepano на GitHub есть ещё десяток примеров в том же формате.

1. Видео YouTube с транскриптом

Это полный JSON для импорта, чтобы вы один раз увидели формат целиком. Сохраните его как youtube.json и импортируйте.

{
  "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="]
}

Две детали, которые стоит знать. Строка ![...]({{url}}) встраивает плеер в заметку. А {{transcript}} нет в таблице переменных документации: она берётся из экстрактора YouTube в Defuddle, парсере внутри клиппера, и существует только тогда, когда у видео есть субтитры. Поэтому шаблон оборачивает её в {% if %}. Если вместо 10 000 слов субтитров вам нужен конспект, включите Interpreter и замените её переменной-промптом, например {{"a five bullet summary of the video"}}.

2. Тред в X (Twitter)

Свежие версии клиппера распознают посты X и кладут тред в {{content}}, так что шаблон в основном отвечает за название и триггер.

Триггер (регулярное выражение, чтобы он срабатывал только на постах, а не на ленте):

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

Содержимое заметки:

{{content}}

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

Полезные свойства: author = {{author|wikilink}}, source = {{url}}, created = {{date|date:"YYYY-MM-DD"}}, tags = threads.

3. Рецепт

Сайты с рецептами публикуют данные schema.org, поэтому это самый аккуратный шаблон из всех: никаких CSS-селекторов, работает почти на любом кулинарном сайте.

Триггер:

schema:@Recipe

Содержимое заметки:

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

{{description}}

## Ingredients

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

## Steps

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

Свойства: cuisine = {{schema:@Recipe:recipeCuisine}}, total_time = {{schema:@Recipe:totalTime|duration}}, source = {{url}}. Ингредиенты превращаются в чек-лист, где можно отмечать пункты прямо во время готовки. Некоторые сайты группируют шаги по разделам; там recipeInstructions[*].text может вернуться пустым, и путь придётся подправить.

4. Диалог с ChatGPT или Claude

В парсере клиппера есть экстракторы для chatgpt.com и claude.ai, так что в свежих версиях {{content}} содержит реплики диалога. В старых руководствах для ChatGPT используется длинная цепочка selectorHtml; сейчас она вам, скорее всего, не понадобится.

Триггеры (по одному на строку):

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

Содержимое заметки:

{{content}}

Свойства: title = {{title}}, source = {{url}}, created = {{date|date:"YYYY-MM-DD"}}, tags = ai/conversation. Подробнее о том, как сделать чаты переносимыми: сохраняем диалоги ChatGPT в Markdown.

5. Статья из Википедии

Стандартное извлечение для Википедии оставляет навигационные плашки и подвалы. Этот шаблон берёт сразу тело статьи и вычищает лишнее.

Триггер:

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

Содержимое заметки:

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

Свойства: title = {{title}}, author = [[Wikipedia]], source = {{url}}, tags = wikipedia. Для обычных постов в блогах и новостей запасным вариантом служит простой шаблон с {{content}} в самом верху списка.

6. Научная статья (arXiv)

Страницы аннотаций arXiv отдают метатеги citation_*, а значит, чистые метаданные без всяких догадок.

Триггер:

https://arxiv.org/abs/

Содержимое заметки:

## Abstract

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

## Key contributions

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

Свойства: 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}}. Строка «key contributions» представляет собой переменную-промпт: ей нужен включённый Interpreter с моделью (по API-ключу или локальной моделью в Ollama). Если вы не пользуетесь Interpreter, удалите её.

Как работают триггеры шаблонов

Триггеры бывают трёх видов, по одному правилу на строку:

ТипПримерЧто совпадает
Простойhttps://www.youtube.com/watch?v=Любой URL, который начинается с этого текста
Регулярное выражение/^https:\/\/arxiv\.org\/abs\//URL, подходящие под шаблон (экранируйте . и /)
Schemaschema:@RecipeСтраницы, у которых тип schema.org равен Recipe

Триггеры schema могут также проверять поле (schema:@Recipe.name) или значение (schema:@Recipe.name=Cookie).

Порядок важен: побеждает первый подходящий шаблон в списке, а страница, которой ничего не подошло, получает первый шаблон. Перетащите свой общий шаблон для статей наверх, чтобы он работал как запасной.

Шпаргалка по переменным и фильтрам

Пять типов переменных:

  • Предустановленные: {{title}}, {{url}}, {{author}}, {{published}}, {{content}}, {{highlights}}, {{date}}
  • Промпт (Interpreter): {{"a summary of the page"}}
  • Meta: {{meta:name:description}}, {{meta:property:og:title}}
  • Селектор: {{selector:h1}}, {{selectorHtml:#main|markdown}}
  • Schema.org: {{schema:@Recipe:recipeIngredient}}, {{schema:author.name}}

Фильтры, которые нужны чаще всего: date, duration, wikilink, list (с task или numbered), join, replace, safe_name, markdown, remove_html, blockquote и callout. Логика шаблонов ({% if %}, {% for %}, {% set %} и запасной вариант ??) справляется с отсутствующими данными.

Или забудьте о поддержке шаблонов

У шаблонов есть цена, о которой документация молчит: их надо поддерживать. Сайты меняют вёрстку, селекторы тихо ломаются, и вы узнаёте об этом через несколько недель, когда приходит пустая заметка. Если вы сохраняете страницы с десятков сайтов, в итоге у вас на руках маленькая кодовая база.

Minibase идёт другим путём. Вместо шаблона под каждый сайт в нём уже есть отдельная обработка для сотен сайтов (треды X, Reddit, GitHub, диалоги ChatGPT и Claude, страницы документации), и он возвращает чистый Markdown с frontmatter без всякой настройки. Файлы .md попадают в папку Minibase Vault, на которую можно направить Obsidian, и появляются в хранилище как любые другие заметки.

Бесплатный план даёт 20 сохранений в месяц, без аккаунта. Minibase+ ($5.99/month или $34.99/year) добавляет 20+ ИИ-шаблонов (Obsidian, Academic, Recipe, конспекты Корнелла, Flashcards и другие) и транскрипцию видео с YouTube, Reels и TikTok. Вот как работают транскрипты YouTube.

Справедливости ради: если вы сохраняете страницы с нескольких сайтов и вам нравится доводить заметки до ума, официальный клиппер с шаблонами выше отлично справляется и ничего не стоит. Если же отлаживать CSS-селекторы не хочется, Minibase требует минимума поддержки, и ничто не мешает пользоваться обоими. Мы сравнили их бок о бок в статье Obsidian Web Clipper или Minibase.

FAQ

Где найти больше шаблонов Obsidian Web Clipper? В репозитории clipper-templates от Kepano на GitHub есть шаблоны для YouTube, Википедии, рецептов, IMDb, Goodreads, arXiv и не только. На форуме Obsidian и в Discord много шаблонов от сообщества.

Умеет ли Web Clipper сохранять транскрипты YouTube? Да, если у видео есть субтитры: свежие версии отдают на страницах YouTube переменную {{transcript}}. У видео без субтитров забирать нечего.

Почему мой шаблон не срабатывает? Чаще всего дело в порядке: другой шаблон выше в списке подошёл первым. Ещё проверьте, что простые триггеры точно совпадают с началом URL (https://www. или https://).

Стоят ли переменные-промпты денег? Они работают на модели, которую вы настроили в Interpreter. Облачные провайдеры выставляют счёт на ваш API-ключ; локальная модель через Ollama бесплатна.

Continue reading

Готовы сохранять умнее?

Конвертируйте любую веб-страницу в Markdown одним кликом.

Добавить в Chrome