/HTMLBook

Let's write books in HTML!

Primary LanguageXSLTMIT LicenseMIT

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:

http://oreillymedia.github.io/HTMLBook/

Get the HTMLBook schema here:

https://github.com/oreillymedia/HTMLBook/tree/master/schema

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!