Формат NFB

ВложениеРазмер
Иконка электронной таблицы Office fb2-nfb relations.xls25.5 КБ
Иконка простого текстового файла NFB Specification_1.0.14_FR.txt32.42 КБ

начиная с 01.12.2008 ТЕМА НЕ МОДЕРИРУЕТСЯ
убедительно прошу воздержаться от нецензурных выражений, беспочвенных наездов и флейма.

изменено: 30.06.2009.
выложена четырнадцатая редакция спецификации

24.04.2009: работы временно приостановлены по субъективным причинам. возобновление планируется на середину мая этого года.
27.04.2009: жалкие попытки заняться полезным делом привели к очередной корректировке спецификации. выложена сравнительная таблица по взаимной совместимости fb2 и nfb.
05.05.2009: победил глюки оперы и залил-таки тринадцатую редакцию
30.06.2009: выложил 14 редакцию. изменений по сравнению с 13-й практически нет, уточнены отдельные мелочи, переведено в стадию "финал релиз".

формат разрабатывается как макcимально упрощенный альтернативный вариант хранения книг.

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

конвертор пока существует только из fb2 в nfb, планируется полная поддержка импорта и экспорта для формата fb2.

у кого есть конструктивные идеи/замечания/предложения - прошу высказаться.

Комментарии

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

Цитата:
…нужен ли реальный показатель страниц?
На мой взгляд – нужен, если формат разрабатывается не только под художественную литературу. Более того, желательно какое-то соответствие номера страницы в электронном виде с номером страницы в бумажном варианте. Поясню почему. Когда работаешь с научно-популярной и мемуарной литературой (здесь у меня собственные шкурные интересы – я по большей части читаю такую литературу), в книге имеется большое количество библиографических ссылок на источники (источник – номер страницы). Хотелось бы иметь возможность при необходимости находить такие ссылки. На Militera.lib номера страниц в электронном виде сохраняются. Другой вопрос, что их необязательно отображать при выводе текста.

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

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

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

Цитата:
… но радости мало, промазать мимо нужной секции…
Если книга сделана криво, то все равно в нужную секцию не попадешь. Книгу придется править. А если правильно – это не помеха. По моему мнению, читалка должна лишь минимально проверять корректность ссылок, чтобы не рухнуть. А правильность попадания в нужную секцию – это вопрос к редактору файлов. СерыйМыш писал:
Цитата:
… что важнее - минимальные затраты памяти, или скорость доступа… … в итоге всё равно приходится распаковывать весь text.nfb. ну, и в чём счастье?
Это в случае короткого файла. У меня сейчас том Большой Советской Энциклопедии в формате fb2. Куча картинок и куча текста. Я просто потихоньку подвожу к системе блочной архивации (опять-таки собственный шкурный интерес). То есть вместо text.nfb – 0000.nfb, 0001.nfb… А смещения в content.nbf указывать 0000:0000 (или что-то подобное), где первая цифра номер файла, а вторая смещение.

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

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

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

Цитата:
… опять же, подгрузка каждой картинки "на лету" - не очень здравый вариант. Нужно предусмотреть кеширование и/или подгрузку с упреждением.
А зачем? При редактировании книги номера картинок скорее всего будут идти по возрастающей. При упаковке в архив нужно будет лишь соблюсти такой же порядок расположения файлов изображений в архиве и при выводе очередной картинки переходить на следующую картинку. Перед выводом картинки проверять соответствие номера картинки и номера в имени файла. Если не совпадает, тогда уж искать по архиву.

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

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

Надо бы добавить в спецификацию "Ключевые слова", а так все здорово.

Для продвижения формата необходимо:

создать редактор для создания nfb книг или написать плагин для имеющегося редактора (например, emeditor);

написать читалку для чтения на мобильных устройствах, либо конвертер nfb->lrf и nfb->wol.

1_абрам написал:
Надо бы добавить в спецификацию "Ключевые слова",
тоже думал об этом, но не был уверен, что пригодится.
полагаю, запись вида
KEYW:ключевые слова, много и разные
должна справиться с задачей.

1_абрам написал:
создать редактор для создания nfb книг или написать плагин для имеющегося редактора (например, emeditor);
как только будет полностью доделан движок и читалка, займусь визуальным редактором и конвертером nfb<->fb2.

1_абрам написал:
написать читалку для чтения на мобильных устройствах, либо конвертер nfb->lrf и nfb->wol.
не ЛИБО, а И.
на первом месте - читалки для WinCE, WinMobile и Symbian.
затем конвертеры.
спецификацию на .lrf нашел, буду ковырять.
!!! ищу спецификацию на формат .wol, у кого есть, прошу поделиться.

СерыйМыш написал:
.
!!! ищу спецификацию на формат .wol, у кого есть, прошу поделиться.
Посмотрите здесь:

http://www.the-ebook.org/forum/viewtopic.php?p=162326&sid=b4f5c999b12b9bd3bcbb8327568fd801

С ISNB не так просто: их может быть несколько, например:

http://www.glencook.org/index.php/The_Books_of_the_South

* 0-765-32066-5 (ISBN-10)
* 978-0765-32066-7 (ISBN-13)

Evil Shrike написал:
С ISNB не так просто: их может быть несколько, например:

http://www.glencook.org/index.php/The_Books_of_the_South

* 0-765-32066-5 (ISBN-10)
* 978-0765-32066-7 (ISBN-13)


на самом деле всё гораздо проще, чем кажется:

NFB_Info:
...
ISBN:0-765-32066-5
ISBN:978-0765-32066-7

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

Пытаюсь читать и обрабатывать "Чёрную пешку" Лукьянова. Есть идея - включить в формат поддержку звука и видео (звук - воспроизводить в пределах главы, видео - показывать первый кадр как обычную картинку, а воспоизводить при щелчке или mouseover'е).
Если звук не поддерживается читалкой - можно игнорировать, если не поддерживается видео - показывать вместо него статичную картинку (в т.ч. и задавать альтернативную картинку при подготовке документа).
Ещё одно не помешало бы - поддержка CSS. Как именно - пока не знаю, во всяком случае, в виде внешнего форматтера должно быть холерно неудобно. :(

Судья Ди написал:
Пытаюсь читать и обрабатывать "Чёрную пешку" Лукьянова. Есть идея - включить в формат поддержку звука и видео (звук - воспроизводить в пределах главы, видео - показывать первый кадр как обычную картинку, а воспоизводить при щелчке или mouseover'е).
Если звук не поддерживается читалкой - можно игнорировать, если не поддерживается видео - показывать вместо него статичную картинку (в т.ч. и задавать альтернативную картинку при подготовке документа).

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

Судья Ди написал:

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

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

для тех, кто хочет однозначности в оформлении - tex, html или pdf.

СерыйМыш написал:
формат nfb (как впрочем и fb2) - это логическая разметка. а как отображать разные элементы текста - это должен решать движок визуализации. теоретически прорабатывался вопрос со стилями оформления, но поскольку основная задача была сделать платформо-независимый формат, [...] встраиваемыми стилями пришлось пожертвовать.
Ага. Я имел в виду дооформление - такое, как повествование от лица разных персонажей разным цветом (Михаэль Энде), поток мыслей в три колонки (сигомы Росоховатского), отступ для второго слоя повествования ("Вселяне" Владимира Савченко), табло/плакаты/под-под-подзаголовки уменьшенным шрифтом... в общем, то, что проще слегка довыделить средствами CSS, а если читательный девайс не поддерживает - то и проигнорировать не слишком жалко.
СерыйМыш написал:
Судья Ди написал:
идея - включить в формат поддержку звука и видео
в рамках предлагаемого формата - однозначно нет.
для компоновки в книге разных типов медиа-контента больше подходят контейнеры типа разрабатываемого fb3 [...] одно дело положить в телефон/читалку архив в 200-300 кб, или ту же книгу, но обвешанную звуком и видео общим весом в 100 мб.
Ага. Т.е. картинки тоже собираются быть только встроенные в файл и никак иначе? Досадно. Неплохо было бы иметь возможность хранить картинки в двух вариантах - либо тело картинки непосредственно в тексте, либо в тексте только имя отдельного файла в том же архиве/каталоге. (Или даже основную картинку отдельным файлом, а в тексте её же уменьшенную под нужды мини-читалки.) Было бы удобно для хранения тоооолстых, перенасыщенных графикой, видео и музыкой книг: на компе смотрим полноDVDшную версию, :) а в читалку заливаем только текстовое тело с интегрированными в него мини-картинками и, может быть, MIDI-дорожками (они крохотные - считанные килобайты).
Ещё одно удобство было бы - сборка и "отладка" книги с картинками: на время подгонки разместить картинки снаружи и править их как угодно (размеры, форм-фактор, яркость=-контрастность и т.д.), а потом, когда всё подогнано, "лёгким движением руки" в редакторе собрать картинки внутрь тела документа.
...С моими запросами придётся перебираться на fb3... :(

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

Не стоит преумножать сущности. В твоей задумке нет абсолютно никаких новых идей. Не стоит "шпынять" fb2 и GribUser-а за литресовское настоящее. Не нужен "альтернативный" формат "на зло врагу".

СерыйМыш, новый формат для fiction book - штука достаточно сложная. На голом "энтузизизме" здесь не прокатишь, не найти дешевой популярности. Думай больше.

* (неконструктивный флейм)

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

Не стоит преумножать сущности. В твоей задумке нет абсолютно никаких новых идей. Не стоит "шпынять" fb2 и GribUser-а за литресовское настоящее. Не нужен "альтернативный" формат "на зло врагу".

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

SeNS написал:
СерыйМыш, новый формат для fiction book - штука достаточно сложная. На голом "энтузизизме" здесь не прокатишь, не найти дешевой популярности. Думай больше.
дешевая популярность мне нафиг не впёрлась. и думал я уже достаточно. теперь делаю.
а кто сам ничего сделать не может - пусть думает.

устал я от вас. по десять раз одно и то же.

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

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

Уважаемый СеНс, хотел бы заступиться за серую мышь. С чего вдруг такая агрессия с Вашей стороны. Человек старается, а вы его пионэром обзываете, прям по известной пословице: "За свои пирожки - ты еще и пидорас"

Над новым форматом работать нужно - недостатки фб2 очевидны и не раз обсуждались .

Новый формат во-многом устраняет эти недостатки.

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

ЗЫ. Пользуясь случаем хочу поблагодарить СеНса за замечательную программу JAP.

Сорри за мегаоффтоп, но можно поподробнее о программе JAP?

whistle написал:
Сорри за мегаоффтоп, но можно поподробнее о программе JAP?

читай http://www.the-ebook.org/forum/viewtopic.php?t=5366
там подробно.

Спасибо.

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

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

Прошу прощения за оффтоп, но раз здесь комментарии теперь не трут, то выскажу свое ИМХО :)

Прочитав страстный многословный пиар своего формата от СерыйМыш'а в левой теме, понятно было , что все это в принципе повторение того, что уже есть, ничего нового и т.п. Поэтому когда его турнули оттуда, подумал, что логично, НО! положил в закладки эту тему, чтобы периодически смотреть. Зачастую как раз параллельное развитие программных продуктов (изначально одинаковых) и позволяет остаться лучшему. Или продолжать развиваться каждая в своей нише (FreeBSD, OpenBSD, NetBSD).

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

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

ЗЫ. Собственно говоря зачем _я_ это пишу? Задел меня такой момент - SeNS, я так понимаю уважаемый человек в в мире е-бук,
создатель программы JaP, на страничке этой программы, указанной выше, позволяет себе размещать такой текст:

Цитата:
Тестируем и пишем сюда об ошибках. Пожелания и предложения приветствуются в виде вежливой просьбы (автор НЕ ГАРАНТИРУЕТ их обязательную реализацию.
Претензии, требования и личные обиды отправляем с этой страницы: http://lleo.aha.ru/na/

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

в спецификации:
* ISBN: - издательский код книги. Блок должен быть один или отсутствовать.

Evil Shrike написал:
в спецификации:
* ISBN: - издательский код книги. Блок должен быть один или отсутствовать.

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

ISBN нужен в первую очередь для идентификации книги.
Книга изначально может содержать несколько идентификаторов. например:
http://www.ozon.ru/context/detail/id/4251925/

ЕСЛИ УКАЗАНО НЕСКОЛЬКО ISBN, ЭТО ОЗНАЧАЕТ, ЧТО...

книга — один из томов многотомного издания. - Соответственно указывается ISBN многотомника и отдельно ISBN для каждого тома.
- это переводное издание — первый ISBN для данного перевода, а второй ISBN для оригинала.
- книга одновременно выпущена несколькими издательствами
.

Цитата:
вроде бы логично предположить, что электронная книга сделана на основе какого-то конкретного варианта бумажного издания

насколько я знаю сейчас принято решение присваивать ISBN и электронным изданиям.

вот нашел:

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

Сериальные и нотные издания нумеруют специальными идентифицирующими системами ISSN (International Standard Serial Number) и ISMN.

кстати ISSN и ISMN логично сразу предусмотреть - типа если будет то сразу и поддерживаться будет. :)

убедил :)

включить ISSN и ISMN в набор поддерживаемых ключей проблемы не составляет.

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

выложена девятая редакция спецификации, которой присвоен статус release candidat.
возобновлена работа над движком.
паралельно ведутся исследования Symbian OS и попытки писать под нее программы. пока результаты обнадёживающие.

суть вопроса такая:
есть ли смысл переводить все книги в юникод?

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

для теоретиков дополнительная инфа:
в идеале, файл, содержащий _только_ национальные символы, в utf-8 весит ровно в два раза больше такого же файла в cp1251.
НО! при архивировании одинаковых по содержанию файлов, один из которых в cp1251, а второй в utf-8, разница уже не столь существенна. архив с юникодом весит всего лишь на 20% больше.
при наличии в файле картинок в base64 или большого количества латиницы, эта разница становится ещё меньше - порядка 10-15%.
c utf-16 картина похожая, но разница в упакованном виде несколько больше.
при работе программы соответственно для юникода требуется вдвое больше памяти, чтение данных из utf-8 в 2-3 раза медленнее, парсинг оптимизированными алгоритмами тоже в 2-5 раз медленнее.
стоит ли овчинка выделки?

кто что думает на этот счёт?

IMHO
Системно - за юникодом будущее. Тексты невелики объёмом и даже и двукратный рост размера библиотеки не критичен для нынешних хардов - всё равно вся литература рунета на один комп влезет...
Только если делать юникод - то жёстко. Чтобы даже опции "сохранить в ... кодировке" не было. Юникод так юникод.
/IMHO

Jolly Roger написал:
IMHO
Системно - за юникодом будущее. Тексты невелики объёмом и даже и двукратный рост размера библиотеки не критичен для нынешних хардов - всё равно вся литература рунета на один комп влезет...
Только если делать юникод - то жёстко. Чтобы даже опции "сохранить в ... кодировке" не было. Юникод так юникод.
/IMHO

в очередной раз сорвался перевод спецификации в состояние "release" :)

для формата .nfb в качестве кодировки выбирается utf-8.

после перечитывания матчасти решено обеспечить в редакторе корректную поддержку диакритических знаков, посему вопрос первый - нужен ли механизм автоматической/полуавтоматической трансляции "фиктивных" знаков ударения, организованных с помощью монолитных символов (типа: "á" - $00E1), в реальные пары - кириллический символ ("а" - $0430) + знак ударения ("´" - $00B4) ?
вопрос второй - нужна ли полная нормализация?
ну и до кучи, нужен ли контроль диапазона символов, и поиск слов, содержащих символы из разных национальных кодировок для отлова случайной или намеренной подмены символов с похожим начертанием (например латинская "A" и русская "А") ?

Если подходить фундаментально, а на мой вкус со спеками только так и надо, то надо все. Диакритику можно смело относить к стилистическим элементам. Да и потом, при корректном лингвоанализе проще будет выделять подоснову при разделении символа и диакрита. А то как бы не пришлось мучится как с непарными кавычками "Открывающая она или нет?". То же и по поводу контроля диапозона. С ним улучшится автокорректура.

СерыйМыш написал:
для формата .nfb в качестве кодировки выбирается utf-8.
Если софт для обработки NFB-файлов стерпит наличие (или отсутствие) в начале файла трёх байтиков EF, BB, BF (ими форточные редакторы метят utf'ные текстовые файлы) - тогда годится. (Ведь NFB-файл иногда будет редактироваться и обычным notepad'ом...)
СерыйМыш написал:
нужен ли механизм автоматической/полуавтоматической трансляции "фиктивных" знаков ударения, организованных с помощью монолитных символов (типа: "á" - $00E1), в реальные пары - кириллический символ ("а" - $0430) + знак ударения ("´" - $00B4) ?
Скорее да, чем нет.
СерыйМыш написал:
нужен ли контроль диапазона символов, и поиск слов, содержащих символы из разных национальных кодировок для отлова случайной или намеренной подмены символов с похожим начертанием
Скорее да, чем нет; но при наличии поиска по регулярным выражениям и подсказки по паре десятков самых ходовых выражений - IMHO вполне можно обойтись.

Судья Ди написал:
Если софт для обработки NFB-файлов стерпит наличие (или отсутствие) в начале файла трёх байтиков EF, BB, BF (ими форточные редакторы метят utf'ные текстовые файлы) - тогда годится. (Ведь NFB-файл иногда будет редактироваться и обычным notepad'ом...)

википедия на этот счёт говорит следующее:
Для определения формата представления Юникода в текстовом файле используется приём, по которому в начале текста записывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. Byte Order Mark, BOM). Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов. Файлы, следующие этому соглашению, начинаются с таких последовательностей байтов:
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE

так вот, наличие метки BOM в принципе оправдано для поддержания "дружественности" к редакторам типа notepad. при этом наличие собственной сигнатуры для формата и жесткое указание использовать utf-8 делает наличие метки необязательным.

ИСПРАВЛЕНО:
решение такое: метку EF BB BF использовать настоятельно НЕ рекомендуется, но независимо от ее наличия или отсутствия идентификация формата производится на основании собственной сигнатуры, и в качестве кодировки всегда используется utf-8.
использовать UTF-16LE и UTF-16BE в данный момент смысла не вижу, тем более, что это afaik изобретение майкрософта, и стандартом не является.

ДОБАВЛЕНО ПОЗЖЕ:
товарищи пингвиноиды, скажите своё веское слово, как к метке BOM относятся ваши любимые текстовые редакторы? стоит ее добавлять в файл или нет?

У меня локаль utf-8, поэтому что с меткой, что без неё - разницы никакой. Всё нормально открывается.
А вот если файл в cp1251, то приходится ручками выбрать кодировку.
Собственно, utf-8 сейчас самая распространённая локаль, по крайней мере в русскоязычных странах.

Тут надо больше виндовыми редакторами интересоваться, ИМХО.

стадия Release Candidat окончательно достигнута.
выложена 10 редакция спецификации.

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

в читалке(движке) планируется реализовать "адаптивное" масштабирование - то есть подгонку масштаба с учетом кратности получаемой картинки к исходному размеру, что по идее должно позволить получить максимум качества.

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

интересно отношение уважаемой публики к масштабированию иллюстраций, как таковому, и к иллюстрациям вообще.

Бросилось в глаза:

считаются навными 100%

*Якоря не мо

Вы вроде бы согласились добавить в спецификацию ключевые слова, передумали?

пофиксено.

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

Есть несколько вопросов по спецификации.

1) Выравнивание:
По ширине не предусмотрено совсем - это косяк или по умолчанию (без выравнивания попалось в описании) оно само будет по ширине?

|> - выравнивание по правому краю
|< - выравнивание по левому краю (без абзацного отступа)
|= - выравнивание по центру строки

2)По поводу выделения текста:
**полужирный
//курсив
__подчеркнутый
--зачеркнутый
~~обычный - отмена любого выделения

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

Тут обычный текст, а дальше //курсив от сих и до сих.~~ Тут опять обычный...
И аналогично для остальных стилей?

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

Предусмотрена ли комбинация выделений? Например болд+курсив,курсив+ подчеркивание, болд+курсив+подчеркивание?
И комбинация этих болдов-кусивов с разрядкой-уплотнением, индексами?

3) По оформлению таблиц:
Часто в таблицах выделяется жирным целая строка (чаще шапка) или столбец.
Может ввести дополнительный вариант распространения выделения жирным на всю строку (и/или столбец) неким указателем?
Например так:
$>>*|>|>|>|>$|
где >>* указание на жирность всей строки (синтаксис может быть другой),
для жирного (первого) столбца что-нить вроде:
$|v*>|>|>|>$|

4) По поводу картинок:
Использование инлайновых картинок планируется? Раз уж формат для "нехудлита"?
Формулы там всякие ( в виде картинок внутри абзаца, строки? Прочие мелкие графические элементы, высотой максимум в 2 строки тоже внутри абзаца?

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

Если я где чего в спеках не углядел по перечисленным вопросам, прошу сильно ногами не пинать )

Буду еще поглядеть спеки, может еще какие комментарии по ним появятся...

TaKir написал:
Есть несколько вопросов по спецификации.
1) Выравнивание:
По ширине не предусмотрено совсем - это косяк или по умолчанию (без выравнивания попалось в описании) оно само будет по ширине?

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

TaKir написал:

2)По поводу выделения текста:
**полужирный
//курсив
__подчеркнутый
--зачеркнутый
~~обычный - отмена любого выделения
...
По идее экономичнее автоматом снимать выделение в конце абзаца.
Предусмотрена ли комбинация выделений? Например болд+курсив,курсив+ подчеркивание, болд+курсив+подчеркивание?
И комбинация этих болдов-кусивов с разрядкой-уплотнением, индексами?

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

Допустимы варианты:
Обычный //курсив// снова обычный
Обычный //курсив ~~снова обычный
Обычный //курсив **полужирный курсив// просто полужирный **обычный
Обычный //курсив **полужирный курсив __подчеркнутый полужирный курсив ~~обычный

TaKir написал:
3) По оформлению таблиц:
Часто в таблицах выделяется жирным целая строка (чаще шапка) или столбец.
Может ввести дополнительный вариант распространения выделения жирным на всю строку (и/или столбец) неким указателем?
Например так:
$>>*|>|>|>|>$|
где >>* указание на жирность всей строки (синтаксис может быть другой),
для жирного (первого) столбца что-нить вроде:
$|v*>|>|>|>$|

с таблицами планирую позаниматься отдельно. в процессе написания парсера будет видно, как удобнее реализовать такую фичу. пока вполне возможно задать выделение для всей строки так:
$|*|*|*|*$|ячейка 1|ячейка 2|ячейка3|ячейка 4

TaKir написал:
4) По поводу картинок:
Использование инлайновых картинок планируется? Раз уж формат для "нехудлита"?
Формулы там всякие ( в виде картинок внутри абзаца, строки? Прочие мелкие графические элементы, высотой максимум в 2 строки тоже внутри абзаца?

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


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

TaKir написал:
Буду еще поглядеть спеки, может еще какие комментарии по ним появятся...

хорошо бы

Вроде бы весь тред прочитал, но есть один вопрос...
Почему файл должен быть правильным по формату только если

Цитата:
FormatID, BookInfo и Annotation всегда расположены в начале файла и следуют друг за другом
? Это критично, и если да, то почему?
И еще, не проще ли применять традиционное отображение hex-символов типа 0х0000 или 0000h?

Saturos написал:
Вроде бы весь тред прочитал, но есть один вопрос...
Почему файл должен быть правильным по формату только если
Цитата:
FormatID, BookInfo и Annotation всегда расположены в начале файла и следуют друг за другом
? Это критично, и если да, то почему?
И еще, не проще ли применять традиционное отображение hex-символов типа 0х0000 или 0000h?

1. по сигнатуре формата (FormatID) программы будут определять принадлежность файла к формату NFB и его версию. поэтому однозначно в начало файла. вас же не удивляет наличие сигнатуры "Rar!" в начале рар-архива? или сигнатуры %PDF в начале файла .pdf?
2. секция BookInfo содержит информацию о книге, которая нужна при обработке файла каталогизаторами, или при отображении свойств файла с помощью расширения для проводника. чем ближе эта секция к началу, тем быстрее она будет прочитана. то же самое и с аннотацией, и с обложкой. рыскать по всему файлу в поисках отдельных кусочков - тормозно и некошерно. именно поэтому кстати было принято решение перенести блок Cover в начало.
3. друг за другом они следуют, чтобы обеспечить однозначность при чтении этих данных. если после секции BookInfo встретилась секция Text, то понятно, что секций с аннотацией и обложкой в файле нет, и дальше лопатить файл не стоит. кроме того, как-то принято во многих программах использовать более-менее фиксированную структуру данных.
4. традиционное написание hex-символов может и имеет смысл, чтобы отличать десятичные числа от шестнадцатиричных, но совершенно не помогает в обработке этих самых символов. если и так заранее известно, что эти четыре символа обозначают шестнадцатеричную запись номера картинки/якоря/секции, то нет никакого смысла вводить дополнительные опознавательные знаки.
убедил?

Хотелось бы включить в спецификацию возможность отображения текста в таком вот виде:

1 А ...... . Б .......
......... С ........
2 ........ D ........
.......... . E ......
3 G...............

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

Поддерживаю введение в формат инлайновых картинок.

1_абрам написал:
Хотелось бы включить в спецификацию возможность отображения текста в таком вот виде:

1 А ...... . Б .......
......... С ........
2 ........ D ........
.......... . E ......
3 G...............


киньте ссылку или пример такого текста в pdf/djvu, хоть посмотрю как оно реально выглядит.

1_абрам написал:
Поддерживаю введение в формат инлайновых картинок.

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

>киньте ссылку или пример такого текста в pdf/djvu, >хоть посмотрю как оно реально выглядит.

Вот пример:

http://rapidshare.com/files/190632982/__1050___1057___1045___1053___1054___1060___1054___1053___1058__-___1050___1048___1056___1054___1055.html

Посмотрите, кстати, как плохо подобные книжки выглядят в фб2:

http://lib.rus.ec/b/110630

душераздирающее зрелище. но идея в целом понятна. добавлю в спецификацию.

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

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

какие ещё есть варианты оформления, о которых я не знаю?

по поводу "инлайновых" картинок - либо картинка занимает по высоте одну строку, либо вставляем её между абзацами. ибо обтекание картинки текстом с двух сторон - это имхо будет уже перебор.

Как-то вы так спонтанно добавляете разные свистелки и перделки... Не боитесь, что из формата получится монстрик на костылях?

whistle написал:
Как-то вы так спонтанно добавляете разные свистелки и перделки... Не боитесь, что из формата получится монстрик на костылях?

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

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

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

по поводу "инлайновых" картинок - либо картинка занимает по высоте одну строку, либо вставляем её между абзацами. ибо обтекание картинки текстом с двух сторон - это имхо будет уже перебор.

1. Не нужно их смысл - облегчение цитирования текста.

Насчет "инлайновых" картинок - предложенного вами вполне достаточно.

Жду с нетерпением программной реализации формата.

Проект умер?

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

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

конвертор пока существует только из fb2 в nfb, планируется полная поддержка импорта и экспорта для формата fb2.
в ближайших планах визуальный редактор и каталогизатор

Здорово.

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

Оптимально было бы сделать что-то вроде cr3 для nfb.
М.б. стоит взять его за основу (На http://sourceforge.net/projects/crengine доступны исходники, включая source package для Debian.
Проект можно строить с помощью automake/autoconf) и модифицировать для nfb?

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

выложена двеннадцатая редакция спецификации и сравнительная таблица по взаимной совместимости fb2 и nfb.
в процессе работы над таблицей выправлены опечатки и неточности в спецификации, добавлены незначительные уточнения.
добавлены бантики в оформление таблиц. в принципе, осталась теоретическая возможность сделать несложную таблицу вручную, но с помощью редактора со специальными кнопочками/менюшками управлять рамками, выравниванием и оформлением явно будет на порядок проще. осталось только написать редактор :)

Страницы

X