FictionBook 3.0 beta - краткое описание — различия между версиями

Материал из FictionBook
Перейти к: навигация, поиск
(.xml-файлы в архиве: вынес слово "секции" из скобок)
м
 
(не показаны 23 промежуточных версий 2 участников)
Строка 2: Строка 2:
 
''Ответственный: Грибов Д.П., grib@gribuser.ru''
 
''Ответственный: Грибов Д.П., grib@gribuser.ru''
  
''Дата создания: 3 июля 2008 г.''
+
''Первая версия предложена 3 июля 2008 г.''<br>
 +
''Версия 0.1 от 1 октября 2008 г.''
  
 +
== Цель создания формата ==
 +
Формат fb3 разрабатывается для удовлетворения возросших требований к форматированию текста книг и возможностям их каталогизации. Современное состояние стандартов и технологий позволяет, помимо простого расширения набора тегов, привести формат к совместимости с наиболее удачными и перспективными наработками. В частности, в основу fb3 положен стандарт Open Packaging Convention ([http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376 Part 2]). Помимо этого в качестве картинок можно использовать SVG-файлы (и GIF-файлы, патент на которые закончился).
 +
 +
== Преемственность с форматом fb2 ==
 +
'''Приоритеты''', на которых основан формат fb2, остаются, но частично расширяются:
 +
* Принцип одна книга - один файл сохраняется. Более того, fb3 полноценно поддерживает "подшивки" - несколько книг в одном fb3-файле.
 +
* Минимализм форматирования сохраняется, но для работы со сложными документами (например, с учебниками) в fb3 вводится минимально-необходимый набор тегов, обеспечивающий максимальное качество верстки при максимально возможной простоте.
 +
* Вся мета-информация является неотъемлемой частью файла. В соответствии с возросшими требованиями к полноте и точности мета-информации была разработана новая, прямо не совместимая с дескрипшном fb2, структура.
 +
* Формат, как и прежде, максимально ориентирован на полноценную и эффективную переносимость текста на любое устройство, с ограниченными ресурсами, черно-белым или небольшим дисплеем и т.п. Единожды сверстанная книга должна быть максимально удобной в любой среде.
 +
 +
 +
'''Основные отличия''' от fb2 находятся не в области идеологии, а в области технологических решений. Коротко о наиболее важных отличиях отметим:
 +
* fb3-файл теперь является по сути zip-архивом, в котором упакованы отдельными файлами мета-информация, картинки и текст. Требования к формату zip-файла и соглашения об именах файлов, их размещении и организации описаны в стандарте [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376 Part 2]
 +
* Мета-информация выносится в отдельный файл, тело книги и сноски - в другой файл
 +
* Все картинки выносятся из XML и являются, в конечном счете, файлами в архиве
 +
* Связи документа с файлами осуществляются не через xlink, а в соответствии с описанным в OPF механизмом ''отношений'' (Relationships)
 +
* Помимо ряда мелких нововведений в форматирование (разрядка, подчеркивание) добавляется принципиально новый объект "блок", выпадающий из общего течения документа и оформляющий произвольный фрагмент книги в виде четырехугольника, который может иметь границу, внедряться в текст с обтеканием и иметь некоторые другие особенности размещения.
 +
* Часть тегов, имеющих смысловые аналоги в HTML, будет переименована, к примеру emphasis превратится в em.
  
 
== Общая информация о структуре fb3-файла ==
 
== Общая информация о структуре fb3-файла ==
# Файл fb3 представляет собой стандартный zip-архив, допустимые методы сжатия - store (без компрессии) и deflate (совместимый с zlib).
+
В соответствии со спецификацией [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376 Part 2] файл fb3 будет представлять собой стандартный zip-архив, допустимые методы сжатия - store (без компрессии) и deflate (совместимый с zlib). Имена файлов в архиве сравниваются без учета регистра, изначально зарезервированы имена файлов:
# Все файлы внутри архива имеют латинские имена в нижнем регистре.
+
* /[Content_Types].xml
# В корне архива ''может'' присутствовать ''один'' из файлов cover.png/cover.jpg, содержащий обложку документа для быстрого отображения. Размер этой картинки не больше, чем 240*240. Полноразмерная обложка может размещаться в другом файле (описывается в fb3_meta.xml, см. ниже).
+
* /_rels/.rels
# В корне архива ''обязательно присутствует'' файл fb3_book.xml, содержащий описание и структуру документа.
+
Файл /_rels/.rels адресует файл-обложку (thumbnail) для всего fb3-пакета и как минимум один файл дескрипшна книги. Дескрипшн книги, в свою очередь, связан с телом книги и своей собственной обложкой, а тело книги связано со всеми включенными в него объектами. Все связи описываются стандартными средствами OPC (ECMA-376 Part 2, раздел 8.3 Relationships).
# В корне архива ''может присутствовать'' файл fb3_marks.xml, содержащий заметки/закладки.
+
# Все прочие файлы в архиве должны быть прямо или косвенно указаны в одном из перечисленных выше *.xml-файлов (например, каждая картинка должна быть использована в документе, если она попала в архив).
+
# Наличие в zip-архиве файлов (помимо указанных выше), не описанных в документе, является некритической ошибкой. При обработке файла о данной ошибке редактор должен обязательно выдавать предупреждение. Читалка должна игнорировать лишние файлы.
+
# Ссылки на отсутствующие файлы, используемые в документах, являются некритической ошибкой. И читалки, и редакторы должны выдавать сообщение об ошибке или иным образом ясно информировать пользователя о недостающих файлах.
+
# В качестве графических форматов будет поддерживаться gif/png/jpg
+
  
== .xml-файлы в архиве ==
+
В качестве графических форматов будет поддерживаться gif/png/jpg/svg (SVG 1.1 Basic)
'''fb3_meta.xml''' содержит:
+
* Метаинформация: название документа (пустое название недопустимо, редактор не должен позволять сохранять такой документ), авторы, жанр, etc. В основном повторяет дескрипшн fb2, со следующими отличиями:
+
** Упразднен src-title-info (иоформация библиографического характера будет отдельно обрабатываться, в книге ей делать нечего)
+
** Тег translator упраздняется
+
** Тег author в title-info получит новый атрибут role, который будет принимать значения author|translator|compiler|illustrator|editor. Тег translator упраздняется, соответственно.
+
** Добавлен необязательный book-sub-title для сложных заголовков.
+
** Новый тег quick-annotation для короткого (120 символов, к примеру) анонса
+
** Новый порядок тегов title-info:
+
**# coverpage
+
**# book-title
+
**# book-sub-title
+
**# sequence
+
**# author
+
**# genre
+
* Структура документа: дерево секций, объединенных.
+
** Оконечные (содержащие текст) секции будут храниться в отдельных файлах, которые описываются в виде атрибута xlink:href.
+
** Для всех секций возможно указание обложки, картинки, title, subtitle, id.
+
  
'''text#.xml''' ? множественные файлы с текстом секций. Аналогичны содержимому оконечных секций в fb2 с небольшими расширениями. Имена и размещение файлов в архиве не оговаривается, но все они должны быть корректно адресованы через атрибут xlink:href секций в файле fb3_meta.xml. Нововведения по отношению к fb2:
+
Более детальное описание требований к zip-архиву, механизмов связывания, кодировок и ограничений на именование файлов в архиве можно найти в стандарте [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376 Part 2].
* Нумерованные и ненумерованные списки
+
* Блоки, выпадающие из общего потока, с атрибутами float, align, width. Возможно, с разрешенной вложенностью. Возможно, с бордерами. К примеру <block float="left" width="40em" align="right">&lt;p>тутатекст&lt;/p></block>.
+
* Убирается inline-элемент code, добавляется block-элемент code, аналог p.
+
* Картинки больше не хранятся в XML, лежат в архиве, отдельно.
+
* Сноски будут типизированные. Выделяются концевые и подстраничные. Читалке желательно отображать сноски соответственно.
+
* Сноски выделяются в отдельный section (или в несколько), и отделяются друг от друга не секциями, а новым тегом <note>
+
  
'''fb3_marks.xml''' содержит закладки ? указывается адрес закладки (с точностью до символа, отмечается начало выделения и конец), тип закладки (закладка, заметка, правка). Адресация с использованием xpointer, в закладке может содержаться текст, аналогичный содержимому секций.
+
== Файл мета-информации ==
 +
Подробно изучить структуру и возможности fb3 в описании книги можно на примере файла /fb3/description.xml из [http://www.gribuser.ru/xml/fictionbook/3.00/example.fb3.zip архива с примером fb3-книги]. Большинство полей там снабжены русскоязычными комментариями. Из существенных нововведений по отношению к fb2 отметим:
 +
* Блок описания периодических изданий (журнал такой-то, номер такой-то)
 +
* sub-title - подзаголовок, позволяет описывать более сложноорганизованные названия
 +
* Унифицированный механизм описания авторов, переводчиков, иллюстраторов и прочих, имеющих отношение к книге, субъектов.
 +
* Возможность описывать связанные объекты: книги, с которых сделан перевод, приложения, продолжения, та же книга на другом носителе (аудиокнига) и т.п.
 +
* Добавлена информация о целевой аудитории и об описываемом периоде
 +
Большая часть новых полей логически совместима со стандартами RUSMARC и USMARC
 +
 
 +
== Файл с текстом книги ==
 +
Пример можно найти в примере fb3-документа, в файле /fb3/body.xml, где большинство новинок проиллюстрированы примерами применения и комментариями. Основные нововведения по отношению к fb2:
 +
* Нумерованные и ненумерованные списки
 +
* Блоки, выпадающие из общего потока, с атрибутами float, align, width, border. К примеру <block float="left" width="40em" align="right">&lt;p>тутатекст&lt;/p></block>.
 +
* Убирается inline-элемент code, добавляется block-элемент code, родительский по отношению к p.
 +
* Сноски более гибко типизируемые. Допускается "подсказывать" читалке, как следует отображать сноски, следует ли переоформлять номера сносок средствами читалки и какие сноски концевые и подстраничные.
 +
* Сноски выделяются в отдельный узел notes, и оформляются не как секции, а новым тегом <note>
  
 
== Пример содержимого fb3-архива: ==
 
== Пример содержимого fb3-архива: ==
Строка 50: Строка 56:
 
  | -> fb3-файл, де-факто ZIP-архив
 
  | -> fb3-файл, де-факто ZIP-архив
 
  |-
 
  |-
  | &#160;&#160;&#160;'''fb3_meta.xml'''
+
  | &#160;&#160;&#160;'''[Content_Types].xml'''
  | -> Обязательный файл в архиве, содержит метаинформацию и структуру
+
  | -> Обязательный файл в архиве, содержит описание MIME-типов для всех размещенных в архиве файлов
 +
|-
 +
| &#160;&#160;&#160;'''cover.jpg'''
 +
| -> Обложка всей книги, для быстрого доступа программ-читалок
 +
|-
 +
| &#160;&#160;&#160;'''_rels/.rels'''
 +
| -> Обязательный xml-файл в архиве. В нем ссылки на обложку, файл(ы) мета-информации и прочее.
 
  |-
 
  |-
  | &#160;&#160;&#160;'''cover.png'''
+
  | &#160;&#160;&#160;'''fb3/description.xml'''
  | -> Необязательный файл в архиве, содержит малоразмерную версию обложки
+
  | -> Файл с мета-информацией
 
  |-
 
  |-
  | &#160;&#160;&#160;'''text.dir'''
+
  | &#160;&#160;&#160;'''fb3/_rels/description.xml.rels'''
  | -> Папка, в которой лежат тексты (могли лежать и в корне, но так нагладнее)
+
  | -> Файл со связями данной карточки книги - указывается обложка и файл с текстом книги
 
  |-
 
  |-
  | &#160;&#160;&#160;&#160;&#160;&#160;'''part1.xml'''
+
  | &#160;&#160;&#160;'''fb3/body.xml'''
  | -> Первая секция (у нас всего две текстовых секции в тексте)
+
  | -> Файл с текстом книги, сносками
 
  |-
 
  |-
  | &#160;&#160;&#160;&#160;&#160;&#160;'''part2.xml'''
+
  | &#160;&#160;&#160;'''fb3/_rels/body.xml.rels'''
  | -> Втораая секция
+
  | -> Файл со связями текста книги - описываются все использованные картинки
 
  |-
 
  |-
  | &#160;&#160;&#160;'''fb3_marks.xml'''
+
  | &#160;&#160;&#160;'''fb3/marks.xml'''
 
  | -> Заметки/закладки на полях (которые поставила программа-читалка?)
 
  | -> Заметки/закладки на полях (которые поставила программа-читалка?)
 
  |}
 
  |}
 +
[[Категория:FB статьи]]

Текущая версия на 11:24, 6 февраля 2009

Описание формата fb3 (предложение)

Ответственный: Грибов Д.П., grib@gribuser.ru

Первая версия предложена 3 июля 2008 г.
Версия 0.1 от 1 октября 2008 г.

Цель создания формата

Формат fb3 разрабатывается для удовлетворения возросших требований к форматированию текста книг и возможностям их каталогизации. Современное состояние стандартов и технологий позволяет, помимо простого расширения набора тегов, привести формат к совместимости с наиболее удачными и перспективными наработками. В частности, в основу fb3 положен стандарт Open Packaging Convention (ECMA-376 Part 2). Помимо этого в качестве картинок можно использовать SVG-файлы (и GIF-файлы, патент на которые закончился).

Преемственность с форматом fb2

Приоритеты, на которых основан формат fb2, остаются, но частично расширяются:

  • Принцип одна книга - один файл сохраняется. Более того, fb3 полноценно поддерживает "подшивки" - несколько книг в одном fb3-файле.
  • Минимализм форматирования сохраняется, но для работы со сложными документами (например, с учебниками) в fb3 вводится минимально-необходимый набор тегов, обеспечивающий максимальное качество верстки при максимально возможной простоте.
  • Вся мета-информация является неотъемлемой частью файла. В соответствии с возросшими требованиями к полноте и точности мета-информации была разработана новая, прямо не совместимая с дескрипшном fb2, структура.
  • Формат, как и прежде, максимально ориентирован на полноценную и эффективную переносимость текста на любое устройство, с ограниченными ресурсами, черно-белым или небольшим дисплеем и т.п. Единожды сверстанная книга должна быть максимально удобной в любой среде.


Основные отличия от fb2 находятся не в области идеологии, а в области технологических решений. Коротко о наиболее важных отличиях отметим:

  • fb3-файл теперь является по сути zip-архивом, в котором упакованы отдельными файлами мета-информация, картинки и текст. Требования к формату zip-файла и соглашения об именах файлов, их размещении и организации описаны в стандарте ECMA-376 Part 2
  • Мета-информация выносится в отдельный файл, тело книги и сноски - в другой файл
  • Все картинки выносятся из XML и являются, в конечном счете, файлами в архиве
  • Связи документа с файлами осуществляются не через xlink, а в соответствии с описанным в OPF механизмом отношений (Relationships)
  • Помимо ряда мелких нововведений в форматирование (разрядка, подчеркивание) добавляется принципиально новый объект "блок", выпадающий из общего течения документа и оформляющий произвольный фрагмент книги в виде четырехугольника, который может иметь границу, внедряться в текст с обтеканием и иметь некоторые другие особенности размещения.
  • Часть тегов, имеющих смысловые аналоги в HTML, будет переименована, к примеру emphasis превратится в em.

Общая информация о структуре fb3-файла

В соответствии со спецификацией ECMA-376 Part 2 файл fb3 будет представлять собой стандартный zip-архив, допустимые методы сжатия - store (без компрессии) и deflate (совместимый с zlib). Имена файлов в архиве сравниваются без учета регистра, изначально зарезервированы имена файлов:

  • /[Content_Types].xml
  • /_rels/.rels

Файл /_rels/.rels адресует файл-обложку (thumbnail) для всего fb3-пакета и как минимум один файл дескрипшна книги. Дескрипшн книги, в свою очередь, связан с телом книги и своей собственной обложкой, а тело книги связано со всеми включенными в него объектами. Все связи описываются стандартными средствами OPC (ECMA-376 Part 2, раздел 8.3 Relationships).

В качестве графических форматов будет поддерживаться gif/png/jpg/svg (SVG 1.1 Basic)

Более детальное описание требований к zip-архиву, механизмов связывания, кодировок и ограничений на именование файлов в архиве можно найти в стандарте ECMA-376 Part 2.

Файл мета-информации

Подробно изучить структуру и возможности fb3 в описании книги можно на примере файла /fb3/description.xml из архива с примером fb3-книги. Большинство полей там снабжены русскоязычными комментариями. Из существенных нововведений по отношению к fb2 отметим:

  • Блок описания периодических изданий (журнал такой-то, номер такой-то)
  • sub-title - подзаголовок, позволяет описывать более сложноорганизованные названия
  • Унифицированный механизм описания авторов, переводчиков, иллюстраторов и прочих, имеющих отношение к книге, субъектов.
  • Возможность описывать связанные объекты: книги, с которых сделан перевод, приложения, продолжения, та же книга на другом носителе (аудиокнига) и т.п.
  • Добавлена информация о целевой аудитории и об описываемом периоде

Большая часть новых полей логически совместима со стандартами RUSMARC и USMARC

Файл с текстом книги

Пример можно найти в примере fb3-документа, в файле /fb3/body.xml, где большинство новинок проиллюстрированы примерами применения и комментариями. Основные нововведения по отношению к fb2:

  • Нумерованные и ненумерованные списки
  • Блоки, выпадающие из общего потока, с атрибутами float, align, width, border. К примеру <block float="left" width="40em" align="right"><p>тутатекст</p></block>.
  • Убирается inline-элемент code, добавляется block-элемент code, родительский по отношению к p.
  • Сноски более гибко типизируемые. Допускается "подсказывать" читалке, как следует отображать сноски, следует ли переоформлять номера сносок средствами читалки и какие сноски концевые и подстраничные.
  • Сноски выделяются в отдельный узел notes, и оформляются не как секции, а новым тегом <note>

Пример содержимого fb3-архива:

Book.fb3 -> fb3-файл, де-факто ZIP-архив
   [Content_Types].xml -> Обязательный файл в архиве, содержит описание MIME-типов для всех размещенных в архиве файлов
   cover.jpg -> Обложка всей книги, для быстрого доступа программ-читалок
   _rels/.rels -> Обязательный xml-файл в архиве. В нем ссылки на обложку, файл(ы) мета-информации и прочее.
   fb3/description.xml -> Файл с мета-информацией
   fb3/_rels/description.xml.rels -> Файл со связями данной карточки книги - указывается обложка и файл с текстом книги
   fb3/body.xml -> Файл с текстом книги, сносками
   fb3/_rels/body.xml.rels -> Файл со связями текста книги - описываются все использованные картинки
   fb3/marks.xml -> Заметки/закладки на полях (которые поставила программа-читалка?)