5. Корректная структура документа (тонкости)
5. Корректная структура документа (тонкости)
Мы не будем описывать здесь всю схему FictionBook2.1, а только те моменты, которые очень важны для правильной разметки структуры конвертируемого документа. Лишь в случае правильной разметки структуры экспорт произойдет без единой ошибки и править в полученном fb2 документе вообще ничего не надо будет, за исключение моментов, описанных в п. 5.
Итак, что такое "правильная" разметка структуры? Когда мы придаем отдельным абзацам определенные стили (поэма, цитата, заголовок (уровень), аннотация и т. д.) мы формируем структуру документа. А эта структура должна соответствовать схеме FictionBook2.1. Иначе документ сконвертируется, но валидацию не пройдет. Например: в книгах часто идет аннотация, а потом – эпиграф. Но, согласно схеме FictionBook2.1 должно быть наоборот – сначала эпиграф, а потом – аннотация. Если вы сделаете как в книге, а не по схеме – документ будет невалидный, и online-библиотеки, если не ошибаюсь, его не примут.
А теперь чуть подробнее.
Структуру документа, условно, можно разбить на два блока: 1. От названия книги и до самого первого заголовка (части, раздела) – мы называем это "Уровнем". 2. От этого самого первого заголовка и до конца документа. В этих двух блоках обрамление текста тэгами ‹section› несколько отличается.
5.1. Блок от начала книги до первого заголовка (уровня)
В 1-м блоке самым первым элементов должен быть Эпиграф, если он нужен. За ним могут идти еще несколько Эпиграфов, если они нужны, потом – Картинка, если она нужна, потом – Аннотация, если она нужна. При этом между всеми этими элементами не должно быть ни одной пустой строки! Иначе документ получится невалидным.
Теперь могут идти следующие элементы структуры в любом порядке: Просто абзац текста, пустая строка, Поэма, Цитата, Подзаголовок (SubTitle), Таблица, Картинка Схематично все это можно представить так (в квадратные скобки [] взяты необязательные элементы, в круглые () – названия стилей для создания структуры документов, жирным выделены элементы, которых может быть любое количество), синим цветом – элементы, которые могут идти в любом порядке:
5.2. Блок от первого заголовка (уровня) до конца документа
Во 2-м блоке дело обстоит немного по – другому.
2-й блок начинается с самого первого Уровня – Части книги, Раздела книги или просто заголовка. Уровней заголовков может быть 10 (стиль Level 1… Level 10) (хотя программно можно очень легко их увеличить хоть до бесконечности – особенность алгоритма). В книге может быть такая структура:
Наши элементы (абзацы, стихи и т. д.) могут быть как между Уровнями разного ранга – 1-й случай, например:
так и между Уровнями одного ранга (номера) – 2-й случай, например:
5.2.1. Смежные Уровни разного ранга (номера)
Для 1-го случая с Уровнями разного ранга схема немного другая, чем для блока от начала книги до первого заголовка (уровня). Отличие состоит лишь в том, что между уровнями может вообще не быть никаких элементов (стихов, абзацев…). Т. е. схема расположения элементов структуры такая же, как и для 1-го блока:
5.2.2. Смежные Уровни одного ранга (номера)
Для 2-го случая между Уровнями одного ранга должен быть хоть один какой-нибудь элемент, кроме необязательных Эпиграф и (или) Картинка и (или) Аннотация! Схема расположения элементов структуры такая (в двойные скобки { [] } взяты элементы, которые могут и не быть, но хоть один из них обязательно должен присутствовать):
5.2.3. Ошибки при разметке структуры смежных заголовков (уровней)
С другой стороны, если ранги Уровней перепутаны при разбивке структуры, то полученный fb2 документ не будет валидным! Например, нужна такая структура книги:
А мы ошибочно перепутали стили Level 2 и Level 3, и получили такую структуру:
то полученный fb2 документ не будет валидным! Номер следующего (смежного) Уровня по возрастанию не может отличаться от предыдущего более, чем на 1. По убыванию – как угодно. Поэтому, при разметке структуры будьте очень внимательны!
Таким образом, если документ отформатирован стилями в соответствии с этими правилами, диктуемыми схемой fb2.1 будет сконвертирован без единой ошибки и пройдет валидацию.
Для проверки всего этого, а также других возможностей данного конвертера создан файл ExportToFB21_Test.odt. Сконвертируйте его в fb2 документ.