Iskra
9 февраля 2026 г.
✨
Что это?
Iskra — мой плагин для Obsidian, который ускоряет работу с изображениями для заметок и сайта: принимает файлы через drag&drop или выбор из окна, локально обрабатывает (ресайз, безопасное имя, md5, размеры), вставляет ссылки в нужное место заметки и при необходимости загружает результаты в CDN через rclone.

Зачем?
- Чтобы не гонять руками десятки картинок через отдельные скрипты.
- Чтобы вставка в заметку шла строго в позицию курсора (через якорь), а не «куда-то вниз».
- Чтобы загрузка в CDN шла в фоне, с очередью, паузой и повторными попытками.
- Чтобы весь процесс был виден в status bar и не тормозил Obsidian.
Что умеет?
Импорт через модалку
- Кнопка в Ribbon + команда
Импорт изображений. - Drag&drop и клик для выбора файлов.
- Прогресс по пачке, отмена и скрытие окна.
Обработка изображений (локально)
- Работает на macOS через
sips. - Поддерживает
.jpg,.jpeg,.png,.webp,.heic/.heif. - Не делает апскейл (если исходник уже меньше целевой ширины).
- Нейминг:
<safe-name>_<md5>_<W>x<H>.<ext>.
Вставка в заметку без потери позиции
- На старте пачки ставит якорь
<!-- iskra:import:<jobId> -->в курсор. - После обработки заменяет якорь на блок ссылок.
- Если якорь удалили вручную — вставляет блок в конец заметки.
Форматы ссылок
- Markdown:
. - Obsidian:
![[...]]. - Для локальных ссылок используется путь без ведущего
/.
Очередь загрузки в CDN (R2 через rclone)
- Загрузка через
rclone copyto. - Персистентная очередь (сохраняется между перезапусками).
- Повторы с backoff при сетевых проблемах.
- Пауза/продолжение и ручной retry.
Status bar и dashboard
- Состояния:
Idle,Active,Paused,Warning,Error. - Клик по иконке: import / pause / resume / retry (зависит от состояния).
- Клик по числам: dashboard с деталями и управлением.
- В dashboard есть таймер следующей попытки загрузки.
- В dashboard убрана лишняя кнопка копирования ошибки; ошибки и детали смотрим через историю.
- Кнопка паузы динамическая:
Пауза/Продолжитьпо состоянию. - В idle по клику на иконку открывается меню:
Импорт изображений,История,Настройки.
История синхронизации
- Единая история событий вместо отдельного лога ошибок.
- Фильтры:
Все,Ошибки,Пропущенные. - Поиск по строкам истории (по имени файла, тексту ошибки, пути и т.д.).
- Подсветка ошибок и пропущенных/предупреждений.
- Live-обновление прямо в открытом окне (новые строки появляются на лету, без переоткрытия).
- Очистка истории и копирование видимого списка.
Интеграция с AI Alt Plugin
- Опционально можно запускать внешний плагин после вставки пачки изображений.
- По умолчанию команда:
ai-alt:ai-alt-fill-placeholders-in-note. - Команда настраивается в настройках Iskra.
Команды (Command palette)
- Импорт изображений
Настройки
Обработка
- Ширина (px) — целевая ширина ресайза.
- JPEG качество — качество при конвертации в JPEG.
- Параллелизм обработки — число одновременных задач.
- PNG режим — оставлять PNG или условно конвертировать в JPEG.
- Сортировать перед вставкой — natural sort по имени файла.
- Формат вставки — Markdown или Obsidian.
Файлы
- Папка назначения внутри vault — куда сохраняются обработанные файлы.
Ссылки
- Стратегия ссылок — локальные или CDN.
- Базовый URL CDN — база для внешних ссылок (если выбран CDN).
Загрузка (R2 через rclone)
- Загрузка в CDN (R2) — включить/выключить upload.
- Путь к rclone — бинарь
rclone. - Доп. параметры rclone — произвольные CLI-флаги.
- Target — удалённая папка вида
r2:bucket/path. - Пачка загрузки за один проход — размер цикла отправки.
- Интервал авто-повтора — базовый retry для не-сетевых ошибок.
- Проверить подключение — быстрый тест
rclone lsf.
История
- Debug логирование — добавляет в историю технические подробности.
- Открыть историю / Очистить историю.
Интеграция
- Запуск AI Alt Plugin после вставки — toggle.
- ID команды AI Alt Plugin — настраиваемый command id.
Как это устроено (логика)?
- Пользователь добавляет файлы через модалку импорта.
- Плагин ставит якорь в активную заметку.
- Файлы обрабатываются локально через
sipsи сохраняются в целевую папку. - Якорь заменяется на блок ссылок одним изменением текста.
- Если включена загрузка в CDN — файлы попадают в очередь
rclone. - Status bar показывает состояние, dashboard даёт управление процессом.
- При включённой интеграции запускается команда AI Alt Plugin.
История событий
История пишется в iskra-history.log в данных плагина:
- события обработки и загрузки,
- ошибки и предупреждения,
- ключевые переходы состояний,
- итоговые сообщения (
Все изображения синхронизированы).
История ограничена по объёму/строкам и не растёт бесконечно.
Типовой воркфлоу
- Открываю заметку и ставлю курсор в нужное место.
- Запускаю
Импорт изображений. - Перетаскиваю пачку файлов.
- Получаю готовые ссылки в заметке.
- При включённом upload жду, пока очередь уйдёт в CDN.
- При включённой AI Alt интеграции запускается заполнение alt.
Устранение неполадок
sips недоступен
Плагин рассчитан на macOS. Проверь, что sips доступен в системе.
Не загружается в CDN
Проверь rclone path, target, CLI-флаги и подключение через кнопку проверки.
Нет интернета
Очередь переходит в warning и повторяет попытки по backoff.
Якорь удалили вручную
Пачка всё равно вставится в конец заметки.
Глоссарий (для себя)
- Пачка: набор файлов, добавленных за один запуск модалки.
- Якорь: временный комментарий в заметке для точной вставки результата.
- Очередь: список файлов, ожидающих загрузки в CDN.
Обновления
0.3.1
- История в модальном окне переведена в live-режим: обновляется на лету (интервал 500 мс).
- Улучшено окно состояния загрузки: убрана кнопка
Скопировать ошибку, сделана более компактная компоновка. - Кнопка управления паузой в dashboard теперь контекстная:
Пауза/Продолжить. - Исправлен текст уведомления при возобновлении:
Iskra: продолжаем.
0.3.0
- Добавлено окно истории синхронизации с фильтрами, поиском, копированием и очисткой.
- История стала единым журналом событий (обработка + загрузка), вместо отдельного лога ошибок.
- В status bar для idle добавлено меню:
Импорт изображений,История,Настройки. - В настройках раздел
Логизаменён наИстория. - Окно истории сделано компактнее и ближе к нативному UI Obsidian.
0.2.0
- Базовый релиз Iskra как no-build плагина (
main.js,manifest.json,styles.css). - Модалка импорта с drag&drop, прогрессом, отменой и скрытием.
- Обработка изображений через
sipsс неймингомsafe_md5_WxHи правилом no-upscale. - Вставка по якорю с fallback в конец заметки.
- Локальные и CDN ссылки, настраиваемый формат вставки.
- Очередь
rcloneс персистентностью, retry, паузой и status bar. - Dashboard состояния, лог с ограничением роста, русификация UI.
- Интеграция с AI Alt Plugin по команде после вставки пачки.
0.1.0
- Черновой каркас плагина и первичная реализация импорта/обработки.
Есть что сказать? Напишите мне!
Комментировать по почте