ReadAware

Система плагинов

Плагины расширяют 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:

  1. Запустите сервер локально — например docker run -d -p 5050:5050 travisvn/openai-edge-tts (API-ключ по умолчанию не требуется).
  2. В Настройки → TTS Voices установите Провайдер на Пользовательский / локальный (совместимый с OpenAI) и конечную точку на http://127.0.0.1:5050/v1/audio/speech.
  3. Выберите голос из списка — приложение читает каталог сервера, поэтому полный набор Edge (например zh-CN-XiaoxiaoNeural, en-US-AriaNeural) появляется вместе с псевдонимами в стиле OpenAI.

Затем откройте книгу и начните чтение вслух: предложения транслируются через ваш выбранный голос, следующее предзагружается, пока играет текущее, и любой неудавшийся вызов возвращается к системному голосу вместо остановки чтения.

Написать свой

Плагин — это папка с manifest.json и одним main.js. Справка по API охватывает весь контракт, а Публикация показывает, как доставить его в каталог.