Очерки

Публикация книги в системы электронных книг Литрес и Ридеро

Решил записать по свежей памяти мои мучения по загрузке рукописи книги в системы электронной публикации книг Литрес и Ридеро. Вы можете пропустить описание процесса и состояния этих систем, если вас интересует только рекомендации по оформлению для них — они собраны в последнем разделе.
Глубоко ночью14-е мая я наконец-то смог загрузить целиком книгу «Карта процесса-опыта» и опубликовать её на сервисах Литрес и Ридеро. На подготовку подходящего к загрузке варианта для Литрес у меня ушло не меньше трёх недель. Я не шучу, это была работа где-то по полчаса-часу в день. Мягко говоря, я устал её загружать.
Ребят, кто работает в Литрес, вы меня простите, конечно, но то, что вы создали сейчас выглядит как анти-сервис для авторов. Вероятно Литрес пользуются своей почти монопольной позицией и считает, что автор ещё должен заслужить право пользоваться площадкой, пройдя через страдание. Я несколько раз боролся с желанием бросить их и публиковать только в Ридеро, но мне хотелось дойти в этот раз до конца.

Нищета средств современных систем публикации

Моя книга изначально была сложна по структуре и по количеству в ней разных приёмов вёрстки. Всё это пришлось выкинуть к чертям, чтобы соответствовать допотопной машине вёрстки Литрес. В Ридеро чуть больше свободы: есть на один уровень заголовков больше (но вероятно только в платной версии) и можно сносно редактировать книгу даже в бесплатном редакторе. Но, посудите сами, у современных систем публикации электронных книг нет даже таких простых способов вёрстки как плоский список и таблица. Я молчу уж про многоуровневые списки, их нет даже на Медиуме. Нет поддержки векторной графики. В общем, всё то, что веб-технологии завоевали и подарили миру в виду, например, прекрасного формата epub, нашим площадкам недоступно. (Если вы скачиваете epub на этих площадках, то он генерируется из этой допотопной вёрстки, и, вы уж мне поверьте, epub мог бы быть куда лучше, но его возможности не используются, потому что всё вырезано на уровне загружаемого исходника).
Все существенные правки я производил через перезагрузку файла, который система Литрес не спешила принимать. Я видел сообщение о том, что файл не загружен, вероятно раз триста. Когда у меня заканчивались идеи по поводу того, что же там не так, и я в очередной раз прочитывал их блог и ЧаВо о том, что делать, если загрузка не удаётся, оставалось только писать в поддержку. Правки через поддержку идут через две линии. Отправляю письмо с констатацией проблемы, девушка с первой линии поддержки переправляет его «техническому специалисту», тот спустя время отвечает ей, а она мне. Чудовищно долго и малорезультативно, потому что технический специалист вместо исчерпывающего анализа даёт первые три комментария с припиской «для начала» и отправляет их на доработку, тем самым только увеличивая длину петли взаимодействий. В сравнении с Литрес Ридеро просто космическая станция по автоматической генерации книг. Они адекватно считывали и мой автоматически сгенерированный (об этом ниже) doc, и epub, в который Литрес вообще не умеет.
Пока я всё это стоически преодолевал, освоил генерацию из разметки markdown файлов формата docx и epub с помощью утилиты pandoc. То есть мои файлы всегда были технически выверенными с точностью до того как я их разметил. Меня тут спрашивали, почему я не использую LaTex для вёрстки книги. Господи, да эти ребята не умеют даже двойной параграф обрабатывать, зачем мне филигранная точность, когда вокруг тешут топором. Однако теперь у меня есть весьма сносного качества epub моей книги, со шрифтом как в бумажной версии, с тем количеством заголовков, что мне нужно и с векторной графикой внутри. В общем, красоту в очередной раз пришлось приручить самому. Если читатели моей книги купили ее в системах паблишинга, они могут мне написать, и я выдам им этот epub.
В итоге я пришёл к выводу, что следующую книгу я буду писать сразу в раздельных по файлам главах в разметке markdown с автогенерацией черновика в любой момент и в любой формат через pandoc. Это оказалось очень удобным, когда мне пришлось дробить книгу на главы и выяснять как тестировщику чёрного ящика, что же именно не подходит сейчас загрузчику. Кроме того, в такой форме легко использовать систему контроля версий. Вот только к последним никто не придумал нормальных средств для работы редактора и корректора до сих пор. Эх...

Как оформлять файлы загрузки для Литрес и Ридеро

Вот правила, что я вывел из переписки и проб по тому как надо оформлять книги в издательские системы Литрес и Ридеро.
Эти правила сразу относятся и к тому, что ожидает система паблишинга на входе, и к тому как я это организовал в своих файлах разметки.
  • Только два уровня заголовков. Литрес не рекомендует использовать заголовки глубже второго уровня. Это жутко неудобно для автора, кто хочет описать четыре уровня. Посудите сами, после использования двух заголовков к вас есть только полужирное начертание, чтобы хоть как-то оформить заголовки третьего уровня. Мне пришлось жертвовать и оставлять на одном уровне заголовки 3 и 4 уровней. В Ридеро есть раздел, глава и подглавка, но разделы мне не подошли, так что я остался с заголовками двух уровней в обеих системах. Надо отметить, что запрет на использование заголовков не безоснователен. Разработчики паблишинг-систем так борются с тем, что с заголовками книга в читалках дробится на отдельные листы слишком часто, что ухудшит опыт читателей. При этом авторы, кто сам бы хотел следить за этим, остаются со своей неудовлетворённой потребностью.
  • Списков нет, автосписки запрещены. Если хотите использовать списки делайте абзацы с любым маркером списка, кроме дефиса и звездочки. Литрес предлагал булиты, я использовал тире. То есть вы делаете абзац, который начинается с символа булита или тире, а не минуса или звездочки разметки markdown, иначе они превратятся в автосписки, с которыми система не умеет работать
  • Оформление спусков. Когда вам нужно отделить одну часть текста от другой, вы не можете добавлять несколько пустых параграфов, но допустимо сделать перенос строки сразу в начале нового параграфа. Вот как это оформляется в markdown:
Абзац идущий до

\
Абзац который требует вертикального спуска 

Абзац после 
  • Таблиц нет. Разметить в markdown таблицу не выйдет, сервисы их не возьмут. Вставляйте таблицы картинками.
  • Вложенных списков нет. Вставляйте их картинками или обходитесь разметкой одноуровневым списком для внутреннего списка, а элементы внешнего выделяйте полужирным.
  • Нет поддержки SVG. Загружайте картинки в формате PNG.
  • Эпиграфы. В обеих системах есть стиль для эпиграфов, но нигде не описано как их оформлять. Я не нашёл иного способа, кроме как сделать это разметкой вручную уже после загрузки файла. В разметке markdown я использовал цитирование и курсив, чтобы отличить их быстрее в загруженном файле.
  • Картинки должны быть отбиты одним параграфом до и после. Если вы делаете подписи к картинкам, то оформляйтесь их сами сразу под картинкой без отступа в абзац. Я размечал их курсивом следующим абзацем за абзацем с картинкой. Ни одна система у меня не схватывала подписи и ее крепила их к картинкам. Ридеро имеет своё поле для загрузки подписи, но мои подписи туда не попали, пришлось вручную их выгрызать из параграфов под картинкой и вставлять в лунки подписку под картинкой. В итоге я оформлял картинки так:
Абзац идущий до картинки

\
![](ссылка-на-картинку)

Абзац подписи 

Абзац следующий после картинки 
Опытный в markdown читатель отметит, что подписи вероятно могут быть описаны внутри квадратных скобок. Я пробовал этот подход. Так пройдёт с генерацией epub, но не всегда проходит с docx. Например, последние перед заголовком картинки или картинки идущие перед другими картинками останутся без подписей в выгружаемо docx.

Шаблон для генерации книги в epub и docx

Чуть позднее, когда будет время, или, если вы попросите, размещу сюда пример репозитория с шаблоном для генерации книги и строками запуска генератора pandoc.
Опыт