Часть 2. Управление знаниями в Obsidian. Базовый рабочий процесс. Журнал. Источники и их библиотеки. Пример

В этой статье будет показано как можно начать организовывать свою базу знаний в Obsidian, отталкиваясь от источников. В статье будет разобрано то, какие стоит использовать папки и теги; как создать свою первую точку входа в систему. Так же будет уделено внимание способу ведению журнала (дневника). Статья будет предполагать, что вы не против автоматизации процессов в своей базе знаний, поэтому все источники будут шаблонизированы и впоследствии собраны в свои отдельные библиотеки с помощью dataview. Завершится статья подробным примером (алгоритмом) рабочего процесса.

предыдущая статья

Структура статьи (оглавление)

Можете открыть структуру в отдельной вкладке, чтобы понимать, где вы находитесь в тексте.

  • Введение

  • О паранойе

  • Предварительные советы

    • Слепая печать

    • Смена языка одной клавишей

    • Автодополнения

    • Не для управления делами

    • Язык программы

    • Облачное хранилище и резервные копии

    • Wiki-ссылки

    • Названия заметок

      • Термины короткие, идеи длинные

      • Заметки строчными буквами

    • Не дублируйте информацию

    • Единственно возможным образом

    • Источники

  • Базовый рабочий процесс

    • Папки

    • Теги

    • Первая точка входа

      • Dashboard

    • Ваша справка

    • Панели

    • Создание заметки

      • Inbox (templater)

      • Создание в контексте заметки и рефактор

      • Алиасы

      • Ссылки на другие заметки

    • Журнал

    • Списки источников

  • Dataview

    • Библиотеки источников

      • Шаблон

      • Книги

      • Подкасты

      • Фильмы

      • Видео, статьи, курсы

    • Inbox

    • Алгоритм обработки контента

  • Projects

  • Дополнительные оптимизации

    • Buttons

    • Цвета заметок и эмодзи

    • Некоторые другие плагины

  • Пример рабочего процесса

    • Немного обобщающей информации

    • Рабочий процесс

  • Итог

Введение

Когда вы прочитаете статью, то вероятно у вас может появиться ряд вопросов в стиле «и это всё? так просто? и это будет работать? серьёзно?».

Да. Система будет работать и более того она будет как можно меньше стараться вам мешать делать основную свою деятельность, т.е. читать, думать, создавать идеи, понимать и осознавать, учиться и т.д. Отсюда стоит также понимать, что, если вы не будете читать, думать и прочее, то система вам никак не поможет.

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

Со временем у вас появится опыт того как стоит строить свою систему, свою базу знаний. Вы по ходу дела поймете что стоит дооптимизировать в системе, что стоит совсем убрать, вы поймете как, условно говоря, поворачивать систему определенной стороной, чтобы она помогала вам решать ваши актуальные нужды. Моя роль тут в том, чтобы просто дать пару подсказок как можно побыстрее получить что-то вменяемое, что будет давать заметную отдачу.

Отмечу ещё то, что вероятно есть риск, что вы не совсем сразу поймете (или точнее прочувствуете) почему какое-то решение в действительности является долгоиграющим (например, почему нужно отказаться в каком-то смысле от папок и тегов). Это нормально, ибо вы читаете статью последовательно, переходя от одной частности, к другой и отчего у вас не появляется общей картины сразу (к тому же у вас ещё нет опыта ведения базы). В самом конце я соберу все советы в кучу и покажу пример рабочего процесса (на мой взгляд, это самая полезная часть статьи).

Если вы уже знаете, что вам нужно от системы, если у вас уже есть что-то работающее или даже хорошо отлаженное, то не теряйте время и НЕ читайте эту статью.

О паранойе

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

Если ко всему этому добавить то, что Obsidian проприетарный софт с основателями китайцами, то можно как-то совсем приуныть.

Однако в попытке хоть как-то развеять паранойю, стоит также сказать следующее. У Obsidian довольно мощное сообщество по всему миру. В каком-то смысле именно оно выдало большой кредит доверия данному софту. Пока что прецедентов в том, чтобы разочароваться в Obsidian не было. Будем считать, что это хороший признак, которого достаточно для того, чтобы начать (или продолжать) пользоваться Obsidian.

Предварительные советы

Слепая печать

Я даже не говорю про 10-пальцевый ввод. Стоит научиться печатать хотя бы не глядя на клавиатуру. Если вы смотрите постоянно на клавиши и на свои пальцы, то на самом деле вы просто ужасно много тратите своего внимания фактически в пустую. К тому же вы постоянно тратите по лишнему волю (или если кому-то удобнее, то мыслетопливо), а это значит, что вы постоянно будете существенно понижать свои шансы на то, чтобы войти в состояние потока.

Смена языка одной клавишей

Возможно вы заметили, что у вас на клавиатуре есть клавиша, которую вы редко используете. Нет, я сейчас не про scroll lock. Всё куда ближе. Я говорю про caps lock. Поменяйте смену раскладки клавиатуры на эту клавишу, чтобы просто немного ускорить процесс ввода.

Автодополнения

Вы наверняка часто пишете свой email и ФИО. Не кажется ли вам, что этот процесс можно оптимизировать?

В заметках также часто будут появляться моменты, когда вам нужно писать однотипные вещи. Например, это могут быть

  • заголовок yam.

    • возможно в нескольких вариациях с определенными метаданными

  • разной длины тире

  • callouts

  • блоки кода

  • и т.д.

Сюда же можно отнести какие-то частые опечатки.

Если вы пользователь Windows или MacOS, то поставьте Punto Switcher. В нем вы сможете в том числе настроить клавишу смены раскладки, добавить свои автодополнения и вдобавок получите плюшку в виде автоматической смены раскладки в процессе печатания. Я же являюсь пользователем Linux, потому использую программу autokey.

Не для управления делами

В Obsidian можно обустроить себе систему по управлению делами, но не рекомендую вам этого делать. По крайней мере поначалу.

Вместо этого лучше отдельно изучите, например, метод GTD и попробуйте его реализовать в каком-нибудь todoist. Пользы вы от этого получите немерено. При этом у вас появится хорошее разграничение в голове: всё таки для дел и планирования нужна (и уместна) одна система (пространство), а для знаний другая.

Язык программы

Чтобы по первой не тупить, можете попробовать на русском. Позже рекомендую перейти на английский. Причины следующие:

  • Плагины обычно не переводят, поэтому вам придется думать об одной логике два раз.

    • Я имею в виду то, что есть много типовых выражений в описании функций тех или иных плагинов, которые позволяют вам быстрее вникнуть в суть

  • Если у вас появится какие-то затруднения или вы захотите что-то изменить в Obsidian, то запрос в гугле c английскими терминами программы даст вам больше полезных результатов

  • Иметь языковое единообразие в той же палитре команд приятнее, чем его не иметь

В этом гайде интерфейс будет на английском.

Облачное хранилище и резервные копии

Хранить труды десятков, сотен, тысяч часов своей работы в одном месте, да ещё и просто на своем компьютере – максимально идиотская идея. Так что подумайте о том, чтобы продублировать свою базу в каком-нибудь облачном хранилище или на github (процесс синхронизации реализуется в этом плагине, проще всего организовать так).

Можно также использовать Syncthing, чтобы, например, продублировать базу на телефон или свой сервер.

Вдобавок стоит делать регулярные резервные копии. Плотно поработали на неделе? Заархивируйте базу на всякий случай и архив также продублируйте в разных местах. Скорее всего это излишняя мера предосторожности, но лучше с ней, чем иметь риск нарваться на какую-то неосторожную случайность, которая лишит вас всей базы.

Wiki-ссылки

Есть большой спор о том, что лучше использовать: классические MD-ссылки или wiki-ссылки. Мой ответ – wiki-ссылки потому что их проще и быстрее делать и изменять, а также они опрятнее выглядят. В будущем, если вас разъест паранойя, то вы можете написать скрипт (например, на Python), который переделает всё в классические ссылки. Ну или вы можете просто заюзать плагин.

Названия заметок

Термины короткие, идеи длинные

Заметки с терминами мы называем так как они звучат, т.е. как есть, например, «нормальное распределение». Это позволит нам быстрее такие заметки связывать с другими, где эти термины используются. У Obsidian есть встроенная функция по поиску таких заметок. Если мы добавим также aliases, то увеличим количество совпадений.

С идеями наоборот. Идеально, когда суть идеи мы можем передать в названии заметки. Т.е. для идеи мы пишем длинное название, чтобы её было легче потом искать. Да и вдобавок неплохим таким упражнением является упаковывание каких-то сложных концепций в 10 слов.

Заметки строчными буквами

Все заметки мы пишем с маленькой буквы, чтобы позже их можно было легко вставлять в текст с минимум корректировок (точнее совсем без них).

Думаю, из моей логики понятно, что имена собственные, мы наоборот пишем с большой.

Не дублируйте информацию

Это относится вообще ко всем уровням ведения базы:

  • если у вас есть название вверху заметки, то зачем вам оно ещё нужно в заголовке? правильно, незачем.

    • более того, когда вы будете вставлять заметку в другую заметку вот так ![[]] , то у вас будет висеть этот злосчастный заголовок

  • не надо оформлять список исходящих и входящих ссыло.

    • у вас есть и так базовые плагины, которые это отображают

  • не надо создавать множество одинаковых заметок, просто потому что вам встретилась одна и та же мысль в разных места.

    • дополните, модифицируйте или измените то, что у вас уже есть

    • создайте ссылку на имеющуюся заметку

  • желательно (особенно по первОй) делать односторонние ссылк.

    • т.е. чтобы у вас в перечне исходящих и входящих ссылок не было повторов

    • а также для того, чтобы понимать направление связи (это тоже полезная информация)

Единственно возможным образом

Старайтесь организовывать базу так, чтобы все операции в ней выполнялись каким-то единственно возможным образом. Это немного странное требование, но оно нужно для того, чтобы у вас выработались нужные привычки, которые освободят ваш разум от лишних мыслей по типу: «как бы мне добавить новую заметку?», «мне использовать эту функцию с помощью кнопки на панели или как команду, или хоткеем?».

Отсюда же стоит сразу сделать вывод, что уберите всё, чем не пользуетесь, чтобы оно вас не путало и не сбивало ритм.

Источники

Теперь самый главный и самый важный совет. Если вы начинаете делать свою базу с нуля, то настоятельно рекомендую её формировать, отталкиваясь от источников (в этой статье я буду строить всю логику именно на основе этого совета). Что я имею в виду, я покажу на следующем алгоритме (дальше будет наглядная иллюстрация).

  • Создаем заметку по названию источника. Пусть это будет, например, книга «От атомов к древу».

  • Далее внутри неё мы делаем ссылку, например, на заметку с названием «конспекты по книге От атомов к древу».

    • Внутри конспектов как-то ещё там разбиваем на заметки в соответствии с названием глав книги и пишем в них конспекты.

  • В заметку «От атомов к древу» мы выносим из конспектов какие-то самые важные атомизированные мысли.

    • Формируем из заметок какие-то структуры (например, методом outliner)

    • Пишем какие-то свои суммирующие заметки

    • Выносим заметки в отдельную категорию, которые нам особенно интересны и которые мы хотим развить

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

Работу же, которую вы сделаете внутри заметки-источника, вы легко потом переместите в нужные места.

Выглядеть это будет примерно так:

Базовый рабочий процесс

Папки

Структура папок вот такая:

Меньше можно. Больше нельзя.

Почему так?
Дело в том, что папки являются довольно негибкой иерархической структурой. Вы можете наплодить много папок, но потом при первом же каком-то неоднозначном случае вам придется в муках страдать от вопроса «куда бы мне положить эту заметку?». Да, никуда! Не надо думать куда складываются заметки! Пусть они складываются куда-нибудь, а куда именно неважно.

Более того, когда вы создаете множество папок, то вы будете регулярно их перебирать. Вы будете тратить время, чтобы разобраться в том, что у вас построено не ассоциативно, а в собственных нагромождениях перекрученной логики.

Гибкость нашей системы достигается за счёт управления связями. Ибо связи меняются быстро и легко. Это значит, что в такой системе, к нужной мысли или категории мы быстро подведем нужную мысль или другую категорию. При этом мы не будем тратить время на то, чтобы что-то искать в жесткой иерархии. Мы скорее будем регулярно спрашивать свою систему «в тебе есть какие-то похожие мысли, обороты, слова, идеи?» и в таком случае система нам будет сама подкидывать что-то годное.

Хочу также отметить, что чем раньше вы отлипните от папок, тем лучше. Возможно на каком-то моменте, вам стоит вообще отключить их отображение.

Теперь по самим папкам.

  • files

    • сюда складываются файлы (png,jpg,pdf..), чтобы они не мешались с основными заметками

    • стоит также установить в настройках, чтобы файлы складывались автоматически именно в эту папку

    • стоит убрать эту папку из поисковой выдачи (надеюсь вы разобрались с интерфейсом программы)

  • home

    • в ней лежит файл homepage – ваша первая точка входа (о ней будет чуть дальше по тексту)

    • так как этот файл очень важен, то пусть он лежит в отдельной папке

    • сюда же вы можете положить всякие свои трекеры и т.п. (если в этом есть нужда)

    • тут же вы можете разместить, например, MOC заметк.

      • хотя лучше пока что забейте на этот метод ведени.

        • так или иначе он у вас реализуется сам по ходу дела (скорее всего минуя логику папок)

  • periodic

    • в ней лежат две основные папк.

      • daily

        • это дневной журнал, соотвественно в нем хранятся ваши дневные заметки

      • weekly

        • недельный журнал с недельными заметками

    • обе папки нужно убрать из поисковой выдач.

      • чуть позже я покажу как можно (стоит) использовать журнал

    • также в ней лежит папка templates, которая отделяет основные шаблоны от шаблонов недельной и дневной замето.

      • создавать заметки мы будем не через шаблоны, а через кнопочки на календаре

    • вы можете добавить папки для месячных и годовых заметок, если у вас есть в этом нужда

    • периодические заметки имеют обычно типовые имена, которые не несут полезной информации, поэтому их лучше отделить от основной базы

  • projects

    • в ней мы плодим столько папок, сколько у нас есть направлени.

      • статьи

      • ютюб

      • работа

      • прототипы

      • и т.д.

    • хранить проекты с основными заметками не стоит по нескольким причина.

      • проект живет конечное время, а значит и заметки по нему также имеют срок годности

      • нужно уметь отделять знания от результатов применения этих знани.

        • если всё мешать в одну кучу, то вы просто запутаетесь со временем

      • порой полезно архивировать (скрывать) определенные проекты

  • templates

    • тут мы храним все используемые шаблоны

    • рекомендую не сходить с ума и не делать по 10000 шаблонов на все случаи жизн.

      • это вас только сильнее запутает

  • корень

    • здесь мы храним нашу базу знаний

    • есть большой плюс в том, чтобы хранить именно в корне – при поиске заметок вы не будете видеть путь к заметке, а значит вас не будет сбивать с толку лишняя информация

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

Общий вид получится примерно таким:

Стоит заметить, что эти папки созданы также, чтобы немного улучшить или упростить логику работы некоторых функций Obsidian и некоторых плагинов. Вообще говоря, если вы отбитый (но в хорошем смысле, т.е. любите сразу окунаться во что-то непривычное), то можете забить на папки совсем и все возникающие проблемы фиксить по мере их поступления.

Теги

Теги – это (неоправданное) усложнение. Поэтому не надо тегами пытаться размечать какие-либо иерархии, разные уровни взаимоотношений и прочее.

Тегами можно только пометить какие-то заметки.

Например, можно использовать в качестве тегов эмодзи (если вы варитесь в среде обсидианщиков, то наверняка поняли у кого я украл эту идею) и использовать их следующим образом:

  • 📥 – входящие, мимолетные заметк.

    • Маленький совет. Если вы не рассчитываете на то, что будете обрабатывать какую-то мысль или идею в будущем, то не пишите е.

      • звучит до тупого логично, но на самом деле по первой вы часто будете заносить в базу всякую бесполезную мут.

        • инбокс станет небольшим барьером, который отфильтрует совсем уж бесполезное

        • чтобы повысить порог, почаще спрашивайте себя «зачем я это записал?»

  • 🗺️ – этот тег обозначит заметки, которые у вас образуют фактически карту контента (категории, сферы и т.д..

Дальше идут теги, которые не шибко обязательны, но порой полезны:

  • ⚛ – заметки, которые ждут пока вы их разобьете на более мелкие независимые заметк.

    • обычно этот тег ставится на конспектах

  • 🌲 – тег, которым вы можете помечат.

    • вечнозеленые заметки (заметки, которые для вас особенно ценны)

    • или заметки (ростки), которые вы хотите развить во что-то большее, т.е. которые вам особенно интересн.

Эти теги можно заюзать в случае, если вы будете использовать плагин spaced repetition (не забудьте их обозначить в настройках плагина):

  • 🃏 – флешкарт.

    • в этом теге стоит делать вложенные категории, чтобы можно было повторять (учить) какие-то заметки из определенной сфер.

      • например, так 🃏/statistics

  • ⏳ – тег, помечающий заметку, которую вам нужно периодически показывать для revie.

    • этим тегом я помечаю многие заметк.

      • это один из методов постоянного актуализирования заметок

Вдобавок, ещё скажу то, что пытаться компенсировать тегами то, что у вас нет иерархии в папках не надо.

Первая точка входа

Основные свойства первой точки входа:

  • с неё вы всегда начинаете свою работу

  • из неё вы должны мочь дойти до любой заметки в систем.

    • это свойство также должно вам подсказать, чт.

      • в системе не должно быть несвязанных заметок

      • количество кликов до каждой заметки должно быть поменьш.

        • это значит, что нужно постоянно уплотнять систему (делать какие-то обобщения)

Рекомендую на неё вынести следующее (позже будет иллюстрация):

  • Заметки, которые у вас аккумулируют разные типы источников (книги, фильмы и т.д.)

  • Также на неё можно вынести заметку по справке

  • Заметку, которая у вас формирует карту контента

  • Возможно также стоит вынести заметку по алгоритму обработки информаци.

    • заметку, в которой вы отразили описание ключевых каких-то операций, которые собираетесь делать постоянно над разными источниками

  • можете вынести также на неё трекер привычек и прочие отслеживалки, если вам капец как нравится следить за собой

Вы можете использовать разные способы отображения:

  • просто заметка

  • kanban

  • excalidraw

  • с помощью своего какого-то кастомного css

Однако, наверное, самый прикольный способ это с помощью dashboard.

Dashboard

Вам нужно забрать отсюда два файла:

  • dashboard.css

    • он создаст новый cssclass под названием dashboard

  • dashboard-ReadLineLength.css

    • сделает отображение dashboard пошире

Их вам нужно поместить в папку snippets, по следующему пути …/ваша_папка_с_базой_знаний/.obsidian/snippets/

Если папки snippets нет, то создайте её.

Далее включите эти сниппеты в настройках.

Теперь, в метаданных нужно указать следующее

---
cssclass: dashboard
---

Ву-а-ля. Теперь вы можете сделать неплохую стартовую панель.

Например, такую:

В режиме редактирования:

Посмотрите ещё раз, но немного внимательнее на какие заметки я сделал ссылки. Ко всем, кроме projects и index, я так или иначе обращусь по ходу текста.

Вдобавок вы можете поставить плагины:

  • Homepag.

    • добавит хоткей, команду и кнопку по которой вы сможете с бОльшим удобством возвращаться на homepage

    • также добавит некоторое дополнительное поведение при вызове homepage

  • Banner.

    • даст вам возможность добавить наверх страницы какую-нибудь картинку

Ещё пара идей:

Кстати, стоит помнить, что такой вид отображения вы можете использовать где-нибудь ещё, т.е. не только для homepage.

Ваша справка

Писать справку по каким-то функциям полезно самому, ибо это позволит побыстрее внедрить в свой процесс какую-то новую фишечку. К тому же вы будете частенько забывать как у вас делаются те или иные вещи – справка в этом смысле уменьшит количество тупняков.

Давайте возьмем для примера следующую фишку. Если создать алиас с символом в начале какого-то типового файла (книги, статьи и прочего), то можно сразу искать конкретно по типу файла.

Круто, да? Правда велик риск того, что вы забудете какой символ к какому контенту относится. Поэтому стоит отразить эту классификацию в своей справке.

Вот вам вариант:

Понятное дело, что эта фишка может быть излишеством, на который вы со временем забьете. Однако, если у вас все источники создаются с помощью шаблонов, то почему бы не добавить этот вариант классификации – если не сработает, то бог с ним, а если вам так станет удобнее, то наоборот ништяк.

В справку вы можете вынести

  • алгоритм обработки контента

  • основные хоткеи

  • справку по используемым функциям определенных плагинов

  • справку по синтаксису MD

  • можете создать даже собственный гайд по рабочему процесс.

    • его вы можете по ходу дела улучшать и вместе с этим будет улучшаться и ваш рабочий процесс

Панели

По первой я предлагаю использовать только такую раскладку панелей.

Начнем с локального графа. Это довольно полезная вещь, так как она позволяет видеть как визуально (пространственно) связанны заметки. По сути, именно по этому представлению вы можете быстро понять откуда мысль пришла и куда ведет. Если у вас большой монитор, то можете увеличить глубину отображения графа, чтобы видеть больше информации.

И ещё немного про графы. Рекомендую раскрасить в нем ноды сообразно их типу (например, красным книги, желтым авторов, подкасты зеленым и т.д.). Это дополнительная визуальная информация, которая быстрее вас соориентирует.

Далее заголовки. Тут думаю совсем понятно. Если вы пишете длинный текст, то неплохо бы понимать, где вы в данный момент в нем находитесь.

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

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

Создание заметки

Inbox (templater)

Если вы строите базу от источников, то вероятно инбоксом вы будете по первой пользоваться довольно редко. Однако его лучше добавить сразу в систему, чтобы у вас не возникало вопросов о том «куда мне складывать свои мимолетные заметки».

(Лирическое отступление. Я хоть и сказал в прошлой статье, что Обсидианом можно пользоваться эффективно без плагинов, однако я не сказал, что нужно так обязательно делать. Всё таки плагины довольно неплохо оптимизируют какие-то рутинные действия. Не пользоваться ими значит поступать как-то недоконца рационально, а особенно в рамках того, что вы решили использовать именно Obsidian.)

Шаблонные заметки стоит создавать через плагин templater. Заметку под называнием «_inbox» мы помещаем в папку templates. Такое название нужно, чтобы этот шаблон нам показывался первым.

Шаблон этой заметки до безумия элементарен:

#📥

По умолчанию в Obsidian новые заметки создаются сочетанием ctrl+n(ew). Думаю, что не стоит изменять логику, которую этот hotkey выполняет: я рекомендую поменять команду на этом хоткее. Команда, как вы могли догадаться, будет из templater-a:

Список заметок из инбокса вы можете смотреть с помощью нажатия на тег (на панели тегов). Позже я покажу как сделать чуть более удобное отображение с помощью dataview.

Создание в контексте заметки и рефактор

Для начала установите плагины «Note refactor» и «Better Link Inserter».
Теперь основные хоткеи:

  • ctrl+k – создать призрак заметки из выделенного текста (выделить скобочками)

  • ctrl+shift+k – сделать то же самое, но выделенный текст поместить через разделитель «|» как отображаемый

  • alt+f – создать заметку из выделенного текста, где первая строчка – название заметки

  • ctrl+] – создать заметку из заголовка (базовый плагин Note Composer)

  • ctrl+[ – создать (совместить) заметку из выделенного текста с определенным названием (с другой заметкой)

  • ctrl+enter – перейти (создать) на заметку под курсором

Ещё немного упростим создание заголовков. Соответственно жмем alt+уровень заголовка, получаем нужный заголовок.

Поэкспериментируйте. Так вы лучше поймете, что эти хоткеи делают. Можете что-нибудь ещё прикрутить к хоткеям, но думаю, что вам и этого хватит за глаза.

Алиасы

У нас с вами все таки русский язык является основным, поэтому добавляйте к заметкам aliases (это намек на разные падежи). Это нужно как для поиска, так и для более легкой интеграции в другие заметки. Упомяну также, что в блоке про создание homepage вы должны были заметить, что я туда добавил несколько коротких aliases. Это нужно, чтобы можно было через поиск по названию заметки быстро переходить на эту страницу. Можете добавить ко всем часто используемым заметкам короткие aliases.

Очень важный совет. Когда вы будете искать заметки по каким-то ключевым словам, то у вас могут срабатывать несколько смещенные ассоциации, т.е. например, вместо слова «параметр», вы будете писать слова «сфера», «категория», «поле», «значение» и все в таком духе. Разумеется, что поиск по названию вам не поможет. Поэтому когда же вы все таки сможете найти то, что вам было нужно иными способами (например, полнотекстовым поиском), то добавьте в заметку aliases со всеми вариациями, которые вы использовали.

Так уж получается, что если мы вспоминаем какую-то определенную вещь, определенным образом, то так будет продолжаться очень долго и в будущем. Поэтому тут стоит себе регулярно подыгрывать.

Ссылки на другие заметки

  • Идеальная ссылка это та, которая интегрирована в текс.

    • благодаря этому мы видим сразу контекст в котором употребляется мысль

    • более того, мы видим обоснование связи

На абстрактном примере это выглядит вот так:

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

Так при интеграции этой заметки в какую-то другую, мы будем видеть только текст.

Естественно, что это два примера в вакууме. Обычно у вас будут формироваться довольно плохо выглядящие заметки, в которых будет такая себе структура. Так что сильно не заморачивайтесь о том куда впихнуть ссылки – главное, что бы вы их впихнули.

Чтобы скрыть название заметки при её встраивании, нужно создать сниппет с таким содержанием:

/* Naked Embeds */
.markdown-embed-title { display:none; }
.markdown-preview-view .markdown-embed { border:none; padding:0; margin:0; }
.markdown-preview-view .markdown-embed-content { max-height: unset;}
.markdown-preview-view .markdown-embed-content>:first-child { margin-top: 0; }
.markdown-preview-view .markdown-embed-content>:last-child { margin-bottom: 0; }

Лично меня раздражают названия заметок при их встраивании, поэтому я решил их убрать для большей чистоты.

Не помечать категорию заметки

Представьте, что у вас сейчас в базе есть 10000 заметок. И я вам вдруг говорю «рассортируйте мне их по категориям». Что вы подумаете? Скорее всего ничего, так как у вас сразу же начнется ломка по котикам на ютюбе. Масштабы работы просто колоссальные. Это значит, что прокрастинации не миновать. А теперь представьте, что после того как вы потратите уйму времени на мое задание, я вам скажу что-то в стиле «знаете, заметки с категориями R и статистика нужно объединить в одну категорию анализ данных«. Хорошо, если вы знаете как писать скрипты или как делать массовые замены в какой-нибудь сторонней программе. Но, а если я придумаю какой-то более изощренный запрос? Тогда вам придется, либо ломать голову над тем как сделать автоматизированное решение, либо мучиться от бесконечной скуки, порожденной монотонной работой. Я уж совсем молчу о том, что вам изначально придется думать на каждой заметке к какой-то категории она относится по смыслу.

Короче говоря, этим выдуманным примером, я хотел вам сказать, чтобы вы забили на категоризацию всех идей. У вас есть панель слева, в которой вы можете просто по обратным ссылкам пощёлкать и понять откуда взялась эта заметка. Этого достаточно, ибо рано или поздно там появится конкретный источник мысли (книга, подкаст и т.д.) или сама категория (которая у вас будет в виде отдельной заметки, но которую вы сделаете попозже, т.е. тогда, когда у вас накопится достаточно формальных источников, чтобы ее организовать).

Журнал

По сути журнал (дневник) нам нужен для двух вещей:

  • во-первых, в него вы можете скидывать мириады своих балластных мысле.

    • всяческие свои переживани.

      • радости

      • тревогу

      • разочарования

      • надежды

    • описания того, что с вами приключилос.

      • эмоции от случившихся недавно событий

      • случаи из путешествий

      • какие-то наблюдения за собой и другими людьми

    • какие-то просто обозначающие мысл.

      • т.е. те которые вам нужны не сколько для того, чтобы что-то понять, сколько для того, чтобы высказаться и обозначить для себя, что вы думаете именно так

    • вы также можете отмечать в нём то, что сделали за день

    • если вы капец как любите следить за собой, то в них вы можете трекать свои привычки

  • во-вторых, журнал стоит использовать для того, чтобы в нем агрегировать какие-то задачи или идеи по вашей базе знани.

    • раньше я эти задачи делал в рамках актуальных источников или каких-то тем в конкретных заметках, но позже вынес данный процесс в журна.

      • чтобы сделать также придется заюзать dataview

Для организации журнала, стоит поставить следующие плагины:

  • Template.

    • им мы будем формировать шаблоны

  • Calenda.

    • красивый и минималистичный календарь в нашем Obsidian

  • Periodic Note.

    • по сути нам он нужен, чтобы сделать календарь кликабельным

  • Dataview (если вы собираетесь агрегировать задачи из периодических заметок)

Я хотел сам написать гайд по базовому функционалу dataview, но меня опередили в этом. Так что, если планируете использовать dataview (а вы планируете его использовать. заклинаю вас), то стоит немного в нем подразобраться, чтобы понимать, что я буду делать дальше.

Итак, делаем для Templater следующие настройки (не забудьте сначала создать соотвествующие файлы шаблонов):

Настройка «Automatic jump cursor» позволит нам перемещать курсор в место где мы напишем вот эту строчку <% tp.file.cursor(0) %>. Этот тригггер сработает, либо при создании заметки, либо если вы используете следующую команду:

Это просто маленькая приятная фишка. В целом можете на неё забить.

Настройка «Trigger Templater on new file creation» будет применять заданный шаблон, для заданной папки при создании в ней новой заметки. В целом эта опция и открывает для нас меню в которое мы добавляем шаблоны для периодических заметок. Тут же в будущем вы можете добавить шаблоны, например, для проектных заметок (хотя это настраивается в плагине Projects о котором я кратко скажу позже).

Настройки Calendar. Просто включаем отображение недель.

Настройки periodic notes. Тут мы подрубаем дневные и недельные заметки, а также указываем папки в которых они будут храниться.

Теперь о том как может выглядеть шаблон дневной заметки (покажу с излишествами, которые вы можете убрать):

Hidden text
## Что я сделал? Что произошло?

<% tp.file.cursor(0) %>

## ✔ Что можно изменить/улучшить?

- [ ]

## Какие идеи/мысли меня посетили?

idea::

## Заметки сделанные в этот день
```dataview
LIST
WHERE file.cday = date(<% tp.file.title %>)
```

Теперь о том как происходит агрегирование для дневниковых заметок (если вы помните, то на homepage была заметка «свод по дням» – вот это к этому относится):

Hidden text
---
aliases: 
- "d" 
- "д"
- "в"
---

# ✔Задачи

```dataview
TASK
FROM "periodic/daily"
WHERE !completed
GROUP BY file.link
```

# Идеи

```dataview
TABLE WITHOUT ID
	file.link AS "День",
	idea AS "Идея"
FROM "periodic/daily"
WHERE idea
```

# Архив задач

```dataview
TASK
FROM "periodic/daily"
WHERE completed
GROUP BY file.link
```

Итог будет примерно такой:

Для недельных заметок всё примерно тоже самое. Вы можете сделать такой шаблон:

Hidden text
## Что я понял/узнал за неделю?

> [!summary]
> summary:: <% tp.file.cursor(0) %>

# Что стоит сделать на этой неделе?

- [ ]

Суммироваться по недельным заметкам будет вот так (свод по неделям):

Hidden text
---
aliases: 
- "w" 
- "н"
---

# Задачи

```dataview
TASK
FROM "periodic/weekly"
WHERE !completed
GROUP BY file.link
```

## Summary по неделям

```dataview
TABLE WITHOUT ID
	file.link AS "Неделя",
	summary AS "Итог"
FROM "periodic/weekly"
WHERE summary
SORT file.name DESC
```

# Архив задач
```dataview
TASK
FROM "periodic/weekly"
WHERE completed
GROUP BY file.link
```

Поэкспериментируйте, чтобы понять как это будет выглядеть.

Теперь зачем мы все это сделали?
Все только ради одного – ради кнопочек. Вы шлепаете по дате и получаете по ней заметку.

На надо много думать, много париться. Просто жмете на дату и получаете заметку с готовым шаблоном на день или на неделю. Далее вам лишь остается только выплеснуть все свои мысли в неудержимой порывистости. После же вы сможете собрать плоды своей эмоциональной работы в одном конкретном (суммирующем) месте.

Тема кнопочек будет раскрыта ещё не раз.

Списки источников

Возможно в начале стоит самому курировать все эти списки вручную. Т.е. делать что-то в таком стиле:

В силу того, что в Obsidian такие вещи автоматизируются, я бы рекомендовал побыстрее отказаться от ручного курирования такого списка. Позже я предложу вариант автоматизации этого процесса с помощью шаблонов и dataview.

Кстати, заметьте, что я проклассифицировал источники именно в графе «ПРОЧИТАЛ». Это небольшое напоминание о том, что вы только со временем поймете, что же вас действительно интересует и к какой категории это относится.

Dataview

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

Более того, тут я вам просто дам шаблоны и условно скажу «пользуйтесь ими». Все они довольно простые и понятные, а ещё они все собраны по одинаковой логике. Если вам кажется что-то лишним, то выкидывайте это.

Библиотеки источников

Стоит заметить, что некоторые шаблоны автоматизируются ещё сильнее за счёт плагинов, кои за вас заполняют многие поля. Их я тоже кратко объясню как настроить.

В конце я дам заметку в которой будет отражена логика работы со всеми заметками по всем источникам В них также будут отражены названия команд для создания всех типов заметок. Это будет схема mermaid.

Если вы сейчас такие подумали: «Чё, для каждой заметки ещё и команду нужно помнить?». Я отвечу: «Нет, конечно. Забейте. Мы все сделаем через кнопочки».

Создайте предварительно все файлы шаблонов.

Шаблон

В начале каждого шаблона будет небольшой странноватый блок. Он немного вас смутит, но рекомендую его не удалять. Он выполняет несколько функций:

  • когда вы создаете вручную заметку из шаблона, то он спрашивает вас о названии – выдаст диалоговое окно (мне лично нравится именно такое поведение)

  • этот блок стоит вначале, чтобы «сломать» метаданные. это нужно, чтобы dataview перестал выдавать вам шаблон по вашим запросам (проще «сломать» все шаблоны, чем постоянно исключать их из запросов dataview)

  • блок не будет мешать вам при создании заметок из кнопочек – он просто исчезнет

Теперь немного об основном содержании шаблонов.

Всё это нужно для автоматизации. В целом можете добавить что-то ещё, но думаю и этого более или чем достаточно.

parent, children, author существуют для того, чтобы в будущем вы могли эффективно использовать Breadcrumbs и Excalibrain. Если вы точно знаете, что это вам не нужно, то уберите их.

Кстати, чтобы отключить показ метаданных в режиме preview нужно создать в папке snippets файл, например, под названием hide-yaml.css вот с таким содержанием:

.frontmatter-container {
    display: none;
}

Далее его нужно включить в настройках Obsidian.

Книги

Шаблон для книги

Hidden text
<%*
let title = tp.file.title
if (title.startsWith("Untitled")) {
title = await tp.system.prompt("Title");
}
await tp.file.rename(title)
-%>---
type: book
aliases: 
- "& <%* tR += title %>"
cover: {{coverUrl}}
start:
end:
status: todo
recommendedby:
---
___
tags:: 
parent:: [[books|назад в библиотеку]]
category::
author:: [[{{author}}]]
children::
___
PDF
![cover|150]({{coverUrl}})
___

<% tp.file.cursor(0) %>

Библиотка книг

Hidden text
---
type: book
aliases: "&"
---
%%cssClass: cards%%

## В процессе
**status:** ==wip== *(work in progress)*

```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	author AS "Автор(ы)",
	start AS "Начал",
	category AS "Категория"
FROM !"templates"
WHERE type = "book" AND status = "wip"
```

## Ожидают прочтения
**status:** ==todo==

```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	author as "Автор(ы)",
	recommendedby AS "Рекомендовано",
	category AS "Категория"
FROM !"templates"
WHERE type = "book" AND status = "todo"
```

## Завершённые
**status:** ==done==
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	author AS "Автор(ы)",
	start AS "Начал",
	end AS "Закончил",
	category AS "Категория"
FROM !"templates"
WHERE type = "book" AND status = "done"
```

Чтобы этот шаблон завёлся его нужно использовать вместе с плагином «Book search».

В целом нужно только место шаблона указать.

Формально поиск книг запускается с помощью команды:

Можете её использовать, однако стоит держать в голове, что все команды создания заметок-источников я покажу как заавтоматизировать в единую простую и наглядную логику – в кнопочки.

Подкасты

Шаблон для подкастов

Hidden text
<%*
let title = tp.file.title
if (title.startsWith("Untitled")) {
title = await tp.system.prompt("Title");
}
await tp.file.rename(title)
-%>---
type: podcast
podcast: {{podcast}}
aliases: 
- "` <%* tR += title %>"
cover: {{artwork}}
status: todo
recommendedby:
---
___
tags:: 
parent:: [[podcasts|назад в библиотеку]]
category::
url::
children::
___
{{podcast}}
![cover|150]({{artwork}})
___

<% tp.file.cursor(0) %>

Библиотека подкастов

Hidden text
---
type: podcast
aliases: 
- "`"
---

## В процессе
**status:** ==wip== *(work in progress)*
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	podcast AS "Подкаст",
	category AS "Категория"
FROM !"templates"
WHERE type = "podcast" AND status = "wip"
```
## Ожидают прослушивания
**status:** ==todo==
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	podcast AS "Подкаст",
	category AS "Категория"
FROM !"templates"
WHERE type = "podcast" AND status = "todo"
```
## Завершённые
**status:** ==done==
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	podcast AS "Подкаст",
	category AS "Категория"
FROM !"templates"
WHERE type = "podcast" AND status = "done"
```

Этот шаблон существует номинально, т.е. если вы будете создавать заметку для подкаста вручную. Чтобы он завёлся, нужно поставить плагин «PodNotes».

Настройки такие:

Команда для создания заметки по подкасту такая (предварительно нужно включить подкаст):

Фильмы

Шаблон по фильмам

Hidden text
<%*
let title = tp.file.title
if (title.startsWith("Untitled")) {
title = await tp.system.prompt("Title");
}
await tp.file.rename(title)
-%>---
type: movie
aliases: 
- "% <%* tR += title %>"
cover: {{VALUE:Poster}}
status: todo
recommendedby:
---
___
tags:: 
parent:: [[movies|назад в библиотеку]]
category::
author:: {{VALUE:directorLink}}
children::
___
![cover|150]({{VALUE:Poster}})
___

<% tp.file.cursor(0) %>

Библиотека фильмов

Hidden text
---
type: movie
aliases: "%"
---
%%cssClass: cards%%
## В процессе
**status:** ==wip== *(work in progress)*
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	author AS "Режиссёр",
	parents AS "Категория"
FROM !"templates"
WHERE type = "movie" AND status = "wip"
```
## Ожидают просмотра
**status:** ==todo==
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	author AS "Режиссёр",
	parents AS "Категория"
FROM !"templates"
WHERE type = "movie" AND status = "todo"
```
## Завершённые
**status:** ==done==
```dataview
TABLE WITHOUT ID
	("![|80](" + cover + ")") as "Обложка",
	file.link AS "Название",
	author AS "Режиссёр",
	parents AS "Категория"
FROM !"templates"
WHERE type = "movie" AND status = "done"
```

В Obsidian нет плагина, который бы искал фильмы. (Что удивительно странно) Однако есть реализация поиска, которую, придумала Minimal theme и формально объяснила как её прикрутить вот тут. Данные о фильмах будут подгружаться из IMDb (это значит, что названия будут на английском. учитывайте это)

Чтобы шаблон завёлся придется сделать довольно много операций. Вы можете посмотреть видео или сделать так, как я опишу далее. Разницы нет никакой, потому что я сделаю ровно те же шаги, что и в видео.

Для начала зайдите на этот сайт и попросите у него api ключ.

Далее установите плагин «QuickAdd».

И вот тут начинается основная муть, хех.

Создайте в корне вашей базы знаний папку Scripts (по-другому, вроде бы никак).

В неё вам нужно поместить вот этот файл . Cделайте это через ваш файловый менеджер, а не через Obsidian.

Теперь зайдите в настройки плагина «QuickAdd».

Нажимаем «Manage Macros»

Создаем макрос, например, с называнием «create film».

Жмем «Configure».

Добавляем скрипт.

Жмём на шестерёнку и пишем свой api ключ, который вам пришёл на почту.

Далее закрываем окно с api ключом и жмем «Template».

Выбираем наш шаблон с фильмом и устанавливаем шаблон для названия имени файла (у нас это просто название фильма).

Возвращайтесь в основное меню настроек плагина «QuickAdd». Выберете макрос.

Введите название макроса и нажмите «Add Choice».

Теперь нажмите на шестерёнку и проверьте, что там всё стоит как указано на скрине.

Жмакните молнию, чтобы добавить команду «add movie» в палитру команд.

Всё…

Команда для создания заметки по фильму:

Ещё раз… Фильмы будут на английском.

Видео, статьи, курсы

Для всех этих источников нет каких-то плагинов поиска, поэтому будут просто шаблоны.

Шаблон для видео

Hidden text
<%*
let title = tp.file.title
if (title.startsWith("Untitled")) {
title = await tp.system.prompt("Title");
}
await tp.file.rename(title)
-%>---
type: video
aliases: 
- "$ <%* tR += title %>"
status: todo
recommendedby:
---
___
tags:: 
parent:: [[videos|назад в библиотеку]]
category::
url::
children::
___

iframe

___

<% tp.file.cursor(0) %>

Библиотека видео

Hidden text
---
type: video
aliases: "$"
---

## В процессе
**status:** ==wip== *(work in progress)*
```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "video" AND status = "wip"
```
## Ожидают прочтения
**status:** ==todo==
```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "video" AND status = "todo"
```
## Завершённые
**status:** ==done==
```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "video" AND status = "done"
```

Шаблон для статьи

Hidden text
<%*
let title = tp.file.title
if (title.startsWith("Untitled")) {
title = await tp.system.prompt("Title");
}
await tp.file.rename(title)
-%>---
type: article
aliases: 
- "; <%* tR += title %>"
status: todo
recommendedby:
---
___
tags:: 
parent:: [[articles|назад в библиотеку]]
category::
url::
children::
___
PDF

<% tp.file.cursor(0) %>

Библиотека статей

Hidden text
---
type: article
aliases: ";"
---

## В процессе
**status:** ==wip== *(work in progress)*
```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "article" AND status = "wip"
```
## Ожидают прочтения
**status:** ==todo==
```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "article" AND status = "todo"
```
## Завершённые
**status:** ==done==
```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "article" AND status = "done"
```

Шаблон для курсов

Hidden text
<%*
let title = tp.file.title
if (title.startsWith("Untitled")) {
title = await tp.system.prompt("Title");
}
await tp.file.rename(title)
-%>---
type: course
aliases: 
- "{ <%* tR += title %>"
status: todo
recommendedby:
---
___
tags:: 
parent:: [[courses|назад в библиотеку]]
category::
url::
children::
___

<% tp.file.cursor(0) %>

Библиотка курсов

Hidden text
---
type: course
aliases: "{"
---

## В процессе
**status:** ==wip== *(work in progress)*

```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "course" AND status = "wip"
```

## Ожидают прохождения
**status:** ==todo==

```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "course" AND status = "todo"
```

## Завершённые
**status:** ==done==

```dataview
TABLE WITHOUT ID
	file.link AS "Название",
	url,
	category AS "Категория"
FROM !"templates"
WHERE type = "course" AND status = "done"
```

В целом для видео можете поставить плагин «Media Extended». Он позволит смотреть видео и слушать аудио прямо из Obsidian. Вдобавок вы сможете ставить метки времени нажатием хоткея. Ставить или нет, опционально. Мне он нравится.

Возможно вам пригодится небольшая настройка плагина (украл ровно у того же обсидианщика, у которого украл теги).

Чтобы эта связка сработала придется жать сразу два хоткея.
Сначала для создания временной метки:

Потом, активация шаблона, чтобы переместился курсор.

Костыль чистой воды.

Кстати, сам плагин вызывается командой

Вызываете команду,вВставляете ссылку на видео и радуетесь жизни.

Inbox

Заметку с inbox вы также можете увидеть на вашем dashboard.
Внутри она выглядит вот так:

Hidden text
---
aliases: 
- "поиск несвязанных заметок"
- "inbox"
- "atom"
- "orphan"
tags: 📥
---

# 📥 inbox

```dataview
LIST
FROM #📥
WHERE file.link != [[inbox and pending and orphan notes]]
```

# ⚛ pending atomization

```dataview
LIST
FROM #⚛ 
```

# 💔 orphan

Здесь приводится **LIST** из *заметок* и *файлов*, которые ни с чем НЕ связаны:

```dataview
LIST
FROM 
	!"home" 
	AND 
	!"templates" 
	AND 
	!"periodic" 
	AND 
	!"files/excalidraw"
	AND
	!"projects"
WHERE
	length(file.inlinks) = 0 
	AND 
	length(file.outlinks) = 0 
	AND 
	length(file.tags) = 0
	AND
	file.link != [[excalibrain]]
	AND
	file.link != [[excalidraw_template]]
```

Алгоритм обработки контента

Я для вас составил схему mermaid. Добавьте её в свою заметку и изучите.

Hidden text
[mermaid help](https://mermaid-js.github.io/mermaid/#/flowchart)

```mermaid
flowchart TD

    content --> book["📚book"]
    content --> film["🎬film"]
    content --> podcast["📻podcast"] 
    content --> article["🧾article"] 
    content --> video["📺video"]
    content --> course["🧑‍🏫course"]

	book --> book1["command: Create new book note"]
	book1 --> book2["просмотровое чтение"]
	book2 --> book3["чтение и выделение"]
	book3 --> book4["написание конспекта"]
	subgraph book5[" "]
		direction LR
		book51["outliner"]
		book52["mindmap: alt+m"]
	end
	book4 --> book5 --> atom["атомизирование"]
	atom --> MOC["MOC и точки входа"]
	MOC --> meditation["медитирование"]

	film --> film1["command: add movie"]
	film1 --> film2["мимолётные заметки"]
	film2 --> film3["timestamps"]
	film3 --> atom["атомизирование"]

	podcast --> podcast1["command: create podcast note"]
	podcast1 --> podcast2["мимолётные заметки"]
	podcast2 --> podcast3["timestamps: alt+shift+t"]
	podcast3 --> podcast4["вторичные структуры"]
	podcast4 --> atom

	article --> article1["templater: article template"]
	article1 --> article2["создать или добавить PDF"]
	article2 --> article3["просмотровое чтение"]
	article3 --> article4["чтение и выделение"]
	article4 --> article5["написание конспекта"]
	article5 --> article6["вторичные структуры"]
	article6 --> atom

	video --> video1["templater: video template"]
	video1 --> video2["мимолётные заметки"]
	video2 --> video3["timestamps: alt+t"]
	video3 --> atom

	course --> course1["templater: course template"]
	course1 --> course2["подготовка структуры"]
	course2 --> course3["написание конспектов"]
	subgraph course4[" "]
		direction LR
		course41["outliner"]
		course42["mindmap: alt+m"]
		course43["excalidraw: embed in actve document"]
		course44["canvas"]
	end
	course3 --> course4 --> course5["вторичные структуры"]
	course5 --> atom

```

Projects

Для того, чтобы вообще отлипнуть от папок, я предлагаю поставить плагин «Projects». Суть его в том, что он позволяет отслеживать ваши проекты.

Для всех направлений, которые вы наплодили в папках, нужно сделать одну и ту же операцию.

Вызываются проекты командой (но мы сделаем кнопочку).

Выглядеть это примерно будет так:

Если вы установите плагин «Kanban», то сможете выбрать отображение ваших проектов в виде канбан-доски. Также, если вы установите плагин «DB folder», то также добавится новое отображение и в нем вы сможете работать со своими проектами так, как если бы работали в Notion.

Здесь я не буду предлагать вам способы ведения проектов, ибо это отдельное искусство. Поэтому тут уж как-то сами.

Дополнительные оптимизации

В этой части я рекомендую обязательно сделать кнопочки. Остальное на ваше усмотрение.

Buttons

Лично я использую Linux. К тому же ещё у меня стоит tiling-manager. Это значит, что всё мое взаимодействие с системой строится на основе хоткеев. В Obsidian я тоже множество действий вызываю хоткеями, так как это ускоряет существенно работу. Однако некоторые же операции я не выношу на клавиатуру, ибо так бы они меня сильно перегрузили излишней логикой. В Obsidian к таковым операциям относится создания разного типа заметок.

В целом вы можете вынести все команды на левую панель с помощью плагина «Commander». Вы также могли бы добавить ещё одну панель с помощью плагинов «cMenu» или «Editing Toolbar». Однако мне показалось более прикольным сделать кнопки в отдельной заметке с помощью плагина «Buttons».

У него есть команда вызова «Создателя кнопок».

Я не буду углубляться в то как создавать кнопки, а просто предложу вам скопипастить готовый вариант.

Hidden text
```button
name 👓 my projects
type command
action Projects: Show projects
color purple
```
___
```button
name 📥 inbox
type note(Untitled) template
action _inbox template
templater true
```
___
```button
name 🎬 movie
type command
action QuickAdd: add movie
templater true 
```
```button
name 🧾 article 
type note(Untitled) template
action article template
templater true
```
```button
name 📺 video 
type note(Untitled) template
action video template
templater true
```
```button
name 📘 book
type command
action Book Search: Create new book note
templater true 
```
```button
name 📻 podcast
type command
action PodNotes: Create Podcast Note
templater true 
```
```button
name 🧑‍🏫 course 
type note(Untitled) template
action course template
templater true
```
********
```button
name 🃏flashcards
type command
action Spaced Repetition: Review flashcards from all notes
```
```button
name ⏳review
type command
action Spaced Repetition: Open a note for review
```

Их вы можете вынести на свой dashboard (я, к сожалению, так и не понял как сделать кнопки в одну линию и чтобы они при этом работали) или можете вынести их в отдельную заметку.

Выглядеть кнопки будут вот так:

Правда просто? И нет никаких команд. К тому же всё в одном месте.

Стоит также заметить, что эти кнопки станут частью рабочего процесса.

Цвета заметок и эмодзи

Раньше я думал, что эмодзи были созданы для слаборазвитых детей, чтобы им было веселее чатиться с такими же детьми в интернете. Однако оказывается, что у них есть и куда более крутое применение. Вы уже видели, что я использовал эмодзи на тегах и на заметках с dashboard. Не будь их, всё выглядело бы пресным. Однако они добавлены вообще не для этого. Они сделаны для того, чтобы вам было легче искать информацию.

Небольшая иллюстрация на поисковой выдачи.

Как вы видите все заметки-источники подсвечены цветом и у них есть маленькая иконка, которая говорит к какому типу источника заметка относится. Согласитесь, что цвета и иконки здесь позволяют лучше сооринтироваться.

Чтобы сделать такую подсветку нужно поставить плагины:

  • Supercharged Link.

    • Основной плагин, который позволит добавлять цвет для заметок, которые имеют определенные метаданные или содержат определенные теги

  • Style Setting.

    • Позволит менять цвет

    • Даст возможность добавлять префикс в виде иконки (эмодзи)

Начнем с Supercharged Links. Добавьте в графу метаданные по которым вы будете раскрашивать. В нашем случае это type (к которому относятся book, podcast и т.д.), cssclass (к нему относится сейчас только dashboard, но позже может вы что-то ещё добавите) и можете ещё kanban-plugin добавить (значение basic), если хотите.

Итак, начнем раскрашивать. Сделаем это для book.
Нажимаем New.

Теперь сделайте вот такие конфигурации.

В силу того, что вы уже прошли блок про dataview, вы должны улавливать суть того, что сейчас делаете.

Теперь с помощь плагина Style Settings изменим префикс. Перейдите в настройки этого плагина. Добавьте префикс. Можете ещё цвет поменять.

Дальше предлагаю воплотить вам примерно вот такую идею для раскрасок и иконок. Естественно вам не нужно повторять цвета или иконки – всё на ваше усмотрение.

Некоторые другие плагины

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

  • Obsidian Auto Link Titl.

    • подгружает название сайта, когда вы вставляете адрес в заметку

  • Link Favicon.

    • вдобавок к плагину выше добавляет иконку сайта к ссылк.

Что-то типа такого получается

  • Highlight.

    • добавляет в контекстное меню возможность выделять разными цветами текст

    • дублирует функционал выше в палитру команд

  • Lape.

    • добавляет рядом с заголовком его уровень

  • Paste image renam.

    • Автоматические переименовывает вставляемые в заметку изображения

      • Переименовывает по задаваемому шаблону (по умолчанию «название_заметки дата».

        • Если бы не этот плагин, то я бы вообще никогда не нашел бы в своей базе скриншоты для этой статьи (почти шутка)

  • Linte.

    • автоматически редактирует все визуальные корявости заметк.

      • его нужно настроить, ибо по умолчанию он ничего не делает

  • Various complement.

    • добавляет автокоплит ко… текст.

      • очень полезные плагин, т.к. в том числе дает подсказки в редактировании метаданных

      • однако он может стать очень навязчивым по ходу набора текста, поэтому рекомендую увеличить задержку

    • с помощью него вы можете настроить также собственные автодолнени.

      • например, для callouts

  • Outline.

    • Позволяет двигать пункты в списках с помощью хоткеев

  • Zoo.

    • Позволяет зумиться (убирать лишнее) в пунктах списка и даже в заголовка.

      • Очень полезно, когда вам нужно сосредоточиться

  • Omnisearc.

    • Фичастый, но интуитивный полнотекстовый поиск

    • Можете этим плагином заменить свой обычный поис.

      • его вы можете установить на ctrl+shift+f

Пример рабочего процесса

Немного обобщающей информации

Перед тем как я распишу пример рабочего процесса, стоит немного в общих чертах вспомнить о самых ключевых вещах, которые я вам насоветовал.

  • для начала у вас должна появиться первая точка вход.

    • я предложил использовать dashboard

    • с неё мы всегда начинаем свою работу

    • в этой точке входа у вас находятся ссылки на библиотеки разных источников

  • я навязал вам мысль сделать журна.

    • в нем мы пишем о своей жизни

    • а также в него мы выносим задачи, которые актуальны в рамках базы знаний

  • я предложил вам автоматизировать библиотеки источнико.

    • источники мы создаем кнопками

    • к каждому источнику присваивается стату.

      • wip. Самый важный статус, т.к. именно он будет определять, чем вы займетесь дальше

      • todo. Мы что-то нашли, нам что-то порекомендовали, мы это добавили в список ожидания (выкидывать тоже из него не забывайте)

      • done. То, с чем мы намучились и что достаточно подробно изучили

    • именно по библиотекам мы ориентируемся на какую заметку жамкнем и начнем свою умственную работ.

      • я вам НЕ рекомендовал создавать карту контента, категории и прочее (просто напоминаю)

  • я вам предложил разные оптимизации и визуальные докручивания, которые вы вольны использовать или не использовать

Рабочий процесс

Далее я напишу длиннющий иерархический список последовательности действий (т.е. методом outliner), который, как я думаю, неплохо поможет понять как устроен рабочий процесс в рамках того, что вы только что-то накрутили в своей системе. (процесс написан для супермена, который имеет в сутках больше 24 часов. Так что поймите сразу, что вы будете его повторять не целиком, а будете в каждом подходе вклиниваться в какие-то его конкретные части).

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

(Можете попробовать переработать этот алгоритм в какое-нибудь своё визуальное представление)

(Если у вас появятся серьёзные претензии к тому как я вам предлагаю организовать рабочий процесс, то мать вашу… Я же сказал ещё в самом начале, что если у вас уже есть что-то работающее, то не читайте эту статью, она не для вас. Охх…)

Начнем.

  • Думаем чем-бы таким заняться…

  • Открываем Obsidian.

  • Жмем сразу на календарь – сегодняшнюю дату.

    • В заметке пишем что-то неформально.

      • как у нас стартанул/сложился день

      • что с нами случилось

      • какое у нас настроение

      • что мы заметили за собо.

        • что-то психическое

        • здоровье

      • как там у других дела обстоя.

        • может они чего интересного начали делать

        • или что-то сказали такое, что нам хотелось бы как-то обволочь своими мыслями

      • в ней же вы можете прорабатывать какие-то свои проблемы, которые, например, связан.

        • с привычками

        • с агрессией

        • с чрезмерной эмоциональностью

        • с недостатком осознанности в поведении

        • с планированием

        • с видением будущего

        • с пониманием прошлого

    • Вы вольны также написать список дел на этот день, если вам это нужно

    • Отмечаем трекеры, если они есть

  • Приводим систему в начальное состояни.

    • можем сделать это по хоткею, который назначили на домашнюю страницу

    • можем нажать на кнопку домика

    • (рекомендуемый способ) с помощью встроенного плагина Workspaces.

      • в нём вы можете сохранить какие-то другие часто используемые раскладки

Кстати выглядеть ваш старт должен так:

  • далее вы жмете на заметку с inbo.

    • смотрите и анализирует.

      • inbo.

        • если есть заметки, которые можно отнести к каким-то источникам, то создаем ссылку ( и не забываем снять тег)

        • если вы не можете отнести заметки к каким-то источникам и у вас ещё не выстроились категории, то просто оставьте эти заметки ещё на какое-то врем.

          • пусть копятся

        • если вы уже не первую неделю видите одни и те же заметки и вы ничего не можете с ними сделать, то удалите их. причины следующи.

          • возможно они слишком банальн.

            • зачем вам какие-то очевидные и скучные вещи в вашей базе знаний?

          • возможно они слишком сложн.

            • вы не можете проследить явно связи, а притягивать за уши что-то не шибко полезно для базы знани.

              • хотя вы можете попробовать связать какую-то сложную заметку с подписью типа «возможно это как-то связано с…»

          • возможно они просто бесполезны, ибо не несут какой-то идеи, цепляющей мысли (самый частый вариант)

          • возможно они относятся к каким-то таким направлениям, которые вы ещё не начали изучать, потому вам не приходит в голову мысль с чем их можно связат.

            • вообще говоря, эта ситуация является жирным намеком на то, что вам прям рекомендуется (я бы даже сказал обязательно нужно) исследовать какие-то вещи последовательно, переходя от одного источника к другому, кои не оторваны по теме и направлению

      • неатомизированные заметки или ожидающие обработки (тег ⚛.

        • просто смотрите на те заметки, которые вам интересны, переходите на них и пытайтесь в них разбить идеи, мысли и т.д. на независимые заметки

        • описание этого процесса будет немного дальше по тексту

      • несвязанные заметк.

        • в системе не должно быть несвязанных заметок

        • переходите, смотрите почему они не связан.

          • досвязывайте

          • или удаляйте

  • Если вы обогнали этот цикл статей у вас есть какая-то система повторений (например, вы реализовали плагин spaced repetition), то пройдитесь по всем отмеченным заметкам, повторите их, дошлифуйте формулировки и связи, если необходимо

  • Выберете по какому источнику хотите работат.

    • попереходите в свои каталоги источнико.

      • смотрите, что там у вас wip и залетайте в то, что сейчас вам интереснее всего

    • hotkey: ctrl+o – поиск по названи.

      • если вы знаете куда вам надо, то логичнее и быстрее всего заходить туда из поиска

      • напомню, что у вас есть aliases с символами. если вы сделали так как я предложил, то символы следующи.

        • $ – видео

        • % – фильмы

        • & – книги

        • ; – статьи

        • ‘ – подкасты

    • подробно алгоритм работы с источниками в контексте рабочего процесса будет разобран далее

  • если вы забыли формальный алгоритм обработки источников, то посмотрите свою справку (или заметку, которую предложил вам я со схемой mermaid)

  • (подробно я разберу рабочий процесс только для одного типа заметок – книг, так как он самый объемный и в нем по сути содержатся все подпроцессы для других типов источников)

  • создание и обработка книг.

    • положим, что вы решили создать новый источник с нуля. нажмите кнопочку, чтобы создать boo.

      • если вы не можете найти книгу с помощью плагина, то создайте заметку из шаблон.

        • hotkey: ctrl+n – создать заметку из шаблона

      • если у вас сломались кнопочки, то создайте с помощью команд.

        • все команды отображены в схеме mermaid

        • hotkey: ctrl+o – палитра команд

      • эту заметку я буду называть «заметка-источник»

    • подкорректируйте эту заметк.

      • исправьте ссылки

      • добавьте картинку

      • самое главное найдите pdf и вставьте его в заметку

    • откройте pdf из подменю Obsidia.

      • (на всякий случай напомню) наведите мышку на ссылку pdf и нажмите правую кнопку мыш.

        • open in default app

      • (если вы ещё не понимаете зачем так много всяких разных метаданных, зачем картинка и pdf отображены в источнике, то я вам отвечу зачем – потому что так вы компенсируете то, что не используете Zotero)

        • (а ещё для того, чтобы у вас заработала автоматизация)

    • алгоритм работы с книго.

      • 1-ый раз. просмотровое чтени.

        • быстро читаете главу (или просто небольшой кусок текста), ни на что не отвлекаетесь, никуда не переходите

        • отвечаете в самых общих чертах на вопрос «что я только что прочитал?»

      • 2-ой раз. расстановка мето.

        • выделяем текст разными цветам.

          • зеленый – то, что надо переработать (фактически основные мысли текста)

          • оранжевый – полезная справочная информация, которую стоит записать

          • желтый – нужно перейти по указанным ссылкам или просто указать эти ссылки в заметке

          • розовый (фиолетовый) – красивые обороты, то что стоит перенести в свою базу без изменений

      • 3-ий раз. Конспект (наконец-то Obsidian.

        • в заметке-источнике создайте заметку «конспекты по книге Название_книги.

          • на основе содержания книги, создайте заметки призраки, в которых у вас будут лежать конспект.

            • так вы поймете какой у вас будет следующий шаг, да и лучше поймете о чем в целом будет книга

            • если книга небольшая, то можете создать для всех глав призраки, чтобы прям четко видеть свой прогресс

            • названия для конспектов глав должны быт.

              • некоротким.

                • если название у главы «симметрия», то переделайте его, например, в «симметрия стереоизомеров и влияние её на биологические процессы»

              • без фиговен тип.

                • «глава 1…»

                • «часть 1.1.1…»

                • эту структуру вы можете использовать в самой заметке «конспекты по книге Название_книги», чтобы как-то формализовать структур.

                  • обозначить это можно, например заголовками

            • (для других источников обычно нет необходимости создавать отдельную заметку для конспектов)

          • заходите в заметку по соответсвующей прочитанной главе и начинайте писать конспек.

            • (я вам этого ещё нигде не говорил… думаю, что пора… вы можете читать книгу в той последовательности, в какой считаете нужным. более того, вы можете читать только те главы, которые вам наиболее интересны или которые вам нужны для работы, проектов и прочего)

            • конспект вы формируете на основе меток, которые оставил.

              • поглядываете на метки

              • формируете на их основе свои видение и его отражаете в конспекте

            • когда конспект сделан, то вам стоит его перечитать и возможно придать некоторую дополнительную структурност.

              • например, разбить заголовками на несколько частей

            • всё… оставьте конспект на какое-то время (день, два, месяц – без разницы.

              • сделайте пометку, что он готов к атомизации (тег ⚛)

      • Атомизация (рефакторинг.

        • (вы оставили конспект на какое-то время, чтобы у вас не появилось на последующем этапе атомизации чувства, ощущения или мысли, что ваш конспект испещрен какими-то очевидностями, а потому в нем нет никакой пользы. это ощущение очевидности, вообще говоря, рождается из того, что вы только-только прочитали и обобщили (частично даже скопировали – не точь-в-точь, но основную суть) какие-то мысли и у вас ещё не было возможности охладеть к собственному видению, чтобы посмотреть на него более отстранено, более объективно.)

        • на этом этапе вы вчитываетесь в собственные мысли и пытаетесь их привести в какой-то вменяемый ви.

          • смысл же конспекта также в том, что вы можете к нему обратиться позже, чтобы восстановить какое-то понимание, видение, чтобы спровоцировать себя на какие-то нужные ассоциаци.

            • если в нем будет недостаточно смыслового клея, то вы не сможете до конца понять написанное (причем, кстати, не сможете понять самого себя, что забавно)

            • так что доведите формулировки в конспекте до вменяемого состояния

        • теперь самое сложное – атомизаци.

          • в конспектах вам нужно найт.

            • самые главные – ключевые идеи

            • самые плодовитые идеи

            • самые неординарные мысли

            • полезные мысли и идеи, которые, как вы думаете, сможете использовать в каких-то иных местах

          • все найденные вышенаписанные мысли вам нужно превратить в отдельные независимые заметк.

            • hotkey: ctrl+k – создать призрак заметки из выделенного текста (выделить скобочками)

            • hotkey: ctrl+shift+k – сделать то же самое, но выделенный текст поместить через разделитель «|» как отображаемый

            • hotkey: alt+f – создать заметку из выделенного текста, где первая строчка – название заметки (наверное, чаще всего вы будете делать именно так)

            • hotkey: ctrl+] – создать заметку из заголовка

            • hotkey: ctrl+[ – создать (совместить) заметку из выделенного текста с заданным названием (с другой заметкой)

            • hotkey: ctrl+enter – перейти (создать) на заметку под курсором

          • конспект при это пострадать не должен, так что восстановите в нем смыс.

            • например, интегрируйте ваши атомные заметки с помощью вставк.

              • нет ничего плохого, что у вас, например, целый абзац стал отдельной мыслью

      • Связывани.

        • по первой тут все прост.

          • связываете заметки из конспектов между собой какими-то логическими и обоснованными связями

          • щелкаете по вашим другим каким-то источникам и находите в них связанные мысли

          • ищете и связывает.

            • с помощью поиска по названи.

              • hotkey: ctrl+o – поиск по названию

            • с помощью полнотекстового поиск.

              • hotkey: ctrl+shift+f – полнотекстовый поиск

          • вероятно вы сможете найти много связей по памяти

        • по ходу работы с конспектами рекомендую выносить ваши атомные заметки в заметки-источник.

          • это поможет вам быстро понять о чем источник без чтения конспектов в будущем

          • все структуры, которые вы сделаете в заметке-источнике помогут ва.

            • в построении своей карты контента

            • на их основе легче делать мета-заметки, писать черновики, использовать для проектов

        • Если у вас появились какие-то идеи или вы вспомнили о каких-то других заметках, которые можно добавить в конспект, то обязательно добавляйте их. Сейчас для вас именно конспекты являются основными поставщиками связей (позже станет всё немного по-другому).

  • «Медитируйте.

    • по ходу интеллектуальной работ.

      • обращайтесь почаще к журнал.

        • пишите ваши наблюдения в свободной форме

        • записывайте задачи

      • не бойтесь сделать что-то неправильн.

        • время вас поправит

        • вы в любом случае должны сделать эти ошибки, чтобы так или иначе на них научиться

      • оптимизируйте процесс, чтобы в нем вам приходилось делать меньше скучных, однотипных шагов и больше в которых нужно что-то созидать и обдумывать

      • не торопитес.

        • если вы будете действиями (например, плагинами и формированием сложной логики) обгонять свое понимание уж совсем чересчур, то со временем вы потеряетесь в большом количестве бессмысленных блужданий

    • вы делаете заметки, чтобы как-то их использоват.

      • создавайте вечнозеленые заметки (тег 🌲.

        • они вам нужны, чтобы ориентироваться ни сколько в собственных заметках, а сколько в собственной жизни

        • выносите в них какие-то полезные принципы, практики, вдохновляющие идеи

        • формируйте из них какие-то вечно актуальные заметк.

          • наприме.

            • различные способы принятия взвешенных решений

            • планирование и организация различных процессов

            • практики по захвату и управлению миром

        • сюда же вы можете отнести какие-то тематические заметки, которые вам часто помогают в работе и проектах

    • пилите проект.

      • создавайте на основе ваши заметок какие-то прототипы

      • экспериментируйте с мыслями

  • Кратко говоря, растите и развивайтесь с помощью ведения своей базы знаний

Итог

Ну и терпение же у вас…

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

Стоит ещё заметить, что я эту статью написал в том в виде, в каком сам бы хотел её прочитать. Поэтому, если мы с вами не сошлись эфирными волнами в резонансе, то, упс.

Кстати, вышенаписанная логика относится и к случаю, если у вас есть какое-то другое видение того как стоит развивать свою базу знаний. В целом вы, конечно, можете попробовать начать критиковать и навязывать свой вариант. Однако лучше, наверное, было бы, если вы смогли сказать как можно оптимизировать эту систему и самое главное как сделать её более гибкой. Такое предложение вызвано тем, что я так и не смог придумать какого-то вменяемого, хорошо связанного ответа на вопрос «что делать, если в базе уже есть много каких-то слабосвязанных заметок?».

Следующая статья будет являться коротким обзором о том как ещё можно вести свою базу знаний:

  • как можно сделать её визуальной

  • как добавить в неё гибкую иерархичность

  • как реализовать интервальное повторение

  • и некоторые другие полезные вещи

На этом пока что всё.

 

Источник

Читайте также