Today I learned ePub is just HTML/CSS

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • calibre

    The official source code repository for the calibre ebook manager

  • I found this out last week when I bought a Kobo Forma and started converting all of my favourite Markdown documents to epub to stick on there. Calibre even lets you create a TOC by specifying the header regex (#, ##, etc for Markdown), it's great! had to edit a few manually to tweak layout and Calibre (https://calibre-ebook.com/) has a nice editor for epubs built in.

  • leech

    Turn a story on certain websites into an ebook for convenient reading

  • It's all at a very approachable level, too. I had to write an epub-maker as a necessary component for a project, and it turned out to be ~150 lines of python. You have to make a few indexes in XML and stick them into a zip file, basically.

    https://github.com/kemayo/leech/blob/master/ebook/epub.py

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • epub_builder

    Python Epub builder utility class...

  • Hey I did this, too! I forgot until just now :)

    https://github.com/phuff/epub_builder

    I built it because I wanted to have something that made a daily brief news paper that was personalized and sent to my kindle. It makes an epub and uses kindlegen to convert it to a .mobi. There's a lot of fun epub formatting stuff you can do.

    Here's the system that makes the daily newspaper, but it's been so long I'm not sure it's actually functional code outside of my production version:

    https://github.com/phuff/steward

  • steward

    Your Customized Personal Information Steward (by phuff)

  • Hey I did this, too! I forgot until just now :)

    https://github.com/phuff/epub_builder

    I built it because I wanted to have something that made a daily brief news paper that was personalized and sent to my kindle. It makes an epub and uses kindlegen to convert it to a .mobi. There's a lot of fun epub formatting stuff you can do.

    Here's the system that makes the daily newspaper, but it's been so long I'm not sure it's actually functional code outside of my production version:

    https://github.com/phuff/steward

  • epubjs-reader

    Epub.js Reader

  • There's a few JS libraries that allows you to basically have the same functionality, example: https://github.com/futurepress/epubjs-reader/

  • tools

    The Standard Ebooks toolset for producing our ebook files. (by standardebooks)

  • I'll give a shoutout to some other excellent software.

    The first is the "Standard Ebooks"[1] toolset, which is a suite of Python scripts to create, process, and build ebooks in all common formats. The results on the Standard Ebooks site speak for themselves. They're impeccable in every way, and far better than many big name, commercially produced efforts.

    GitHub: https://github.com/standardebooks/tools

  • Sigil

    Sigil is a multi-platform EPUB ebook editor

  • How to use: https://standardebooks.org/contribute/producing-an-ebook-ste...

    The second is Sigil, which is a great editor if you prefer to work with a GUI:

    GitHub: https://github.com/Sigil-Ebook/Sigil

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • web

    The source code for the Standard Ebooks website. (by standardebooks)

  • How to use: https://standardebooks.org/contribute/producing-an-ebook-ste...

    The second is Sigil, which is a great editor if you prefer to work with a GUI:

    GitHub: https://github.com/Sigil-Ebook/Sigil

  • epub3-samples

    EPUB 3 Sample Documents

  • I've worked on a ePub parse and renderer and the issues you're describing sound pretty familiar.

    The three main components of the ePub (aside from the actual pages) are the TOC, the spine and the manifest. The manifest basically tells you where everything is, the TOC is the table of contents which can link to various pages and the spine gives you the traversal order.

    Some mistakes I've seen are using the TOC to traverse the book. Using the spine to traverse the book but not handling hidden pages properly. Not handling two page spread properly.

    So yeah the spec is nuanced and it would be easy to make a reader that worked with a lot of books but then had weird issues on another set of books that aren't particularly different.

    I recall using this repo (https://github.com/IDPF/epub3-samples) to test specific functionality to make sure it was in line with the spec.

  • PyQtGraph

    Fast data visualization and GUI tools for scientific / engineering applications

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts