fb3!!!

на фикшнбуке второй заход обсуждения формата "fb3".
если есть пожелания и профессиональные советы, то думаю, стоит туда обратиться =)
(сам Грибов писал, что он заинтересован.

последние новости (март, 2009):

GribUser написал:
Cobalt написал:
А вообще когда можно ждать окончательную версию стандарта? Хотя бы приблизительные сроки... И от чего это собственно зависит?

Окончательная будет через годик, думаю. Едва ли раньше. Рабочая будет к осени, надеюсь. Драфт уже есть, второй драфт должен быть, по идее, но пока его нету, потому что я ужасно занят текущими проблемами и времени на доработку формата нет.
Зависит скорость разработки пока, в основном, от моей занятости. Так же весьма важно и общественное участие, но сейчас набросали уже кучу замечаний, которые пока сил нет, узкое место - во мне. Хотя, думаю, общество могло бы побольше косяков наловить. Если бы хотя бы пара профи дали себе труд внимательно просмотреть схему, следующий драфт, до которого я таки-доберусь когда-то, стал бы значительно лучше.


.
материалы и ссылки: 1. xslt-код [устарело] 2. краткое описание fb3 [устарело] 3. обсуждение формата [активное обсуждение]

.

Комментарии

Дык, когда там сделан OCR-слой, уже все распознано, считай! Немного осталось. Но никто же не делает его практически, все ленятся :) Мне сдается, я еще ни разу живьем не встречал (у таких книг должен быть аномально малый размер).

Как никто?! Ершов делает дневники Чехова из ПСС. Поиск - мгновенный. А вот размер - обычный для djvu, потому что OCR-слой - это только слой к картинке.

oldvagrant написал:
Дык, когда там сделан OCR-слой, уже все распознано, считай! Немного осталось. Но никто же не делает его практически, все ленятся :)

Если я правильно помню, залитый на Либрусек журнал "Квант" - с OCR-слоем.

как дежавю на кпк читать? скроллить вправо-влево?
да и поискать цитату-скопировать кусочек тоже сложно.

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

Pavel_V написал:
И вы путаете vim с notepad.exe.

+1

Pavel_V написал:
Стыдоба, а "убогенький" вим может сразу два языка проверять. И здесь уже писали как к нему проверку синтаксиса прикрутить (каюсь, у самого все руки не доходят "пилу наточить").

Ссылочкой не поделитесь?

gmarapet написал:
Pavel_V написал:
Стыдоба, а "убогенький" вим может сразу два языка проверять. И здесь уже писали как к нему проверку синтаксиса прикрутить (каюсь, у самого все руки не доходят "пилу наточить").

Ссылочкой не поделитесь?

Какой ссылкой? Проверка орфографии встроенная функция начиная с 7 версии:
:setlocal spell spelllang=en,ru
Вроде как сам скачает словари какие надо.

Что касается проверки xml - пока сам не прикрутил до конца. Но вот что пишут:
http://lib.rus.ec/node/108318
нужна утилита xmllint и заточка под него vim. У vim уже есть всевозможные средства для отладки, поэтому нужно будет прописать лишь пару строк:
set errorformat=%f:%l:\ %m

Пока что успел:
1. Скачать архив http://www.gribuser.ru/xml/fictionbook/2.1/xsd/fictionbook2.1.xsd.zip и распаковать, к примеру, в ~/.vim/ftplugin/
2.
~/.vim/ftplugin/fb2.vim

"-------------------------
" FB2
"-------------------------
" F5 - "make"
map <F5> :make<cr>:cw<cr>
vmap <F5> <C-L>:make<cr>:cw<cr>
imap <F5> <C-L>:make<cr><cr><cr>:cw<cr>

set makeprg=xmllint\ --nonet\ --noout\ --schema\ ~/.vim/ftplugin/FictionBook2.1.xsd\ %
set errorformat=%f:%l:\ %m

А дальше не осилил, ибо здесь конфликт с xml возник. Черте что делается, хз. В ручника включить плагин могу:
:set filetype=fb2
при этом отваливается xml. А как автоматом - не знаю.

Если не хотите по правилам, но пропишите строчки в .vimrc. Тогда и xml будет, и проверка по F5 (после сохранения).

Естественно, нужно знать базовые вещи в vim.

Если не занято, то прописываете сюда:
~/.vim/ftplugin/xml.vim

Оказывается, ground0 уже все сделал до меня.

Его блог: http://lib.rus.ec/blog/11237
По теме: http://lib.rus.ec/node/106956

Pavel_V написал:
Вроде как сам скачает словари какие надо.

Если успеешь заметить и будет куда сохранить и пермиссий хватит.
Иначе - облом форэва (он второй раз не предлагает).

тогда mkdir -p ~/.vim/spell && cd $_ && wget ftp://ftp.vim.org/pub/vim/runtime/spell/ru.\*

pkn написал:
Так формулы, по-моему, ни в каком формате не ищутся...

Ну в ТЕХ то какие проблемы? Все сделано разметкой. Гимор некоторый есть (как в нотепаде с fb2 файлами), но делать можно, "глаз пристрелямши".

Лучшее - враг хорошего. Лично для себя никаких ощутимых преимуществ fb3 над fb2 не увидел. Я за разумный консерватизм и домострой :)

Цитата:
Лучшее - враг хорошего. Лично для себя никаких ощутимых преимуществ fb3 над fb2 не увидел. Я за разумный консерватизм и домострой :)

Абсолютно согласен.Fb2 - излишняя сущность.Единственно что в нем хорошее - описание книги.
Вот как я предавляю себе фомат книги с позиции Unix-way.
Есть формат Latex который отлаживали лет 30. Осталось его кое-где расширить , кое-где сузить.
Прописать как должно выглядеть прописываемое в комментариях описание книги - единственно нужная модернизация.
PS я не литресовкий провокатор, я не призываю отказаться от использования fb2 в этой библиотеке , если в наложке Калифорнии до сих пор работает по на Cobole, то сдвинуть с места что-нибудь в нашей библиотеке может только Ларин , когда ему надоест смотреть на наши споры ;).Просто когда писали fb2 он уже тогда был избыточен и не нужен.

Вот интересно:
fb2 - формат, книгами на котором пользуется весь читающий рунет - это сколько человек? больше миллиона или меньше? Читалки для PDA под него написаны. Конверторы во все форматы, подо все e-book устройства, на которых читать можно. Не один год все это делалось, и не два.
И что ты предлагаешь со всем этим делать? Каким образом ты собираешься ссадить всю эту массу народа с fb2 и перевести на latex? Особенно учитывая, что со своей функцией (работа с художественной литературой) fb2 достаточно успешно справляется. Или ты хочешь создать этакую узкую нишу "для своих"?
Что-то мне это все напоминает))))).

LaTeX это, конечно, хорошо. Но он монструозен настолько, что… Да и костылей там немеряно. Ещё и его ставить и апдейтить, добавлять пакеты, если нужных нет. Редактор может ещё и пойдёт на этот геморрой, а вот читатель вряд ли :}

Вот не надо писать изоблачающие посты не зная Latex. Есть pdflatex переводящий его в pdf. Читалки pdf есть на всех настольных платформах и большинсте наладонников. Единственное что потребуется - написать стилевые файлы для подгонки размеров листа под разрешения наладонника.Шлите разрешение экрана - смастерю за пол-часа.В общем ни какой особенной встряски

Ну причем тут изобличающие посты? Я про latex не сказал ни одного ни плохого слова, ни хорошего))). Про pdf могу, правда, сказать, что для PDA он достаточно неудобен, и, вообще, не самый удобный формат для всех e-book устройств. И вообще, непонятно - а зачем latex тогда? Давай сразу в pdf все гнать!
Но и это не главное. Ты мой пост читал или нет? fb2 - формат де факто. Многие тысячи им пользуются (если не миллионы), плюс вся сопутствующая инфраструктура. С ними со всеми ты что предлагаешь делать? Или все-таки хочешь создать "узкий круг ограниченных людей"?

Книги в PDF? Да я лучше телепатию прокачаю, чем пользоваться этим форматом…

Цитата:
Ты мой пост читал или нет? fb2 - формат де факто. Многие тысячи им пользуются (если не миллионы), плюс вся сопутствующая инфраструктура. С ними со всеми ты что предлагаешь делать? Или все-таки хочешь создать "узкий круг ограниченных людей"?

1. А препринтов в latex - сравнимое количество.
2. Покажите нативный редактор fb2 в linux - ничего подобного я не видел, а для latex есть Lyx
3. Относительно стандартов . После того как сделают fb3 , точнее расширение его отрытого подмножества мы будем
- делать разнородную библиотеку из fbn
- будем жить с fb2 и терпеть все вышеупомянутые недостатки
-сделаем свой велосипед,желающих отлаживать программы чтения прошу в очередь.
- сделаем навеску над каким-нибудь старым форматом для которого уже написанны почти все возможные конверторы.

Начал писать развернутый ответ, да терпения не хватило. Поэтому коротко:
Придется убедить кучу народу, что читалка для наладонников и смартов лучше и удобнее аналогичной в fb2.
Что конвертор из latex для любимой ебуки - работает лучше, быстрее и качественнее.
Что в редакторе работать быстрее и проще. И качественнее.
А еще все это надо написать (и для windows тоже). Точнее, убедить народ все это написать, а остальных - всем этим пользоваться.
Сможешь? Тогда - удачи!

Единственный и главный плюс - уже все написанно (за исключением каталогизаторов),
TeX - кроссплатфрменный.
Относительно каталогизаторов ,
Требуемая переделка минимальна в ставляем в начало tex файла
нечто вроде
%begin_description
%закоментированный кусок xml копирующий описание книги
%end_description
выдрать этот кусок и подать на вход парсера не требует особых усилий

При всём уважении к LaTeX, он плохо подходит для электронных книг. Это сложный даже не формат, а язык, на котором можно сделать что угодно. Но
1) Никто не умеет читать файлы LaTeX кроме LaTeX. Даже упомянутый LyX можно легко ввести в ступор достаточно сложным файлом (собственно, почему я LyX и не использую). Необходимо транслировать их в dvi или pdf. Понятно, что владельцам кпк, да и не только им, это лишний гемморой.
2) Можно адекватно конвертировать почти любой формат в LaTeX, но обратная задача практически невыполнима в силу сложности формата. Это возможно, только если ограничиться неким подмножество языка, но нахрена тогда вообще огород городить?

В общем для электронных книг использование LaTeX более чем избыточно и никаких особых преимуществ перед другими форматами не даёт. Конечно, для технической литературы LaTeX был бы идеален, но практически вся такая литература существует только в сканированном виде, и перевести её в LaTeX это адский труд, ибо те же формулы придётся просто перепечатывать.

FB3 -- такой же убогий, как и FB2.

Ну будут в каком-то магазине книги в FB3. xslt в руки и получишь FB2. Или HTML. Или еще чего хочешь.

Можно для lib.rus.ec свой внутренний формат разработать. А отдавать, по заказу, FB2, FB3, html или кому что нравится.

Единственно ценное в FBx -- заголовок, описание произведения. Его и оставить. А основной текст не надо стандартизировать.

Первая задача -- каталогизировать. для этого подходит заголовок от существующего FB2. Это для программ каталогизации на диске пользователя и для удобства движка сайта магазина-библиотеки.

Другая задача -- представление контента. Вот охватить это все равно не получится. Слишком много совершенно разных вещей, для которых нужны разные стандарты. То-ли это журналы "Техника-Молодежи" в djvu, то-ли учебник по алгебре в MathML или пьеса со своим DOCTYPE.

Пусть тот, кто качает -- сам разбирается с тем, как конвертировать то, что он получит -- в текст, в LaTeX или еще куда. Или читалка (или конвертилка для читалки) должна уметь конвертировать xml и подключать модули для просмотра pdf/epub/djvu и т.д. Возможно, чтоб библиотека раздавала по запросу xslt для конвертирования из одного формата в другой.

В общем FB3 (да и FB2) -- это формат для хранения книг в удобном для какой-то конкретной библиотеки. Он удобен для lib.rus.ec? Да -- можно применять, нет -- ну и фиг с ним, сделать свой, удобный.

GribUser упорно создает HTML 2.0. Молодец. Нам то это зачем?

Цитата:

text#.xml – множественные файлы с текстом секций. Аналогичны содержимому оконечных секций в fb2 с небольшими расширениями. Имена и размещение файлов в архиве не оговаривается, но все они должны быть корректно адресованы через атрибут xlink:href секций в файле fb3_meta.xml. Нововведения по отношению к fb2:

* Нумерованные и ненумерованные списки
* Блоки, выпадающие из общего потока, с атрибутами float, align, width. Возможно, с разрешенной вложенностью. Возможно, с бордерами. К примеру тутатекст.
* Убирается inline-элемент code, добавляется block-элемент code, аналог p.
* Картинки больше не хранятся в XML, лежат в архиве, отдельно.
* Сноски будут типизированные. Выделяются концевые и подстраничные. Читалке желательно отображать сноски соответственно.
* Сноски выделяются в отдельный section (или в несколько), и отделяются друг от друга не секциями, а новым тегом

все новое -всегда "хуже старого",а потом обносится и привыкните!

С XHTML'ом этот трюк не прокатил :)

Я, лично, не понял, к чему такие страсти. Предложение о fb3, как оно прозвучало - очень разумное и логичное. Другое дело, что, опять же, я лично - не в большом восторге о fb как таковом. И предложил бы воспользоваться fb3 как поводом пересмотреть fb2.

А то, что упаковкой в zip можно воспользоваться для организации коммерческих продаж - и хрен с ним. Можно воспользоваться, а можно и не. И zip - не панацея, варианты купирования уже предложены. Не вижу тут проблемы.

Во-первых, я за Грузию!
Во- вторых, fb2 пока прекрасно работает на моем мобильнике, не вижу серьезных причин менять на fb3

Ну по-поводу быстрой обработки 10 маленьких файлов; а простой текстовой поиск в книге, это значит мне все 10 вначале распаковать а потом исскать, или по очереди а...
Конечно один файл удобней и быстрее, тем более что книг больше 1.5мб(не упакованного текста) я не видел (не буду утверждать, что их нет), а вот то что рисунки должны лежать отдельно - мысь правильная. И еще конечно хорошо , что работа со сносками улучшилась.
Мне кажется, что вполне можно воспользоваться опытом OpenOffice(вот уж действительно открытый формат основанный на xml), да - контейнер-архив, да - один файл с содержанием(текстом), да - один файл с оформлением ну и картинки отдельно.
А вот коммерциализации Либрусика я боюсь, где то 4 года я лажу на _фензин и в последнее время он из сетевой библитеки превратился в сайт для показа банеров и ссылок на имхонет_или_книжный_магазин_лабиринт, а вот читать там больше ничего не выкладывают.

Хм. Вот у меня есть электрическая книгочитательная машинка :) LBook eReader V3 - так там 32 мега ОЗУ всего, хватит ли на все эти навороты?

Господа, я вот читал дискуссию. И вот что думаю: а что собственно разводить сопли на ровном месте? Ну пусть он себе FB3 делает. Ну если будет закрытый, то пусть будет закрытый. И пусть в этом формате книги не ЛитРесе продаются. В конце концов человек себе на хлеб зарабатывает. А весь варезный мир будет использовать старый добрый FB2 в спецификации 2.1 и все в ажуре. Никто же не говорит о насильном переходе на fb3. Не нравится формат, не качайте, качайте fb2 отсюда, а нравится - так плати ЛитРесу. Вот и все дела.

Почему-то вспомнился фрагмент из книги, Сергей Лукьяненко, "Купи Кота"

Цитата:
А тут еще Богдамир стал спорить с каким-то техником из Комитета Солнечной Безопасности об электронных книгах, о том, порядочно ли скачивать тексты с пиратских сайтов. Техник высказал любопытную мысль, что, хорошо зная архитектуру процессора (а все буксеры достаточно однотипны), можно в сам текст книги ввести ловушку – такое сочетание букв, цифр и знаков препинания, которое будет восприниматься как команда и уничтожать процессор. Всем ведь известно, что любая электронная техника может быть разрушена программным образом. Так что электронная книга станет сама себя проверять на законность и в случае необходимости наказывать воров…

Максим усмехнулся и нажал кнопочку “перевернуть страницу”.

Но страница не перевернулась. Зато экран погас.

Пейсатель как-бы предупреждает нас!

Ха-ха-ха. Ну такие программные баги уже зависят от программ чтения. Если автор готов заложить в читалку функцию самоуничтожения по команде тогда возможны и такие варианты, но какой же дурак такое сделает. Даже если ЛитРес купит всех и вся, все равно найдется добрый программер, который напишет читалку для обычного трудового народа)))

x86, sparc, amd64, ppc, ppc64, alpha, hppa, mips, ia64, arm — пейсатель может
гарантировать, что такие команды существуют для всех платформ? Думаю, что нет.
Зато Gentoo или Debian можно поставить на любую из них.

Привет, народ.
Извините великодушно, может я тут не совсем в тему лезу со своим комментом, но всё же.
Напрягает меня уже сверх всякой меры постоянное стремление людей делать простые вещи сложным способом, и захотелось чего-то простого и надежного, как молоток, сатиновые трусы, или автомат Калашникова.
Вобщем, сейчас в процессе написания находится программка, которая показывает книгу в виде, максимально приближенном к оригиналу. То есть, форматирует эпиграфы, заголовки, стихи и цитаты в том виде, в каком мы привыкли их видеть в обычных бумажных книгах. Формат хранения текста книги намеренно упрощен до предела, за основу взята идея разметки WackoWiki. Предварительное название формата - NFB, что можно расшифровать как "Nice Formated Book", равно как и "NOT a FictionBook".
Файл внутри имеет обычную текстовую структуру. В начале файла идут строки вида Ключ:Значение, в которых хранятся "паспортные данные" книги - название, автор, серия итд. Опять же необходимый минимум. Далее идет собственно текст книги, который в крайнем случае можно читать обычным блокнотом, форматные теги очень короткие и не мешают восприятию. В конце файла лежат картинки в base64. Можно применить алгоритм base128, и уменьшить размер картинок примерно на 15%, но не вижу смысла уходить от стандартного метода кодировки. Обсуждение темы нового формата создам в своем блоге, если кому будет интересно и руки дойдут.
Так вот, к чему я это всё. Читалка, умеющая отображать книгу с картинками и полным форматированием (написанная на дельфи 7) на данный момент весит 95 килобайт. Именно 95К. После сжатия upx от нее вообще остается 47К, но это уже для экстремалов. Использует прога стандартные средства винды, совершенно не тормозит и не грузит систему, при этом внешний вид простой и аккуратный. Ей не нужны никакие дополнительные dll и парсеры XML. Файл весом в полтора мегабайта она открывает, разбивает на слова, форматирует и рисует на экране в течение 1-2 секунд. То есть, ничуть не отстает от Haali Reader, который и был вобщем-то источником вдохновения и разочарования.
Конвертор, который открывает файл .fb2, и делает из него .nfb, также написан, ждет окультуривания и добавления поддержки других входных форматов. В процессе также библиотекарь, который будет складывать файлы в один большой архив, конвертировать добавляемые файлы "на лету", и поддерживать всякие закладки/заметки/рейтинги/сортировки и проч.
Вот и объясните мне, глупому, ЗАЧЕМ нужен формат с явно избыточным барахлом внутри, и читалки, написанные на .NET, которые в сумме со всей прочей лабудой и фреймворком весят под триста метров? Наверное, чтобы люди в очередной раз озадачились покупкой более мощного железа, и сокрушались, что нет нормальных программ для просмотра.
Надеюсь, что уже очень скоро представлю свету свой проект, тогда и посмотрим, где будет господин грибов вместе со своим псевдооткрытым форматом.
P.S. Десятиметровый Fiction Book Designer от господина грибова с главным exe весом в 5.5 метров меня просто убил наповал. Продолжайте в том же духе, дружище, этим вы мне очень поможете. :)
С уважением к тем, кто дочитал до сюда, СерыйМыш.

очень интересно, нужно попробовать, если будет надежно работать при минимальных затратах времени на освоение не программистами нужно внедрять и распространять

Цитата:
В конце файла лежат картинки в base64

Утяжеляют текст, в связи с чем появилась нехорошая традиция размещать их в разрешении, допустимом только рассматривание "квадратиков" вместо иллюстраций. Фанаты данного подхода любят аргументировать это тем, что "это формат/книга для КПК". Нужные же иллюстрации (например, карту в книге археолога) при этом невозможно рассмотреть ни на КПК, ни где-либо еще.

Соображения по материалу из "NFB Specification_1.0.4.txt":
AUTH:Автор книги - Фамилия, Имя (, Отчество) - добавить "middle name" и "nickname". На Либрусеке, например, Отчество и middle name совмещены, хотя это далеко не синонимы. Имен у автора может быть несколько, причем именно имен, а не фио или псевдонимов.
SEQU - судя по файлам, нужно разделить "издательскую" и авторскую" серию.
GENR - fb-жанры неполны и неудобны, кроме как для фантастики/детективов. Скажем, жанра "научно-популярная литература" для Грибова не существует в природе.
LANG, SRCL - Критически нужно введение блока "переводчик", их, как и авторов, у книги тоже может быть несколько штук.
YEAR:NNNN - разделить на: год(ы) написания книги, год издания оригинала, с которого выполнен перевод, год издания отсканированной книги (последнее можно объединить с PUBL).
PUBL - разделить на элементы: город, издательство (--ства), год, № издания, к-ство страниц.
Признаком конца секции является метка начала следующей секции - NFB_Text - вредно: или текст уйдет в аннотацию, или аннотация залезет в текст.

По поводу форматирования/разметки текста - лучше всего пообщаться с golma1 и sd.

Извиняюсь, что поторопился и выложил файл со спецификацией, на котором тестировал первые версии читалки. Но, учитывая, что не возникло никаких вопросов и сложностей с прочтением, несмотря на присутствующие в тексте форматные теги, считаю тест на "дружественность" формата пройденным. :)

теперь по существу:
AUTH: Пратчетт, Терри, Джон
касаемо разбора этого поля мысль такая - то, что до первой запятой считать фамилией (second_name), после первой и до второй - имя (first_name), всё остальное предназначено исключительно для вставки после имени при рисовании шмульцтитула, и для поиска/сортировки использоваться не должно. Итоговое представление автора: Терри Джон Пратчетт, при этом сортировку в общем списке можно сделать как по сочетанию имя-фамилия, так и по фамилия-имя. других вариантов предстаить себе не могу.
SEQU:
разделение по сериям имеет смысл опять же для сортировки и поиска. никто не запрещает впихнуть и обработать два или три тега с сериями, если хочется, чтобы они были разные, и книга оказалась сразу в нескольких подгруппах. Только вот зачем?
GENR:
полностью согласен, было бы неплохо использовать вразумительный набор, однако учитывая тенденцию хранения подавляющего большинства книг в фб2, и для упрощения процесса конвертации пока оставил так. учитывая, что достаточно сложно составить короткий и в то же время универсальный классификатор жанров, оставлю это на попозже. основная сложность тут - не запутаться потом в жанрах, если их будет слишком много, и гарантированно найти книгу в библиотеке, отсортированной по этим самым жанрам. наверняка существует готовый классификатор, аналогичный тому, что используют для кинофильмов. надо только поискать.
LANG, SRCL.
действительно, упустил переводчиков. тег TRAN: спасёт отца русской демократии.
насчет года написания, издания и прочих атрибутов издателей:
при составлении спецификации использовался подход уважаемого Оккама с его бритвой. мне показалось, что лишняя информация, которая не помогает найти нужную книгу в отсортированном списке, не нуждается во включении в файл. равно как и разделение на отдельные поля данных об издателе. это сугубо справочная и вторичная по смыслу информация, на которую 90% читателей даже не посмотрят.
по поводу метки NFB_Text:
стоящий на отдельной строке вполне здравый разделитель, легко поддающийся обнаружению как визуально, так и программно. не вижу причины, по которой какой-либо другой разделитель будет более подходящим.

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

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

СерыйМыш написал:
AUTH: Пратчетт, Терри, Джон
касаемо разбора этого поля мысль такая - то, что до первой запятой считать фамилией (second_name), после первой и до второй - имя (first_name), всё остальное предназначено исключительно для вставки после имени при рисовании шмульцтитула, и для поиска/сортировки использоваться не должно.

Два Владимира Соловьева
Евгений 'Краев' Костюченко
СерыйМыш написал:
SEQU:
разделение по сериям имеет смысл опять же для сортировки и поиска. никто не запрещает впихнуть и обработать два или три тега с сериями, если хочется, чтобы они были разные, и книга оказалась сразу в нескольких подгруппах. Только вот зачем?

Издательские серии (например, бсф) включают произведения, объединенные автором в другие циклы.
СерыйМыш написал:
насчет года написания, издания и прочих атрибутов издателей:
при составлении спецификации использовался подход уважаемого Оккама с его бритвой. мне показалось, что лишняя информация, которая не помогает найти нужную книгу в отсортированном списке, не нуждается во включении в файл. равно как и разделение на отдельные поля данных об издателе. это сугубо справочная и вторичная по смыслу информация, на которую 90% читателей даже не посмотрят.

Для 90% читателей и блок TRAN - абсолютно лишний. Дело в том, что книга - это не только удобство чтения и комфортность установки програм, но и удобство хранения, каталогизирования, поиска информации в книге, поиска книги в базе, автоматической обработки данных о книге, конвертации в иные форматы - и многое другое...

по поводу метки NFB_Text - поживем - увидим.

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

В общем и целом - как уже сказали здесь до меня, добавление формата будет иметь смысл, если он решает некие проблемы, неразрешимые с помощью старых/уже имеющихся форматов. Если же он будет сформирован путем копирования старого формата с укорачиванием его функциональности - будут созданы новые проблемы без решения старых...

поковырялся на форуме, но не нашел (плохо искал?) списка потребностей в функциях применительно к книгам.
предлагаю собрать в кучку, чтобы было более понятно, что же всё-таки нужно.
итак:
Книга (в основной массе) есть совокупность текста, структурированного простым разбиением на именованные фрагменты, и (возможно) иллюстраций. Для удобства доступа к секциям применяется индексная информация - содержание.
Исторически книга снабжается некоторой дополнительной информацией, в частности аннотацией, данными об авторе, переводчике, и издателе, названием серии и собственно книги.
Процесс чтения книги заключается в последовательном или произвольном доступе к текстовой информации, а при наличии иллюстраций - и к графической.
Визуальное оформление книги призвано повысить удобство восприятия информации путем применения специальных приемов форматирования и выделения текста.
отсюда следует:
1. Чтобы не создавать сложностей с поддержанием целостности и первоначального состояния книги нежелательно располагать составляющие части книги в разных местах (или у вас дома все книги с оторванными обложками и вырванными и сложенными в отдельную стопку картинками?). Решение - один файл (сделано).
2. Визуальное оформление книги по возможности должно соответствовать правилам, выработанным за столетия книгопечатного производства, чтобы человек, привыкший к бумажным книгам, не испытывал дискомфорта и недоумения, читая электронную книгу. Структурных единиц оформления слава богу ограниченное количество, и все они известны - способы задания заголовков и подзаголовков разных уровней, способы выделения эпиграфов, цитат, стихов, сносок, а также разного рода шрифтовые и нешрифтовые приемы - жирный/курсив, втяжка, разрядка, гарнитура. Решение - специальные теги, полностью охватывающие данные способы оформления, при этом не нарушающие общей структуры текста и позволяющие создавать их и исправлять, в крайнем случае даже без специальных программных средств (сделано).
2.1. Поскольку речь идет именно о книгах, то не берем во внимание особенности набора журналов, газет и комиксов, так как для адекватного их воссоздания больше подходят графические форматы - pdf/djvu и т.п. Решение - забиваем на газеты и журналы.
3. Иллюстрации в книгах в последнее время применяются всё реже, однако при любом раскладе существует ограниченное количество способов задать положение иллюстрации: перед/после абзаца (заголовка), с выравниванием по центру/краю, и в тексте - с обтеканием справа или слева. частным случаем иллюстрации в тексте можно считать буквицу, которую сейчас почему-то незаслуженно забывают. Решение - воспроизвести размещение иллюстраций в тексте указанными способами (сделано).
4. Содержание книги позволяет выполнить произвольный доступ к индексированным элементам. Решение - программная обработка текста, выборка элементов, нуждающихся в индексации (заголовков), построение таблицы содержания, переход по индексу.
5. Дополнительная информация о книге должна быть доступна быстро, поэтому ее выносят на титульный лист. Решение - в самом начале файла расположить список вида Ключ:значение, позволяющий обработать эту информацию быстро и просто, а при необходимости скорректировать опять же в обычном текстовом редакторе (сделано).
Ну вот собственно и всё. В дополнение к этому можно добавить поиск по тексту, и каталогизатор по паспортным данным книги.
Какие ещё нужны функции?
Всё, что относится к интерактивному взаимодействию с книгой - закладки, пометки на полях, загибание страниц и подрисовывание усов на картинках - решается средствами программы-просмотрщика, и к исходному файлу с книгой имеет опосредованное отношение. Если сильно хочется, можно сделать экспорт-импорт закладок/заметок, и передать кому-то персонально, в виде дополнитеьного отдельного файла.
Добавьте, если что-то упустил.

СерыйМыш написал:

Процесс чтения книги заключается в последовательном или произвольном доступе к текстовой информации, а при наличии иллюстраций - и к графической.

Как я понимаю, такие запредельные вещи как, к примеру, таблицы Вы, вслед за Грибовым, игнорируете.

Упустил. Причем весьма важную вещь, если не концентрироваться на попсе, хотя и там это бывает. Сноски. Без них - это не книжный формат вообще.

Marina_Ch написал:
Упустил. Причем весьма важную вещь, если не концентрироваться на попсе, хотя и там это бывает. Сноски. Без них - это не книжный формат вообще.

кхе. вот как раз сноскам в предложенном формате уделено самое пристальное внимание. и если вы будете так любезны, и посмотрите, как организована разметка сносок (см спецификацию выше) и как реализовано их динамическое отображение (см демку ниже), то вопрос отпадет сам собой.
кстати, именно неудобство обращения к сноскам было последней каплей, после которой было решено сделать всё самому и так как должно быть.

Кстати, по поводу сносок:
Представь, что на одной странице 5-10 сносок, причем каждая - солидный такой текст с несколькими абзацами (документалистика, мемуары - запросто), так, что вместе они на одном экране не поместятся. Как это будет выглядеть в читалке?

carpenter написал:
Кстати, по поводу сносок:
Представь, что на одной странице 5-10 сносок, причем каждая - солидный такой текст с несколькими абзацами (документалистика, мемуары - запросто), так, что вместе они на одном экране не поместятся. Как это будет выглядеть в читалке?

для особо бредовых случаев можно сделать так: ограничить максимальную высоту отображаемой секции сносок половиной высоты экрана (окна) и для сносок, которые не влезли, сделать свою прокрутку. либо ограничить видимую часть сноски двумя-тремя строками, в конце поставить кнопку [...], по нажатию на которую разворачивать секцию сносок на весь экран с возможностью прокрутки.
есть хоть один живой пример подобной книги? киньте ссылочку, чтобы было на чем тестировать.
встречный вопрос: насколько востребовано разделение сносок на подстраничные (которые должны отображаться сразу) и концевые (которые идут после всего текста и отображаются по запросу - клику на ссылке) ?

СерыйМыш написал:
есть хоть один живой пример подобной книги? киньте ссылочку, чтобы было на чем тестировать.

http://lib.rus.ec/b/122074
СерыйМыш написал:
встречный вопрос: насколько востребовано разделение сносок на подстраничные (которые должны отображаться сразу) и концевые (которые идут после всего текста и отображаются по запросу - клику на ссылке) ?

Все читатели четко разделены на 2 вида: подстраничных и концевых.

Например, аннотированые «Алиса в Стране чудес» и «Алиса в Зазеркалье». В печатном издании сноска к «Бармаглоту» — три страницы

Такой же пример — «Война и мир» Толстого. Все переводы текстов на французском даны в сносках, а тексты могут быть очень большими

По моему непрофессиональноу мнению новая спецификация
fb3 достаточно удачна.
Разбивка одного файла с книгой на несколько секций позволяет
програмистам оптимизировать читалку,производя разбор не всего файла
с загрузкой его в память, а лишь ту часть которая неоходима для
отображения.
Насколько я понял из описания,содержание книги (её структура)
содержится в небольшом xml файле, который несложно все время держать
в памяти. При необходимости отобразить скажем 3 главу
из файла содержания считывается соответствующая ссылка
и производится парсинг небольшой части текста.
В этом на мой взгляд два выигрыша:
1. Не сильно напрягается память.
2. В текствой секции производится разбор из сильно
ограниченного числа тегов(в основно форматирования).
Плюс к этому хранение картинок в бинарном виде без сжатия.
Форматы JPG и PNG сами достаточно хорошо сжимают
изображение. Библиотеки для работы с этими форматами
есть на любой платформе. Вывод изображения на экран
производится простым считыванием части файла в буфер и
передачей этого буфера библиотечной функции.
При этом, если достаточно грамотно разработать
формат файла содержания (включив в него сведения
о включении картинок в определенную текстовую секцию),
достаточно легко реализуется предвыборка картинки при выводе
определенной секции.
В итоге имеем достаточно шуструю читалку не сильно
требовательную к ресурсам.

K недостаткам формата следует отнести приверженность Griba к
каноническому XML.
Все эти XLink, XPointer, namespace, куча всевозможных атрибутов
при тегах лишь затрудняют парсинг.
Мне кажется,что формат должен лишь устанавливать структуру документа,
а способ отображения различных типов тегов должен настраивать
пользователь читалки.

Отностительно формата NFB

Цитата:
Учитесь у природы создавать интерфейсы.
Книга, закладка, карандаш, книжные полки,
тётенька в очках с тетрадочкой со списком
литературы и номерами стеллажей. Помнится,
когда компьютеров не было, в каждой библиотеке
был такой интерфейс.

Цитата:
Предварительное название формата - NFB,
что можно расшифровать как "Nice Formated Book",
равно как и "NOT a FictionBook".

Простота формата напоминает беззаботную улыбку идиота.

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

Что касается сетований на большой размер читалок, то это
претензии к программеру, который вместо написания
простеньгого XML-парсера для очень ограниченного числа тегов,
прикручивает msxml*.dll или какой нибудь другой парсер, расчитаный на
разбор канонического XML со всеми наворотами(XLink...).

При текстовом разборе строки особой разницы между разбором
...,... и [!]...#0D#0A, [>]...[>] и
прочих тегов размерки нет.

Относительно хранения картинок в base64.
При хранении в бинарном виде отображение просхотит
в следующем порядке:
считывание в память файла -> передача в функцию ->
распаковка в память(по сути дела в bmp) -> вывод на экран.

При хранении в base64 впереди этой цепочки добавляется:
чтение в память -> раскодировка в бинарый вид...

И все эти танцы с бубном для возможности сохранения книги
в одном тектовом файле!
Вывод:
Предлагаю автору изменить название формата на
"POOR Formated Book"

А с моей точки зрения идея формата fb3 достаточно продуктивна.

Страницы

X