This is a major restructuring of the Electric Book template. It introduces many new features. Notably:
- We've removed the
/text
folder, moving markdown files up into the book folder, alongside theimages
,styles
andfonts
folders. This results in shorter URLs (no/text/
path) that are better for readability and SEO. It also provides a more intuitive mental model for editing, because markdown files are the foundation of the book, onto which we add images, styles and fonts. - For PDF output, by default all HTML files are merged into one HTML file. This means you can create shorter web pages (e.g. subsections of chapters), but still avoid page breaks between them in PDF output.
- Book metadata (in
_data
) is now split into book-specific files. We've replaced themeta.yml
file with separate metadata files, where each book gets its own file. This makes it much easier to maintain projects with several books. - We've replaced the interactive output scripts with cross-platform Node commands. Processes (like output or image processing) are run with a single command. This makes it possible to automate commands (e.g. from a web- or Electron-based GUIs in future, or for automated testing). See the new README for details.
- We've added a command that checks for basic project structure, and a command that adds a new book folder based on an existing book.
- Prototyping a new book is much faster, because it's not necessary to create
nav
andtoc
nodes in book metadata for web navigation to work. Until you do specify those nodes in book metadata, navigation and TOCs will be automatically built from available files. See thebook
folder in the template for an example.
We've also made general improvements to HTML structures, epub structure, and the organisation of Sass files for custom theming. The default styling is a little more elegant, while remaining as unopinionated (aka vanilla) as possible, ready for customisation.
We've removed version numbering from the _config.yml
file, and won't use semver numbering on releases going forward. Semantic versioning is not that useful for a template (as opposed to an upgradeable software app), and the current master branch here is always the latest version of the template. If we create tagged releases in future, it will be to document major new features, and provide a way to notify those watching this repo.
- New CSS structure for themeable design
- Easier Javascript in epubs
- Improve appearance of nested nav items
- Add interactive slide sequences
- Suggest Jekyll v4 when managing own Jekyll version
- Remove Formspree, and allow site-wide pages in the project root
- Match the GitHub Pages Jekyll version by default
- Improve the structure of styles for easier development
- Enable video options, and a generic video include
- Improve logic for setting the HTML title element
- Various minor fixes and refinements.
- Enable bookmarking
- Improve the reliability of search indexes and show 'Searching' notice in UX
- Don't expand books in home nav by default
- Exit the output script if Jekyll builds fail
- Create fallbacks for OG page title
- Let EBM users edit non-book styles, eg landing page
- Improve landing-page presentation and default fonts
- Various minor fixes and refinements.
- Add ability to create a zip package of a project
- Improve horizontal scrolling of tables on narrow screens
- Add expand- and close-all buttons to content accordion
- Various minor fixes and refinements.
- Replace Phantom search-index dependency with Puppeteer
- Support starting YouTube and Vimeo videos at specific times
- Add script for faster updating across Electric Book projects
- Zip epubs with Node for better Windows compatibility
- Enable turning image lazyloading on/off in settings.yml
- Implement better paragraph-indent
- Support visible URLs in e-ink epubs
- Generate separate web and app search indexes
- Allow fully translated landing pages
- Lazyload images to save user data
- Create TOCs outside of book files (and other nav fixes)
- Convert .html to .xhtml on epub output
- Don't force a blank baseurl on web output
- Localise home-page title element in locales
- Add ability to hide content behind show-hide buttons
- Add ability to use gap-fill questions
- Add variables for content and style in side-margin boxes
- Enable setting relative size of maths in PDF as a variable
- Various minor fixes and refinements.
- Add PDF columns options
- Inject SVGs inline
- Add max-quality image output
- Add an option for creating a sidebar in PDF output
- Add classes for all PrinceXML-supported floats on figures in PDF
- Add shift-up- and shift-down- classes for page refinement
- Create a dedicated styles folder for non-book pages
- Add easy way to set favicon.
- Improve use of images as text dividers.
- Footnote references popup footnote text on web.
- Tables scroll horizontally on small screens.
- Enable redaction in PDF.
- Fix math in Word export.
- Allow converting endnotes to footnotes in PDF.
- Improvements to video output, and allow turning on YouTube subtitles.
- Fix a bug where some multiline maths did not show in epub output.
- Various minor fixes and refinements.
- Major improvement to preprocessing and output of maths
- Enable turning off or expanding accordion per-page
- Fix to prevent false positives in active menu items
- Add canonical link tag to head for better SEO and annotation
- Hide breadcrumbs on small screens
- Various minor fixes and refinements.
- Add ability to create reusable content items.
- Add annotation with Hypothes.is.
- Translation styles now augment, rather than replace, parent-language styles.
- New setting to avoid inaccurate image-colour-profile conversion on PDF output.
- New docs on building apps, and better Windows app output.
- Prevent spans with
.keep-together
from breaking over lines. - Fall back to book and project descriptions for Open Graph descriptions when page description not available.
- Upgrade gulp dependency to 4.0.0.
- Improvements to docs and setup guidance.
- Fix the ability to use a file list as a source for the nav list.
- Various minor fixes and refinements.
- Add content accordion for web and app outputs.
- Add ability to include multiple-choice questions.
- Better docs on output formats and setting up GitHub Pages.
- Add ability to override epub-specific language.
- Add toc.ncx for backwards-compatible epubs. And fixes to it.
- Add
image
include for responsive image tags. - Add support for show-page-number and show-url classes.
- Support a 'start-on-right' class to start new recto pages.
- Distinguish between project logo and project image.
- Localise search pages.
- Add ability to show a baseline grid.
- Add optional back button for app output.
- Various minor fixes and refinements.
- Add pagination (next/previous lnks) to web and app outputs.
- Allow RTL text direction to be set per language in
locales
. - Fix issue that caused invalid epubs in EpubCheck 3.
- Use clearer language-select icon.
- Fix issue where app output used web nav for breadcrumbs.
- Remove clumsy doctype entities in epub output.
- Updates to docs.
- Fix issue with timestamps on some Windows machines.
- Improve docs, especially guidance on
meta.yml
. - Improvements to iOS app output.
- Replace buggy version of Crimson Roman.
- Allow images to be stored externally.
- Fix epub output of translations.
- Add greyscale colour profiles.
- Add ability to output Lightning Source PDFs.
- Various minor fixes and improvements.
- Localisation: text snippets can now be set in
locales.yml
- Better search indexing
- Fix print font defaults
- Match EBM colours
- Markdownify breadcrumbs
- Update Source Sans Pro
- Add Sass variables to make headers and footers easier to style
- Improved docs
- Fix epub output in OSX, Linux, and various epub bugs and improvements
- Add app output to OSX, Linux
- Fix Word output on OSX, Linux
- Add image-processing with
gulp
to unix scripts - Add minification and cleanup of SVGs on image processing
- Add variable for default rule thickness
- Add
.image-with-caption
class - Add language-selector menu for when translations exist
- Improve
gulpfile
SVG optimisation for epubs - Set hyphenation to manual by default
- Allow translation directories and language codes to differ
- Don't store Cordova
plugins
andplatforms
folders in source control - Bug fixes and code-readability improvements
- Keep build tools in
_tools
- Change term
series
to broaderproject
- Embed fonts and prevent risk of reflow from PDF font fallbacks
- Fix page-header functionality for running heads
- Hide technical files from non-tech editors prose.io and EBM
- Various updates to documentation
- Add epub generation (replaces old epub-ready files for Sigil approach)
- Epubs now MathJax and JS capable
- Add app generation (Android in Windows, app-ready HTML for iOS)
- Add gulpfile to autoprocess images from
_source
into output formats - Important change to translations structure (documented)
- New
page-info
include for checking metadata for a book and given page - All categorisation of docs
- Fix video embeds, and only load iframe JS on click
- Fixes to typos and tiny bugs
- Allow variant outputs (e.g. variations on
print-pdf
for derivative works) - New
identifiers
include lists, e.g. ISBNs, frommeta.yml
- New
_data/settings.yml
for Electric Book settings like variants, and - for future Electric Book Manager integration
- Integrate documentation and typography samples (replaces separate docs repo)
- Output formats now force appropriate image-set
- Support Vimeo embeds
- Allow series footer text in addition to book-specific web footers
- Add
dialogue
styles - Shorter, easy
{{ images }}
tag for path to set-sensitive images - Update MathJax CDN
- Better open graph metadata
- Smarter video includes
- Completely remove buggy Crimson Text font
- Custom hyphenation dictionaries work and work better
- Make hr text dividers work better with ADE and Amazon
- Use latest Jekyll 3.5.2
- Various minor fixes and improvements
- Add support for translations as subdirectories of
text
- Add MathJax output in PDF
- Assume/force use of format-specific image-sets
- Far more powerful
figure
include (and related styling) - PDF export now conforms to major standards: X1-a for print-pdf, A-3b for screen-pdf.
- Add ability to change the PDF profile and colour intent in Sass config.
- Change Jekyll destination back to
_site_
(no longer non-standard_html
) - More variables available from
include metadata
- Breadcrumb trail clickable, when destination files are defined in
meta.yml
's web nav tree - Simpler, better way to create book-cover files
- Linux and Mac scripts fixed and updated
- Javascript in Prince activated by default in scripts
- HTML compressed with compress.html
- Minor fixes and improvements (including base typography, nav buttons, TOC layout, default font, Prose config, gitignore, output scripts)
- Fix image-set bug in Windows batch file script
- Windows batch file script enables image-set switching
- Fixes and minor improvements to styling defaults
- Major improvements to web navigation
- Text search (client-side, using elasticlunr)
- Breadcrumbs in masthead
- Many fixes and minor improvements
- Hide web-only elements (e.g. masthead) from print output for printing from browser.
- Fix start depth for frontmatter.
- Add mispelling fallback for
.half-title-page
/.halftitle-page
. - Define nav-bar-prompt text color.
- Add contact-form include using formspree.io
- Various bug fixes and minor improvements.
- Some smarter defaults.
Bug fixes and minor improvements.
Major revision, the key change is that we no longer use a gem-based theme, but rather package everything in the template. Far more powerful Sass configs and better web navigation.
- Set
book
folder as default inrun-windows
run-windows
script now installs Bundler if it's not installedrun-windows
script fixes: correct baseurl, correct epub firstfile- Test with Jekyll 3.3.0 and allow in dependencies
- Update prose config
- Allow gh-pages repo in config
- Minor fixes
- Add output scripts for all formats for OSX and Linux
- Combine output scripts into one for each OS
- Minor bug fixes
- New web navigation option to allow nested menu items: add a web nav tree to
meta.yml
, and enable in_config.yml
. - Move
youtube
include to theme and out of template. (How to manage embeds should be a theme decision.) - Add index page to book folder that redirects to
text/index
- Add related
redirect
include for redirecting any page - Add
head-elements
include for injecting scripts and links in<head>
- Use electric-book-classic-theme v0.1.3
- Rename
get-metadata
include tometadata
for simpler tag - Fix broken font paths and management (fonts now all called from custom CSS)
- Add experimental Windows bundle install script
- Overhaul to work with Jekyll 3.2, supporting themes as gems.
- Automatically requires the Electric Book Classic Theme gem.
- Faster epub creation (file structure now matches Sigil conventions).
- Each book can have its own custom Sass/CSS.
- Bug fixes and improvements.
- Major change (and improvement) to metadata structures
- Output formats now consistently named print-pdf, screen-pdf, epub and web
- Fixes to mac-pdf.command script
- Minor edits
- Add Gemfile and require bundler for scripts to work (NB since Jekyll 3.2.1)
- Fix
-fitting
classes style inheritance in web and epub CSS - Minor improvements
- Fix broken pink to print stylesheets.
- Fix broken links in @font-face partials.
- Add more font includes.
- Turn on kramdown auto_id_stripping to keep IDs neat and persistent, and ahead of 2.0 where this will be default.
- Fix line-height on chapter-numbers to retain baseline grid.
- Improve navigation layout.
- Simplify tag for embedding YouTube video.
- Add ability to combine
.smallcaps
/.allsmallcaps
with.bold
and.italic
for italic/bold small caps. - Add
web.scss
variables for media-query break points. - Fix bug causing horizontal overflow.
- Bug-fix broken links in new nav include.
- Improve template index page.
- Make default web typography paras space-between (not text indent).
- Move series template out into its own repo for easier forking/copying.
- Move themes into
_themes
folder (better theme management, and in line with likely forthcoming Jekyll theme structure). - Improve
nav
andfooter
elements to give themes more to work with, and allow for fuller web output chapter menus. - Change
print-list
tofile-list
and auto-generate from file lists per product inmeta.yml
. - Create
win-epub.bat
to speed up EPUB creation. - Improve Windows batch files for output to print PDF and PDF ebook
- Add CSS options for pure black in addition to rich black, and a $start-depth variable to keep chapter openers consistent more easily.
- Add template folders and minimal guidance for using Javascript.
- Update and improve Guide text in many places, mainly where it was out of date.
- Various minor improvements.
- Move all metadata out of
_config.yml
, into_data
(no more setting up the slug) - Support
<hr>
as text divider (*** in markdown) - Minor improvements to code comments
- Minor improvement to layout of reference indexes
- Fix for blank baseurl in
win-web.bat
launcher - Minor text edits
- Improve Windows batch script for PDF
- Add a Linux shell script for PDF
- Add Windows web batch script
- Experimental Windows batch file for PDF output
- Better image-set system using site variable
- Improved figure styling
- New control over image heights in figures to retain baseline grid
- Print-hiding for Sigil split markers
- Allow Prince hyphenation when no special dictionary is defined
- Fixed styling of .title-page-publisher
- Related documentation in Guide
- Add .title-page-publisher
- Liquid tags can populate whole title page and copyright page from _data