Об этом проекте

Obsidian Dataview — это плагин для приложения для заметок Obsidian, который превращает хранилище пользователя в запрашиваемую базу данных. Он индексирует Markdown-файлы, извлекая метаданные из YAML frontmatter и инлайновых аннотаций полей (с использованием синтаксиса `Key:: Value`), а затем предоставляет несколько режимов запросов для фильтрации, сортировки и визуализации этих данных. Плагин предлагает четыре интерфейса запросов: 1. **Dataview Query Language (DQL)**: конвейерный SQL-подобный язык выражений для базовых запросов. Примеры включают список файлов из папки, отсортированных по рейтингу, или фильтрацию по тегам. 2. **Инлайновые выражения**: выражения DQL, которые можно встраивать непосредственно в текст Markdown и вычислять в режиме предпросмотра, например, отображение имени текущей страницы. 3. **DataviewJS**: полный JavaScript API, предоставляющий доступ к индексу Dataview и утилитам рендеринга. Это самый мощный режим, позволяющий сложную группировку, сортировку и пользовательскую логику рендеринга. 4. **Инлайновые JS-выражения**: JavaScript-эквиваленты инлайновых выражений для выполнения произвольного JS внутри Markdown. Извлечение данных опирается на два механизма: frontmatter Markdown (YAML-блоки в начале документов) и инлайновые поля (метаданные, записанные непосредственно в теле документа с использованием синтаксиса `Key:: Value`). Оба могут использоваться для аннотации заметок структурированными данными. Кодовая база написана на TypeScript и использует rollup/node для компиляции. Разработка включает клонирование репозитория, установку зависимостей через npm и запуск `npm run dev` для сборки и развертывания в тестовом хранилище. Проект также использует MkDocs для документации. JavaScript-запросы выполняются с тем же уровнем доступа, что и другие плагины Obsidian, то есть потенциально могут изменять файлы или совершать сетевые вызовы. Обычные запросы Dataview изолированы в песочнице и не могут вносить негативные изменения в хранилище. Проект является открытым исходным кодом и принимает вклад через отчеты об ошибках, исправления, документацию и улучшения. Определения типов TypeScript публикуются в NPM для использования в других плагинах.