Skip to content

oreillymedia/HTMLBook

Repository files navigation

HTMLBook

Let’s write books in HTML! HTMLBook is an open, XHTML5-based standard for the authoring and production of both print and digital books. HTMLBook is built on the following premises:

  • Books are timeless. The basic "book" structure has persisted for hundreds of years and will continue to persist for our lifetimes, be it in digital or print form.

  • HTML is the markup language of the world for the foreseeable future.

  • Single-source document processing will remain valuable for the foreseeable future.

As such, HTMLBook can be characterized in the following ways:

  • HTMLBook is a subset of XHTML5. All HTMLBook is XHTML5, but not all XHTML5 is HTMLBook.

  • HTMLBook contains no additional elements or attributes outside of the XHTML5 specification.

  • HTMLBook is semantically tailored to the structure of a book, including more complex content used in technical and reference documents.

  • HTMLBook is defined with and can be validated against an XML schema.

  • HTMLBook stylesheets are written in CSS.

Getting Started with HTMLBook

Read the Working Draft of the HTMLBook Specification here:

Get the HTMLBook schema here:

The main HTMLBook Schema file is htmlbook.xsd, which imports Schemas (via W3C) for MathML and SVG validation.

You can validate HTML documents against htmlbook.xsd on the command line using xmllint:

$ xmllint --noout --schema htmlbook.xsd <your_html_filename>.html

Alternatively, to validate in a GUI XML editor like oXygen, add a xsi:schemaLocation declaration to the root <html> element as follows:

<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.w3.org/1999/xhtml ../schema/htmlbook.xsd"
 xmlns="http://www.w3.org/1999/xhtml">

Notes on HTMLBook

  • The HTMLBook specification is currently in Working Draft status, and will continue to be developed and revised for the foreseeable future.

  • If you have any bugs or feature requests for HTMLBook, please submit them via the Issues tab in GitHub.

  • In the coming months, we will be adding additional tools to the HTMLBook project for authoring and producing books with HTMLBook: CSS stylesheets, scripts for generating EPUB/Mobi, etc.

  • If you would like to contribute to the HTMLBook project, send us a pull request!