Конспектирование в Obsidian
и как вывести весь выделенный текст списком в Obsidian
Когда мне попадается статья, которую надо законспектировать, я запускаю через расширение сервис Omnivore. Статьи сохраняются в читаемом виде. Есть функции выделения текста, комментирования. В Obsidian также есть плагин, который все это подтягивает, сохраняя в отдельные файлы.
Но у меня есть еще один вариант сохранения статей из браузера, это расширение MarkDownload. Файлы сохраняются в указанную в настройках папку. Только она должна быть создана в папке Загрузки. Расширение поддерживает сохранение файлов в хранилище Obsidian, но у меня это не работает. Использую для перемещения автоматор.
Не очень удобно пролистывать статью и выискивать выделенные фрагменты текста, гораздо удобней вывести все эти кусочки в начале файла списком. Для этого надо написать запрос для dataview, а точнее для dataviewjs. В работе со скриптом помогла ИИ Claude.
```dataviewjs const currentFile = app.workspace.getActiveFile(); if (currentFile) { app.vault.read(currentFile).then(content => { // Обновленное регулярное выражение для более точного поиска выделенного текста let highlights = content.match(/==([^=]+?)==/g); if (highlights && highlights.length > 0) { let cleanHighlights = highlights.map(h => h.replace(/==/g, '').trim()).filter(h => h.length > 0); if (cleanHighlights.length > 0) { // Разбиваем контент на строки let lines = content.split("\n"); // Создаем таблицу с ссылками let tableData = cleanHighlights.map(text => { // Ищем строку, содержащую текст let lineNumber = lines.findIndex(line => line.includes(`==${text}==`)) + 1; let link = `${currentFile.path}#^${lineNumber}`; return [lineNumber, `[[${link}|${text}]]`]; }); dv.table(["Line Number", "Highlighted Text"], tableData); } else { dv.paragraph("В текущем документе нет выделенного текста."); } } else { dv.paragraph("В текущем документе нет выделенного текста."); } }); } else { dv.paragraph("Не удалось получить доступ к текущему документу."); } ```
Добавляю этот код через templater, вручную. Но, думаю, и это можно автоматизировать.
Скрипт находит все куски текста, обрамленные двойными знаками равно и выводит их в виде списка. Текст можно вывести и в виде таблицы, с указанием места, но сделать переходы по ссылкам мне не удалось.