Система плагинов
Плагины расширяют ReadAware новыми действиями, страницами и — самое важное — новыми инструментами для читательского ассистента. Плагин — это небольшой JavaScript-модуль; его интерфейс всегда отображается собственной дизайн-системой приложения, поэтому функции плагинов выглядят и ощущаются нативными.
Что может вносить плагин
- Действия с выделением — записи в меню выделения текста ридера. Отправьте слово в Anki, переведите фрагмент, сохраните цитату куда угодно.
- Кнопки в шапке — кнопки-иконки на верхней панели ридера или полки, открывающие всплывающее окно или (на полке) полную страницу.
- Команды — записи в палитре команд. Каждое действие плагина доступно там автоматически; явные команды добавляют больше.
- Инструменты агента — функции, которые читательский ассистент может вызывать во время чата. Это точка монтирования с наивысшим потолком: плагин может позволить ассистенту запрашивать вашу колоду Anki, ваш RSS-бэклог или любой сервис, который вы используете.
- Поставщики контента — виртуальные книги, чьи главы плагин предоставляет по требованию. RSS-лента может находиться на вашей полке и быть прочитанной, аннотированной и обсуждённой как любая книга.
- Голоса для чтения вслух — движки TTS для чтения вслух ридера. Плагин синтезирует аудио; приложение владеет воспроизведением и возвращается к системному голосу, когда вызов не удается.
- Настройки и расписания — объявленные настройки становятся собственным разделом плагина в Настройках (включая API-ключи, хранящиеся в зашифрованном виде), а объявленные расписания выполняют повторяющуюся работу, пока приложение открыто.
Плагины выглядят нативными, по конструкции
Плагины никогда не отображают свой собственный HTML. Они объявляют представления из небольшого словаря — markdown, списки, формы и несколько структурированных блоков — а приложение отображает их своими собственными компонентами. Авторы плагинов отказываются от пиксельного контроля и получают ноль дизайнерской работы и постоянно согласованное приложение взамен.
Модель доверия
Плагины работают внутри приложения с тем же контекстом JavaScript — как Obsidian, и в отличие от песочницы расширений браузера. Применяются два честных слоя защиты:
- Разрешения — манифест плагина объявляет, что он использует (сеть, данные чтения, AI, буфер обмена, …), а API только предоставляет то, что было объявлено. Это защищает от случайного превышения полномочий.
- Установка — это решение доверия. Перед тем, как что-либо копируется или выполняется, приложение показывает точно, какие разрешения запрашивает плагин, на простом языке, и ждет вашего согласия. Устанавливайте плагины так же, как вы устанавливаете программное обеспечение.
Собственная архитектура приложения ограничивает радиус взрыва: хранилище плагинов находится в пространстве имен внутри каталога данных приложения, а настольная оболочка не предоставляет произвольного доступа к файловой системе.
Установка плагинов
- Каталог — Настройки → Плагины → Каталог перечисляет плагины сообщества из публичного реестра; установка в один клик, со сводкой разрешений сначала.
- Из папки — Настройки → Плагины могут установить любую локальную папку плагина. Это цикл разработки: укажите на ваш рабочий каталог, переустановите, чтобы подхватить изменения.
Вы контролируете макет
Плагины вносят возможности; вы решаете, где находятся кнопки. Настройки → Меню упорядочивают каждую поверхность (верхнюю панель полки, верхнюю панель ридера, меню выделения): перетаскивайте элементы между видимой строкой и меню переполнения, переупорядочивайте их или сбрасывайте к значениям по умолчанию. Новые действия плагинов попадают в меню переполнения — тихо — и всё всегда доступно из палитры команд.
Чтение вслух с любым TTS-голосом
Встроенный плагин TTS Voices направляет чтение вслух через движок по вашему выбору — ElevenLabs, Fish Audio, OpenAI или любую совместимую с OpenAI конечную точку (Kokoro, LocalAI, мосты Edge TTS…). Всё находится в Настройки → TTS Voices: выберите провайдера, и его поля следуют — API-ключи идут прямо в зашифрованное секретное хранилище, а где провайдер может перечислять голоса, поле Голос становится списком (введите имя сами, когда он не может).
Популярная бесплатная настройка — это нейронные голоса Edge от Microsoft через openai-edge-tts, небольшой локальный сервер, говорящий на OpenAI audio API:
- Запустите сервер локально — например
docker run -d -p 5050:5050 travisvn/openai-edge-tts(API-ключ по умолчанию не требуется). - В Настройки → TTS Voices установите Провайдер на Пользовательский / локальный (совместимый с OpenAI) и конечную точку на
http://127.0.0.1:5050/v1/audio/speech. - Выберите голос из списка — приложение читает каталог сервера, поэтому полный набор Edge (например
zh-CN-XiaoxiaoNeural,en-US-AriaNeural) появляется вместе с псевдонимами в стиле OpenAI.
Затем откройте книгу и начните чтение вслух: предложения транслируются через ваш выбранный голос, следующее предзагружается, пока играет текущее, и любой неудавшийся вызов возвращается к системному голосу вместо остановки чтения.
Написать свой
Плагин — это папка с manifest.json и одним main.js. Справка по API охватывает весь контракт, а Публикация показывает, как доставить его в каталог.