Об этом проекте
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 для использования в других плагинах.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.