title_body: How do I build multiple ebooks using common blocks of content and styling, such as title pages and CSS? I work in a university program with around 30 units, each of which produces a learning guide of 80 to 120 pages. Currently we supply them as pdf files, but I want to move to an epub (HTML/CSS) based solution so that I can set the styles once and have more semantically structured, reflowing text.
  
  Each guide has a lot of commonality, such as the styling, title page header, introduction pages, etc. I am looking for a workflow and tools that allow me to reuse this content in every guide without too much manual effort.
upvoted_answer: Assuming you're familiar with HTML and CSS, and given that your content has a lot of commonality to it, it would be fairly straightforward to set up a template file with all the parts you need for an ebook. You could, for example, have a template made of files like this:
  
  cover.xhtml
  title.xhtml
  toc.xhtml
  prologue.xhtml
  intro.xhtml
  chapter.xhtml
  appendix.xhtml
  index.xhtml
  about_the_author.xhtml
  style.css
  content.opf
  (toc.ncx)
  images/cover.jpg
  
  
  The toc.ncx is optional but suggested (as noted elsewhere on this site) to ensure usability on older reading systems. The content.opf and both toc files have specific requirements for the content, as they're epub-required navigational files. The other XHTML files must be valid, but otherwise are more flexible in terms of content. The content of those template files could look like: 
  
  &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops"&gt;
  &lt;head&gt;
  &lt;title&gt;&lt;/title&gt;
  &lt;link href="style.css" rel="stylesheet" type="text/css" /&gt;
  &lt;/head&gt;
   &lt;body&gt;
  
   &lt;/body&gt;
  &lt;/html&gt;
  
  
  The navigational files would have to have the information about the other files added to them each time, but that is fairly automateable with a minimum amount of scripting in a language like Ruby or Python.
  
  In your CSS file, you could have default styles already built for the things you use all the time. You could even have default boilerplate styles at the top of the CSS file for all the basic element type (&lt;p&gt;, &lt;li&gt;, and so on) and then just add other CSS rules at the bottom of the file as needed&mdash;since the styles cascade, the ones at the bottom would overwrite the ones at the top if there were any conflicts.
  
  All that's left from there is getting your document from whatever format the editors are using into HTML so that you can apply all the tags and then pass it along to the designers (unless you're doing ebook-last, in which case the issue is getting the file from whatever the designers use to HTML).
  
  Hope that helps!