Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!30.09.2023
Перехід з віджета до документа з задачею
Як воно працює
Плагін потроху набуває форму. Одна з необхідних функцій це перехід з віджета активних задач до документа, в якому задача розташована. Спочатку хотів вставляти звичайне посилання, тобто <a>
; посилання на файли в Obsidian працюють, але немає можливості відправити посилання на конкретний рядок. А без цього якось некрасиво. (Можна тільки посилання тільки на заголовки та на попередньо проставлені якорі.)
Тому пішов іншим шляхом — через API. Все ж віджет це повноцінний додаток, в якому можна написати будь-яку логіку. В Obsidian є така прикольна функція Workspace.getLeaf, яка утворює нові панелі редактора у вказаному розташуванні. Або бере поточну, що мені й треба. Далі робимо openFile()
та файл відкритий. Цікавий нюанс: якщо панель закріплена, то openFile
автоматично утворює нову, тобто покриває за нас поведінку самого Obsidian.
А щоб пересунутись на правильний рядок, є два варіанти. Або пересунути курсор в рядок задачі функцією setCursor
- це прокрутить документ так, щоб курсор був на екрані. Або викликати scrollIntoView
- це просто прокрутить до зазначеного місця.
Мені жоден варіант не сподобався, бо знайти курсор серед тексту все одно важко. Придумав гарне рішення: додатково виділяти відрізок тексту — виділення помітніше. (Для того є функція setSelection
.) Але що виділяти, щоб це було корисно? На мою думку, найбільш корисним є виділяти статус задачі, оскільки найчастіша дія це саме зміна статусу. (Поки не вирішив, чи треба додавати таку фічу в сам віджет, та в якій формі.)