## Что это Dataview - это мощный плагин для Obsidian позволяющий отбирать данные (теги, даты, числа и любые другие пользовательские параметры) markdown-заметок, а затем их фильтровать и отбирать как пожелаешь. ## Как установить Пошаговая инструкция по установке плагина представлена в этой [статье.](https://habr.com/ru/articles/710356/) ## Как всё это работает в двух словах 1. Dataview работает на [встроенном языке запросов](https://blacksmithgu.github.io/obsidian-dataview/queries/structure/) 2. Все запросы должны писаться внутри подобного блока кода: ```` ```dataview TABLE|LIST|TASK <Поле1> [AS "Название столбца"], <Поле2>, ..., <Поле3> FROM <Источник> WHERE <Выражение> SORT <Выражение> [ASC/DESC] ... другие команды ``` ```` ## Примеры использования **Проекты со счётчиком выполненных и не выполненных задач** 1. Данный кейс предназначен для отслеживания прогресса по проектам 2. Код запроса выглядит вот так: ```` ```dataview TABLE WITHOUT ID file.link AS Проект, Статус, (length(filter(file.tasks.completed, (t) => t = true))) / (length(file.tasks.text)) * 100 AS "% Завершено", (length(file.tasks.text)) AS Всего, (length(filter(file.tasks.completed, (t) => t = true))) AS Завершённых, (length(file.tasks.text)) - (length(filter(file.tasks.completed, (t) => t = true))) AS "Незавршенных" FROM #проекты ``` ```` 3. Разбираем код построчно: 1. TABLE WITHOUT ID - мы указали, что нам нужна таблица 2. Далее перечисляем столбцы, которые нам нужны, первым столбцом будет ссылка на саму заметку (file.link), а называться этот столбец будет "Проект" (AS Проект) 3. Статус - это статус наших проектов (В процессе, Готово, Не приступал) 4. Следующей строчкой мы вычисляем кол-во завершённых задач проекте и кол-во незавершённых задач, делим их друг на друга и получаем процент готовности проекта 5. Данной строчкой мы считаем кол-во всех задач, т.е. берём размер массива file.tasks.text 6. Этой строчкой мы считаем кол-во завершённых задач 7. А этой строчкой мы вычитаем из общего кол-ва задач кол-во завершённых задач и таким образом получаем кол-во незавершённых задач 8. Затем мы указываем откуда будут собираться и обрабатываться заметки. В данном случае будут отбираться все заметки с тегом # проекты (FROM # проекты). Данный способ отбора заметок подходит для тех, кто хочет отобрать заметки с определённым тегоv => в вашем хранилище заметкам должны быть присвоены соответствующе теги. В дальнейшем при добавлении в хранилище новой заметки с указанным тегом она так же отобразится в получившейся таблице. 4. Сами заметки должны содержать следующий набор параметров: ``` #проекты Статус:: "Готово" --- # ToDo: - [x] Снять размеры с вытяжки - [x] Нагуглить вытяжки - [x] Купить вытяжку - [x] Съездить за вытяжкой в магазин - [x] Установить вытяжку ``` 4. Разбираем построчно: 1. Тег # проекты - чтобы запрос отбирал нужную нам заметки 2. Статус - чтобы он отображался в таблице. В дальнейшем этот статус можно будет менять в заметке и он будет меняться в таблице 3. Затем разделитель (---) - для удобства 4. И затем список задач - которые будут обрабатываться нашей таблицей 5. В конечном итоге получаем вот такую таблицу: ![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/604/0b3/e92/6040b3e92d2522a5a97dbe9af46f4681.png)