Uncategorized
     

Создание ePub Книги из HTML

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

Это был именно тот перекресток, на который я оказался при попытке создать ePub-версию моей книги. Каждая глава книги была представлена уникальной веб-страницы, и мне нужен автоматизированный способ быстрой загрузки всех этих и объединения их в электронную книгу. Чтобы сделать вещи более интересными, только часть каждой страницы было необходимо — кто хочет видеть заголовок веб-страницы, footer, и навигационный бар на ePub? Кроме того, изображения должны быть загружены и встроены в ePub, а фрагменты кода Github Gist должны быть загружены и представлены без использования тегов Javascript Github.

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

Представляем html2epub

Этот новый инструмент называется html2epub и является приложением командной строки, которое может:

  • Создание профессионально выглядят ePub из серии веб-страниц
  • Стрип из ненужных HTML
  • Преобразование HTML в XHTML для соответствия спецификации ePub
  • Встраиваемые изображения
  • Вставлять фрагменты кода Gist
  • Перепишите главу на главу ссылки для надлежащей навигации ePub
  • Поддержка навигации по таблице содержимого
  • Поддержка проверки подлинности на основе форм

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

 

Начало работы

На macOS установка html2epub значительно упрощается brew. Просто запустите:

brew install jwhitehorn/brew/html2epub

Это позволит загрузить и установить htmlepub, и его зависимостей, и зарегистрировать команду в PATH. С этим завершена, вы можете создать ePub так же легко, как:

html2epub --url https://www.datasyncbook.com \
    --toc ./example/toc.xhtml \
    --cover ./example/cover.png \
    --contents ./example/contents.json \
    --title "Data Synchronization" \
    --subtitle "Patterns, Tools, & Techniques" \
    --author "Jason Whitehorn"

То есть, если у вас есть несколько файлов конфигурации уже — которые мы обсудим в данный момент. Обоснованием этого является то, что я предпочел бы иметь инструмент, который было легко вызвать снова и снова, в течение длительного времени, даже если это означало создание нескольких файлов config с самого начала. В частности, как я пишу Data Synchronization: Patterns, Tools, & Techniques, мне нужен был простой способ повторного создания ePub распределения, как новый контент публикуется.

Есть три файла, которые вам нужно — давайте обсудим их в порядке простоты.

 

Изображение обложки

Ни одна профессиональная электронная книга не обходится без изображения обложки. Параметр —cover диктует путь для использования для указания именно этого. Этот файл будет встроен в электронную книгу, поэтому рекомендуется веб-безопасный формат, такой как PNG или JPEG.

 

Таблица содержимого

Это одна из областей, где я вижу этот инструмент развивается, но на данный момент, таблица содержимого, как указано в —toc аргумент, является XHTML файл прямо из спецификации ePub — гадость!

К счастью, таблица содержания не является чем-то, что является слишком сложным в большинстве книг, и она не должна сильно отличаться. Вот пример того, как можно было бы выглядеть:

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

 

Contents.json

Это представляет собой ядро того, что html2epub необходимо успешно генерировать ePub. Давайте посмотрим на образец файла, прежде чем обсуждать дальше:

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

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

 

В заключение

Там у вас есть, простой, но эффективный инструмент для генерации ePubs с веб-сайтов. Есть несколько аспектов этого инструмента, которые являются менее идеальными, такие как обработка входа и таблица содержимого, но в целом он уже сэкономил мне время — и я должен был построить штопать вещь 🙂

Сам инструмент является бесплатным и с открытым исходным кодом — проверить его на github. Я, несомненно, будет продолжать укреплять его, как мое использование продолжается, но в краткосрочной перспективе моя цель состояла в том, чтобы сделать ePubs для моей книги, а не писать ePub поколения инструментов, поэтому я не могу обещать какой-либо конкретной дорожной карты функции.

Как всегда, мысли, отзывы и критика всегда приветствуются.

 

About Jason

Джейсон является опытным предпринимателем и разработчиком программного обеспечения, квалифицированным в области лидерства, мобильной разработки, синхронизации данных и архитектуры SaaS. Он получил степень бакалавра наук (B.S.) в области компьютерных наук в Университете штата Арканзас.
View all posts by Jason →

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *