О форматах электронных книг

в 13:34, , рубрики: ePub, электронные книги, метки:

&ltПриветствие&gt

Этот пост о том, что я думаю о форматах fiction book и electronic publication. А цель — не поделиться чем-то важным и рассказать что-то интересное, а прежде всего вынести что-то для себя.
Краткое вступление. Начал читать книгу по программированию в формате fb2: ни кода, ни картинок. Один голый текст. Да и строки некоторые не на своих местах. Нет, это не формат fb2 кривой, просто такая книга попалась. А в pdf читать на телефоне не очень удобно.

&lt/Приветствие&gt

Сразу оговорюсь. Я не изучал досконально спецификацию этих форматов, а всего лишь бегло просмотрел. Я знаю, что сейчас стало очень модно делиться мыслями, выражать недовольство и лить воду. Поэтому под кат приглашаю только тех, кому интересно и кому есть что сказать об этом.

О хорошем

FictionBook. Замечательный формат для художественной литературы. Хорошая идеология. Логическое форматирование и отсутствие необходимости скроллить вправо-влево на малых устройствах. Автоматическая обработка книг благодаря метаданным. Легкий экспорт в другие популярные форматы и довольно простая спецификация.
ePub. Неплохой формат для визуального форматирования. Простота создания книги без соответствующих программ.
Более подробно описывать форматы не буду.

Теперь о плохом

Недостатков у ePub достаточно. Я считаю, что лучше поговорить о другом. FictionBook — это формат для художественной литературы. Сейчас, конечно, разрабатывается формат fb3, который предположительно решит проблему с форматированием текста. Однако, кое-что мне в нем все равно не нравится. Это использование XML. Сила ePub в том, что текст можно отформатировать, зная только html. Многие из вас знают html-теги? А элементы FictionBook? Все скажут, что для редактирования есть специальные программы. Да, есть. Но, похоже, что не все программисты достаточно хорошо понимают элементы стандарта FIctionBook. Следствие этого — перепутанные строки, которые меня периодически сбивали с толку. На самом деле, всё это пустая болтовня и особых неудобств это не доставляет. Достаточно просто посидеть и конвертировать/отформатировать во что/как душе угодно. Но всё же, хотелось бы не заморачиваться по этому поводу, а скачать и начать читать.

Всё сложно

Тут представлены различные документы по формату FictionBook. Как мне кажется, стандарт FB излишне сложен. Поэтому хочется взять и скрестить. Взять лучшее от ePub и FB.
Чтобы лучше понять, что нужно брать от FB, а что от ePub, следует взглянуть на следующее. Контент в ePub представлен в виде html-файлов, оформление — css. Плохо в этом то, что для книг множество HTML избыточно, а пользовательские настройки пересекаются с css. В FB же есть несколько интересных элементов для форматирования, значение которых важно. Например, элемент poem, epigraph. Или stanza. На мой взгляд, в этих элементах нет нужды. Для представления контента достаточно определить необходимое подмножество HTML и CSS. Такое, которое не будет убивать удобство ради выразительности. Если определить необходимое подмножество HMTL и CSS(атрибуты которых не будут пересекаться с пользовательскими настройками), то представится возможность куда более гибкого оформления, нежели элементами poem и epigraph.
Теперь о структуре. Моё мнение, что упаковка в zip-архив — удачное решение. Это залог быстрого доступа как к самой книге, так и к её элементам, а также меньшей нагрузке на устройство. Недостаток — создание временных файлов(хотя в недостатке памяти сейчас мало кто страдает). Разбивать контент по отдельным файлам следует на логические единицы. Например, на главы. Изображения хранить в отдельной папке «img», а стили в «style». Во всем остальном я согласен со структурой будущего fb3.

Заключение

У меня всё. На месте разработчиков FB и ePub я бы сделал именно так, как я описал чуть выше. Такая структура мне кажется логичной и очевидной. Но не смотря на это, она не такая. Почему? Очень жду вашим критических замечаний и комментарий по поводу изложенного.

Автор: Nikiti4

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js