В предыдущем посте OS TechBlog мы представили Obsidian как приложение для заметок. Здесь я перенесу вас на новый уровень организации ваших заметок с помощью плагина Dataview для Obsidian. Это один из лучших инструментов для объединения ваших мыслей и их объединения различными способами.

Если вы не читали Одержимость обсидианом, я очень рекомендую ее как отличное введение в обсидиан.

Начни просто

Чтобы опробовать эти примеры и советы, вам необходимо загрузить и установить Obsidian, а затем установить Dataview plugin, оба из которых бесплатны.

Если вы еще не установили плагин в Obsidian, выполните следующие действия после установки и открытия Obsidian:

1. Нажмите шестеренку (значок настроек) в левом нижнем углу.
2. В открывшемся окне нажмите "Плагины сообщества" и выключите безопасный режим, если он включен. < br /> 3. Нажмите кнопку обзора и введите в поле поиска слово dataview.
4. Нажмите на плагин Dataview, затем на кнопку «Установить» и, наконец, на кнопку «Включить».

Dataview, по словам его создателя, позволяет

«Относитесь к своему Обсидиановому Хранилищу как к базе данных, из которой вы можете делать запросы»

С Obsidian, построенным поверх базы данных графов, это имеет смысл.

Вот несколько примеров того, как мы можем запрашивать наши Obsidian заметки с помощью Dataview Query Language (примечание: я расскажу о том, как вы можете использовать JavaScript позже в этой статье):

Использование встроенных обсидиановых метаданных

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

```dataview
   table file.ctime as "Created Time"
   from "tech"
   sort file.ctime desc
```

Вы можете очень просто перечислить все файлы в вашем обсидиановом хранилище:

```dataview
   list
```

Использование тегов и ваших собственных метаданных

С помощью Obsidian вы можете добавлять теги в файл, набирая их с #, например #myTag или включив его в раздел основной темы с помощью YAML (см. ниже). Здесь вы также можете включить свои собственные метаданные.

Пример YAML

---
tags: ['myTag', 'AnotherTag']
type: 'review'
rating: 4
---

Так что, если у меня есть отзывы, которые я написал, я могу собрать их в таблицу:

```dataview
   table rating as "Rating", dateRated as "Date Rated"
   from "music"
   where type = "review"
   sort rating desc
```

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

Задания

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

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

```dataview
   task
   from #ukulele
```
---
```dataview
   task
   from #research
```

Шаг дальше: DataviewJS

Для тех из вас, кто хочет большего, вот краткое введение в использование DataviewJS. Он похож на Dataview, но использует JavaScript для доступа к API, предоставляемому Dataview.

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

```dataviewjs
   dv.header(2, 'Ukulele Tasks');
   dv.taskList(dv.pages('#ukulele').file.tasks
    .where(t =>   !t.completed));
```

```dataviewjs
   dv.header(2, 'Research Tasks');
   dv.taskList(dv.pages('#research').file.tasks
    .where(t => !t.completed));
```

```dataviewjs
   dv.header(2, 'All Completed Tasks');
   dv.taskList(dv.pages().file.tasks.where(t => t.completed));
```

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

Структура заметки для провайдера обучения

Содержимое этой заметки полностью создано Dataview с использованием настраиваемых метаданных в YAML:

---
    type: 'training provider'
    tags: ['training', 'provider']
    website: 'https://www.pluralsight.com'
    title: 'Pluralsight'
---
```dataviewjs
   let pg = dv.current(); // set pg to be the current page, for brevity
  
   dv.header(1, pg.title); // print the page title from YAML as H1
   dv.header(2, 'Website'); // print 'Website' as an H2
   dv.paragraph(pg.website) // print website url from YAML in a paragraph
    
   dv.header(2, 'Courses Taken:'); // print 'Courses Taken' as an H2
   dv.list(dv.pages('#training').where(p => p.provider && p.provider.contains(pg.title)).file.link);
```

И структура заметок по курсу от провайдера обучения

Опять же, контент полностью отображается Dataview:

---
type: 'training notes'
tags: ['training', 'notes']
courseTitle: 'How to Be a Great Mentor: Get More out of Mentoring'
link: 'https://app.pluralsight.com/library/courses/how-to-be-great-mentor'
provider: 'Pluralsight'
---
```dataviewjs
   let pg = dv.current(); // set pg to be the current page, for brevity
    
   dv.header(1, pg.courseTitle); // print the course title from YAML as H1
   dv.header(2, 'Link'); // print 'Link' as an H2
   dv.paragraph(pg.link) // print website url from YAML in a paragraph
```

Что дальше?

Я надеюсь, что теперь вы можете увидеть лишь часть возможностей использования Dataview с Obsidian для использования данных в базовой базе данных Obsidian Graph.

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

В более позднем посте мы более подробно рассмотрим Dataview и DataviewJS, а также некоторые более сложные примеры.

Вот несколько полезных ссылок на документацию Dataview, которые содержат больше примеров: