Thoughts on nine months of producing 3pub files

Mock three pub logoWith Hachette’s recent announcement that they’re committed to going all-epub 3.0 by next March and the buzz surrounding iBooks 3.0 (which offers some slightly extended support of epub 3.0), there’s been a lot of interest lately in the production of epub 3.0 files. At Digital Bindery, we’ve been producing epub 3.0 instead of epub 2.0.1 since February, when we gave our “Down and Dirty epub 3.0” talk at O’Reilly’s Tools of Change conference. We thought we’d share some of the insights we’ve gleaned over the past nine months.

One of the biggest questions we’re asked when people hear about our going with 3pub as our in-house standard is “What systems support epub 3.0?” The answer to that, happily, is “All the ones we’ve tested.” We have a fair collection of readers here, and everything, going back to the 1st generation nook and an ancient PRS-600 Sony Reader, will display an epub 3.0 just as well as an epub 2.0.1. The only thing that you have to do to make sure that the older systems can use the newer format is to include a toc.xhtml file in addition to the toc.ncx file. These are navigational files that supply the built-in table of contents. Old systems look for the toc.ncx, and new systems will ignore the toc.ncx if they see a toc.xhtml, so if you’ve got both, you’re set.

Now, just because the older devices can open the newer file format doesn’t mean that your old nook will suddenly be able to play video, or that your bookeen will grow speakers and play audio for you—there are still hardware requirements. It does mean, though, that the reading system won’t just throw a fit and break down when you try to open the file. Instead, you’ll just get an error message where the video or audio should be, just as intended. This holds true for all of the other optional parts of the epub 3.0 spec, like scripting, triggers, and media overlays. Content in elements like aside or other HTML 5 elements will still show up and be stylable on older epub reading systems too, so no worries there.

The semantic advancements in epub 3 also cause no problems, even if there’s no functionality associated with them in earlier reading systems (and even most current ones, though that’s a matter for another post). You can still pepper your document with epub:type, even going so far as to mark up the topic sentences of every paragraph if you like. That markup will be ignored by older reading systems that don’t support it, and will be used by newer ones that do. When they come out.

Long story short, there’s no reason not to have your books in epub 3.0 instead of epub 2.0.1. The only downside to going with epub 3.0 is that you have to have a certain amount of duplication in your file—both a toc.ncx and a toc.xhtml, both a guide and a landmark nav list, and that sort of thing. This sort of duplication is pretty easy to do programmatically, so it isn’t a big deal. The big benefit of getting files into epub 3.0 is getting used to working with the format and getting your workflow in place so that when you have content that does require some of the new bells and whistles, you can be ready to produce it.