Сделай резервную копию
Перед любыми массовыми изменениями обязательно сделай копию своего хранилища Obsidian. Даже если всё работает идеально — ошибки случаются. Также для минимизации риска - рекомендую ручной способ.
🎯 Что мы хотим заменить?
Раньше заметки начинались вот так:
Шаблон для связей, который у меня сейчас:
Такой формат:
- не читается плагином Dataview
- мешает структуре заметки
- требует ручного редактирования
Мы хотим перейти на YAML:
Как выглядит шаблон YAML:
А так выглядит YAML в виде исходного кода:
---
input links:
- '[[ПСИХОЛОГИЯ]]'
tags:
- психология
- blog
date: 24-05-2025
---
А отображение обратных ссылок можно перенести в начало заметки. Каким образом? Давайте рассмотрим ниже.
🔗Обратные ссылки — встроенная функция от Obsidian
Вместо Output links с кодом [[Dataview]], теперь мы используем:
- встроенные обратные ссылки (включаются в настройках)
Как выглядят "Обратные ссылки":
![]()
🎨 Как переместить обратные ссылки вверх, рядом с YAML, с помощью CSS
- Открываем папку с CSS-сниппетами:
Папка CSS-сниппеты:
-
Создаем CSS-документ (для начала создаем обычный блокнот → “Сохранить как” → “Все форматы” → просто дописываем в названии файла .css → например backlinks.css)
-
Добавь этот код в
publish.cssилиobsidian.css:
.cm-sizer {
display: flex;
flex-direction: column;
}
.inline-title {
order: 1;
}
.metadata-container {
order: 2;
}
.embedded-backlinks {
order: 3;
position: static;
overflow-y: auto;
max-height: 300px;
}
.cm-contentContainer {
order: 4;
}
Как выглядит код в блокноте (css):
👉 Теперь обратные ссылки будут сразу под YAML-блоком. Это удобно для быстрого просмотра связей.
🔁 3 способа перехода на YAML
1. 🐍 Python-скрипт (для опытных)
# Смотри ниже — обязательно замени путь к Vault (Vault_Path) и проверь шаблон поиска
Внимание! Этот метод массово заменяет текст. Не запускай, если не уверен. Лучше проконсультируйся с ChatGPT перед запуском.
Вот сам код:
import os
import re
VAULT_PATH = r"C:\delete after\Tutorial 01"
# Гибкая регулярка: допускает необязательные пробелы, переносы и отсутствие некоторых полей
pattern = re.compile(
r"(?:)?",
re.DOTALL
)
def convert_file(filepath):
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
if content.strip().startswith("---"):
return False
match = pattern.search(content)
if not match:
return False
input_raw = match.group(1).strip()
tags_raw = match.group(2).strip()
date = match.group(3).strip() if match.group(3) else None
# Форматирование ссылок: '[[...]]'
input_links = re.findall(r"\[\[(.*?)\]\]", input_raw)
input_yaml = "\n".join([f" - '[[{link.strip()}]]'" for link in input_links])
# Форматирование тегов
tags = [tag.strip("# ").strip() for tag in tags_raw.split()]
tags_yaml = "\n".join([f" - {tag}" for tag in tags]) if tags else " - "
# Формируем YAML
yaml = [
"---",
"input links:",
input_yaml if input_yaml else " - ",
"tags:",
tags_yaml,
]
if date:
yaml.append(f"date: {date}")
yaml.append("---")
# Удаляем весь старый блок и добавляем YAML
new_content = "\n".join(yaml) + "\n\n" + content[match.end():].lstrip()
with open(filepath, "w", encoding="utf-8") as f:
f.write(new_content)
print(f"✅ Обновлено: {filepath}")
return True
def process_vault():
print("🚀 Запускаю обработку...")
count = 0
for root, _, files in os.walk(VAULT_PATH):
for file in files:
if file.endswith(".md"):
full_path = os.path.join(root, file)
if convert_file(full_path):
count += 1
print(f"🎉 Готово! Обновлено файлов: {count}")
if __name__ == "__main__":
process_vault()
Как адаптировать под себя?
Замени
VAULT_PATHна путь к своему хранилищуПокажи этот код ChatGPT и напиши: «
Помоги адаптировать под мои шаблоны. Вот пример заметки…»
2. 🔍 Плагин Global Search and Replace
Подходит для шаблонных строк. Например:
- Найди:
...%%
- Включи обратные ссылки и используй CSS, чтобы они были вверху
📌 Заключение
Переход на YAML — это про порядок Ты избавляешься от ручного кода, используешь встроенные возможности Obsidian и наводишь чистоту в своей системе.
Хочешь пример адаптации под свой Vault? Напиши ChatGPT:
«Вот как выглядел мой старый шаблон. Помоги переделать его в YAML и объясни, какие строки можно вставить вручную.»
Идем дальше?





