My Blog

Hands-on digital publishing with XSLT 2018


Do you have some Word, ODF, or XML documents, maybe with some images or videos,
that you want to publish to the web or publish as an epub? Do you want to learn
more XSLT? Do you want to know how to turn Word or XML documents into HTML? This
course will show you how to use XSLT2 to make a good-looking website or epub
from your Word or XML documents. This is a hands-on course that follows on from
the Hands-on Introduction to

We’ll use XSLT 2 to transform sample Word and XML files into HTML5, learning lots
of techniques along the way. We’ll style the pages to look good using CSS, using
a modern responsive framework that includes grids and javascript. We’ll show you
how to create an epub from the HTML and CSS and how to use Ruby as a scripting
language to automate the process, so you can easily make changes and create new
versions of the final product. We will supply computers with the software
installed, and you can take the code you develop home with you.

Prerequisites: You should know at least as much XSLT as is taught in the Hands-on Introduction to
, but advanced XSLT knowledge is not necessary. We do not expect you
to know any scripting languages, although experience in Perl, Python, Ruby, or
some other scripting language is an advantage. We’ll teach you enough to give
you a good introduction to how powerful even a small amount of scripting can

This course is chaired by Lauren Wood and taught by Lauren Wood, Matt Patterson, Norm Walsh, and Peter Flynn.

Classes for 2018

The Hands-on Digital Publishing With XSLT course runs on

HTML and CSS: framework for websites and ePubs

Taught by Lauren Wood.

HTML5 is now the basis of both websites and ePubs. There is a lot of choice in
which elements to use and how to use them. This class will show some of the most
important elements in HTML5 and introduce you to some of the newer concepts.
Most websites these days use some sort of framework and we’ll introduce you to
some of the most popular. We’ll also cover how to write HTML5 that is compatible
with XML.

CSS3 is used as the basis for styling both modern websites and ePubs. It has
features to enable designs that look good on a desktop browser, your smartphone,
or another mobile device. This class will cover many of the useful features in
CSS3, as well as some of the common design frameworks and the design principles
used in creating sites that look good on multiple screen sizes.

Exercise: On paper, you’ll mock up some of the basic features of a web
site. You’ll annotate this with HTML elements and preliminary ideas on

Converting XML to HTML

Taught by Norm Walsh.

There are certain things to watch for when converting XML to HTML. For standard
schemas there are often existing transformation stylesheets that are far more
than you need for your website or your ePub. This class will present guidelines
for converting from a standard XML format to the HTML that you need.

Exercise: We will provide some XML sample files for you to convert to HTML
using XSLT, and the basic stylesheet to get you started.

Word and other sources of XML — Maintaining a flow of information

Taught by Peter Flynn.

Word and Libre Office files are often inputs to the publishing process, but by
default they are intended to be read by humans, not programs. Both of them use
largely ‘flat’ XML to store the content and appearance, without much of the
hierarchy or containment needed for a production environment. But both systems
have Named Styles available which authors and editors can use to provide both
formatting and functional identity.

The first part of the class uses the XML feaures of Word and Libre Office to
present some guidelines for optimising the document styling with minimal
editorial intervention. A worked example is combined with exercises to create a
styled document ready for input.

The second part explains some of the techniques for transforming styled
wordprocessor files with XSLT2 into a target XML format. Often this will be
XHTML, but it could equally be DocBook, TEI, JATS, or another common vocabulary.
Techniques covered include the imposition of containment, getting the most out
of the document content, and the use of intermediate formats. The final exercise
is to write the XSLT2 to transform the example document from the earlier

We provide some helper functions and model solutions. This class is based on
XSLT2, and uses features not available in XSLT1.

Creating ePubs

Taught by Peter Flynn.

The core (preferred) ePub syntax has a substantial overlap with XHTML, but the
features available are restricted by the limitations of reader devices and apps.
Recent changes have simplified some of the ePub structure, but there are still
many users requiring older systems, which presents challenges for the publisher.

This class explains how to get around some of the restrictions, and how to use
XSLT2 to create the different files needed It also looks at some of the
additional features and the ancillary structures which make an ePub work, and
provides enough information to let you create an ePub in the hands-on exercise.

Automate, script, and unzip

Taught by Matt Patterson.

There are lots of steps involved with creating a website or ePub. Many of these
can be automated using a scripting language. This class will show you how to use
Ruby to automate those small tasks such as pulling the actual XML out of a Word
XML file (which is really a zip file), copy the file to another directory, and
run the XSLT transformation.