Здравствуйте!
Хочу представить FictionBook Editor Next — новую ветку FictionBook Editor для Windows.
Это не попытка заменить историю старого FBE и не переписывание редактора «с нуля». Цель другая: сохранить привычную работу с FB2, но привести программу в более современное состояние, добавить удобства для обычного пользователя и упростить дальнейшее развитие.
Репозиторий проекта:
https://github.com/sklart/fictionbook-editor-next
Страница для скачивания установщика и архива портативной сборки:
https://github.com/sklart/fictionbook-editor-next/releases
Актуальная версия на момент публикации — 3.0.2.
Что нового и полезного
1. Более аккуратная установка
Установщик стал понятнее: основные файлы программы, плагины, интеграция с Windows и пакетные конвертеры разделены по отдельным пунктам.
Важно, что теперь не обязательно сразу назначать FBE Next программой по умолчанию для .fb2. Если вы уже открываете книги в привычной читалке, можно оставить всё как есть, но отдельно добавить, например:
команду «Проверить FB2 на ошибки» в меню правой кнопки мыши;
отображение свойств книги в Проводнике;
миниатюры обложек для .fb2.

2. Улучшена работа .fb2 в Проводнике Windows
Для FB2-файлов теперь можно видеть не только имя файла, но и книжные данные: автора, название, язык, жанры, серию, дату, ключевые слова и другие сведения.
Эти данные отображаются в правой панели сведений, в колонках Проводника и во всплывающей подсказке при наведении на файл.



Если в книге есть встроенная обложка, Проводник может показывать её как миниатюру файла.

3. Проверка FB2 стала доступнее
Проверка FB2 возвращена в состав проекта. Команду проверки можно добавить в контекстное меню Windows и запускать её прямо из Проводника.

4. Появились новые возможности импорта и экспорта
В сборку добавлены плагины:
экспорт FB2 в DOCX;
экспорт FB2 в EPUB;
импорт EPUB в FB2.
Это делает FBE Next удобнее не только как редактор FB2, но и как инструмент для переноса книг между форматами.
Настройки экспорта в DOCX:




Настройки экспорта в EPUB:

Настройки импорта EPUB:

Для тех, кто обрабатывает много книг, добавлены отдельные пакетные конвертеры. Они нужны не всем, но могут быть полезны при массовом тестировании или обработке больших подборок.



5. Меньше риска потерять изменения
Улучшена ситуация с файлами, открытыми «только для чтения». Теперь программа заранее предупреждает, что обычное сохранение невозможно, и предлагает сохранить копию через «Сохранить как…».

Также исправлены некоторые случаи, когда файл мог некорректно открываться при запуске программы из командной строки или через ярлык с относительным путём.
6. Обновлена внутренняя основа программы
Внутри проекта обновлены компоненты, отвечающие за проверку орфографии, поиск и замену, работу с текстовым режимом и окнами программы. Для пользователя это не выглядит как новая кнопка в интерфейсе, но важно для будущей поддержки: программа должна лучше жить на современных версиях Windows и проще обновляться дальше.
Что скачиватьДля большинства пользователей лучше брать обычный установщик:
FictionBookEditorNext-Х.Х.Х-win32-setup.exe
Также есть portable-версия, которую можно распаковать и запускать без обычной установки:
FictionBookEditorNext-Х.Х.Х-win32-portable.zip
Архив с debug-символами обычному пользователю не нужен. Он нужен только для разбора возможных падений.
Поддерживаемые версии WindowsОсновной ориентир — Windows 10 и Windows 11.
Windows 7 SP1 и Windows 8.1 могут оставаться совместимыми при наличии необходимых обновлений, но основной упор сейчас сделан на более современные версии Windows.
Windows XP и Vista стандартной сборкой Next не поддерживаются. Возможность отдельной legacy-сборки для Windows XP и Vista добавлена как отдельная возможная задача в todo список и потребует осознанного отказа от части современной функциональности.
Буду благодарен за тестирование.Особенно интересны реальные книги и реальные сценарии работы:
открытие и редактирование FB2;
проверка книг через FBV;
экспорт в DOCX;
экспорт в EPUB;
импорт EPUB;
отображение свойств и обложек в Проводнике Windows.
Если будут замечания, примеры проблемных файлов или предложения по интерфейсу — пишите. Хочется развивать FBE Next как продолжение привычного FictionBook Editor, но с более удобной установкой, новыми форматами и лучшей совместимостью с современными Windows.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CAKw_SM3wNFkyo3m9DmCKMD5uzFU3gRPEsR-8pHzkbmVjsRSNHA%40mail.gmail.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/edcb64b3-514d-4139-ae35-f1b553e591cbn%40googlegroups.com.
Особенно интересуют моменты, если были на старой версии падения на каких либо файлах или скриптах1. Есть ли данные падения на новой FBE Next&2. Прислать данные файлы или скрипты и сообщить последовательность действий для воспроизведения ошибки.
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/4ab603e2-3e05-45d3-818f-baa90ff86531n%40googlegroups.com.
>> о проверке речь идет в рамках пакета FBEN - это валидация без открытия в самой программе, т.е. внешний валидатор? Или что-то больше/шире по функционалу?изначально программа FBV (FB Validator) - это отдельная программа, которая использует те же механизмы проверки файла на соответствие схеме, что и сам редактор (функция "проверить"), но предназначенная для быстрой проверки файла без открытия самого редактора.Я пока кроме технических правок и локализации ничего в ней не делал.
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/d98b6b8c-775e-4c99-815c-db48cba9f440n%40googlegroups.com.

Особенно интересуют моменты, если были на старой версии падения на каких либо файлах или скриптах
Насколько я понял, скриншоты получились мелковатые, и в полном размере их здесь посмотреть не получается.
В вашем случае срабатывает правило для UNC-путей (Universal Naming Convention). Строка, начинающаяся с двух обратных слешей (\\), например \\слово или \\server\share, интерпретируется IE как сетевой путь к ресурсу. Именно поэтому он автоматически оборачивает ее в тег <a href="...">.
Вот такая ещё фича или баг имеется. А может это такое спрятанное "пасхальное яйцо" от разработчика?
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/0de1847b-3698-482d-b087-c007fb9888edn%40googlegroups.com.
>>DeepSeek объяснил:
>>Это поведение встроено в сам движок браузера и включается по умолчанию.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CAKYXB9XMX_BbfM1jRA39Ew5%3DOAun9FtBk8G_9aCuH6robjhTYg%40mail.gmail.com.
>>Одно из пожеланий - иметь штатную возможность обнаружения пути к открытому fb2 документу
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CALqvQh3-%3Dgppy_%2BR81YCmXGDVfi2rf1dehwpgQmEYU_ufhLJWg%40mail.gmail.com.
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/48e1a83d-6f56-4191-957d-6e0e74bc781dn%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/498cbc8f-f6b0-4d56-9837-0a1d4ad9da5fn%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/498cbc8f-f6b0-4d56-9837-0a1d4ad9da5fn%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/e3890040-2b6d-49b5-ac99-953d547218e2n%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CALqvQh1mbBzjGg8FLr4GYG71w8ozjdoNa0tcTLVwH32QgspSkw%40mail.gmail.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/0c45394a-cdfd-4212-b858-70e5f3473926n%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/aa45f0d9-14a7-4cf5-a76f-b8d30e5cfeb7n%40googlegroups.com.
Спасибо, это важные замечания.
По второму пункту, вероятно, возникло небольшое недопонимание. Предложение не предполагает показывать окно настроек при каждом запуске скрипта. Наоборот:
обычный запуск выполняет скрипт сразу с ранее сохранёнными параметрами;
F2 повторяет предыдущий скрипт без дополнительных вопросов;
окно настроек открывается только по явному действию пользователя: через специальный пункт меню, кнопку с шестерёнкой или запуск с модификатором.
То есть тихий режим и привычный сценарий повторного запуска должны полностью сохраниться.
Что касается производительности, действительно не стоит при каждом запуске FBE полностью читать и разбирать 500+ JS-файлов ради поиска параметров. Но для реализации этого и не требуется.
Возможны более экономные варианты:
Разбирать метаданные лениво — только при открытии настроек конкретного скрипта.
Хранить кеш метаданных и обновлять его только при изменении размера или даты JS-файла.
При необходимости читать только небольшой заголовок файла, где расположен блок настроек, а не весь скрипт.
Загружать сохранённые значения только при запуске соответствующего скрипта.
Не выполнять никакой дополнительной обработки для скриптов без блока настроек.
Кроме того, FBE уже обходит каталог скриптов для построения меню. Если при этом содержимое файлов действительно уже читается, извлечение небольшого стандартизированного блока из имеющегося текста не должно существенно увеличить время запуска. Но это стоит подтвердить профилированием, поскольку сам факт запуска за 20–30 секунд ещё не показывает, на какую именно операцию уходит время.
Согласен, что это следует явно добавить в требования задачи: реализация не должна приводить к полному повторному разбору всех скриптов при каждом старте FBE, а обычный запуск и F2 не должны показывать окно настроек.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/9b4bea12-7407-468a-89a4-2db69b2c5b5fn%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/62ab0fcc-a0fd-4303-8c69-31610aaac837n%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/4a23e7df-8ffc-4aeb-ad90-aac164d5ef42n%40googlegroups.com.

7. Реализован первый этап улучшения диагностики пользовательских JavaScript-скриптов: для ошибок чтения, синтаксического разбора и выполнения выводятся файл, путь, координаты, контекст строки, исходное сообщение движка и код ошибки; сведения можно скопировать в буфер обмена. Было/стало:

8. Пользовательские
JavaScript-скрипты получили
документированный API `window.external` для полного пути, имени файла
и каталога открытой книги. До первого сохранения методы возвращают пустую
строку. Прошу потестировать:
GetDocumentFilePath()
Возвращает абсолютный путь к текущему FB2-файлу. До первого сохранения новой
книги возвращает пустую строку. Входных параметров нет; результат — строка.
var fullPath = window.external.GetDocumentFilePath();
// Например: "D:\\Books\\Example.fb2" или
"" для несохранённой книги.
GetDocumentFileName()
Возвращает имя текущего файла вместе с расширением, без пути. До первого
сохранения возвращает пустую строку. Входных параметров нет; результат —
строка.
var fileName = window.external.GetDocumentFileName();
// Например: "Example.fb2".
GetDocumentDirectory()
Возвращает абсолютный путь к каталогу текущей книги без завершающего \, кроме корня диска. До первого сохранения возвращает пустую строку. Входных параметров нет; результат — строка.
var directory = window.external.GetDocumentDirectory();
if (!directory) {
window.external.MsgBox("Сначала сохраните книгу.");
return;
}
var reportPath = directory + "\\report.txt";
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/7f8f573a-c388-42c4-9110-eb46da690aa8n%40googlegroups.com.
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/14cb169f-c189-4057-a597-28695ad619c8n%40googlegroups.com.
>> В идеале, нужно взять скрипты из папки https://github.com/sensboston/fictionbookeditor/tree/master/files/Scripts (в этой папке содержатся в том числе и сценарии, залитые мной после выпуска FBE 2.7.9) и к этим скриптам добавить еще сценарии, сделанные TaKir-ом, stokber-ом и Александром Ка. TaKir сделал уже ТРИ мегапака, скрипты из которых пока что не залиты в GitHub-хранилище.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/19603301-a882-492f-b450-7db6b909761fn%40googlegroups.com.
В версии 3.0.7-rc.1 было исправлено другое падение при переходе в режим «Код» — ошибка 0x80070057 (E_INVALIDARG), возникавшая на некоторых версиях MSXML6 при обработке содержимого <binary>.
Указанная Вами ошибка 0x80020101 отличается от исправленной, поэтому пока нельзя утверждать, что проблема устранена в 3.0.7-rc.1.
Пожалуйста, проверьте её на сборке:
FictionBookEditorNext-3.0.7-win7-win32-portable.zip
Если ошибка повторится, желательно уточнить:
возникает ли она на любом документе или только на конкретном;
есть ли в книге иллюстрации;
открывается ли пустая новая книга.
Также включите Сервис → Диагностическая трассировка…, перезапустите программу и повторите ошибку. Полученный журнал поможет определить, возникает ли сбой при формировании XML либо внутри JavaScript-кода интерфейса.
Пожалуйста, повторите описанные действия в этой версии. Если проблема сохранится, включите:
Сервис → Диагностическая трассировка…
затем перезапустите программу и повторите переключения. Вместе с журналом желательно указать:
Небольшое перемещение выделенного фрагмента по вертикали при переключении возможно из-за различного представления документа в режимах «Тело» и «Код». Но переход к началу документа, выделение другого участка или восстановление старого выделения являются ошибками.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/2e4bffa2-94ac-4159-8cdb-93ec8aaa26c7n%40googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CALqvQh0BujB30QUtDpxcY6ZEZ_AGLB0Sagp%3DhVAV7dXqnY1_%2BA%40mail.gmail.com.
>>Но проблема с настройкой неразрывных пробелов в портативке для win-7 пока не решена - все так же знаки вопросов вместо отображения реальных неразрывных пробелов - и в настройках и в самом тексте
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CAKYXB9V30SK1W%3Doy_EGXLW1XWEe8b2Pws0M52q0ugF10aoNmzQ%40mail.gmail.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CALqvQh1nZHJULxHCnLUuxph97SgKk_PPFHcp3TBo4PV0qWT8gw%40mail.gmail.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/de9043c3-3d10-4af2-aac0-e04322ef8256n%40googlegroups.com.
>>
И многие привычные скрипты теперь ругаются на " Неизвестный числовой показатель"...
Похоже, это ошибка регулярного выражения, а не числового значения. Сообщение «Неизвестный числовой показатель» обычно означает недопустимый квантификатор — например, когда в шаблон попадает одиночный ?.
В 3.0.7-rc1 менялась обработка символа неразрывного пробела. Если в старом Settings.xml для NBSPChar сохранился ?, скрипты поиска и замены могут собирать выражение вроде (\s|?) и падать.
Стоит заново явно выбрать символ неразрывного пробела (или другой) в настройках FBE и перезапустить программу. Если не поможет — проверить значение NBSPChar в Settings.xml.
Если подтвердится, попозже поправлю, чтоб не возникало таких ситуаций.
>> Похоже, это ошибка регулярного выражения, а не числового значения. Сообщение «Неизвестный числовой показатель» обычно означает недопустимый квантификатор — например, когда в шаблон попадает одиночный ?.
>> В 3.0.7-rc1 менялась обработка символа неразрывного пробела. Если в старом Settings.xml для NBSPChar сохранился ?, скрипты поиска и замены могут собирать выражение вроде (\s|?) и падать.
>> Стоит заново явно выбрать символ неразрывного пробела (или другой) в настройках FBE и перезапустить программу. Если не поможет — проверить значение NBSPChar в Settings.xml.
>> Если подтвердится, попозже поправлю, чтоб не возникало таких ситуаций.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/f24725bd-1bdb-40a7-b82f-4f25c8c5f146n%40googlegroups.com.
>>
И многие привычные скрипты теперь ругаются на " Неизвестный числовой показатель"...
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/f24725bd-1bdb-40a7-b82f-4f25c8c5f146n%40googlegroups.com.