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!