/TextbookHTML

Let's write textbooks in HTML!

Primary LanguageXSLTMIT LicenseMIT

TextbookHTML

Let’s write textbooks in HTML! TextbookHTML is an open, HTML5-based standard for the authoring and production of both print and digital textbooks. TextbookHTML is a fork of OReilly Media’s HTMLBook for Docbook. Where possible TextbookHTML just extends HTMLBook with additional semantic features like homework problems.

Read the Working Draft of the TextbookHTML Specification here:

https://github.com/oerpub/TextbookHTML/blob/master/specification.asciidoc

Original HTMLBook README which mostly applies directly

Let’s write books in HTML! HTMLBook is an open, HTML5-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 HTML5, but not all HTML5 is HTMLBook.

  • HTMLBook contains no additional elements or attributes outside of the HTML5 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:

https://github.com/oreillymedia/HTMLBook/blob/master/specification.asciidoc

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!