Pressbooks 3.9.2

Pressbooks 3.9.2 just went live on []( and all of our other production networks. Here’s what changed:

  • NOTE: Pressbooks 3.9.2 requires PrinceXML 20160929 or later.
  • Feature: Added an export format for print-ready PDF, compatible with the CreateSpace PDF Submission Specification (Requires PrinceXML 20160929 or later).
  • Feature: Added a button to the editor which lets you assign a custom class to any element.
  • Feature: Simplified the Disable Comments feature, which can now be found under Sharing & Privacy settings.
  • Enhancement: Added version-based dependency checks for all Pressbooks dependencies.
  • Enhancement: Updated the TinyMCE Table Editor plugin to the latest version.
  • Enhancement: Custom styles, table classes, row classes and cell classes are now filterable.
  • Fix: Fixed an issue where email validation logs would not be sent.

Pressbooks 3.9.0

Pressbooks 3.9.0 just went live on and all of our other production networks. Here’s what changed:

  • Feature: Added a web theme option to display the title of the current part in the webbook (props to @bdolor).
  • Feature: Noto CJK fonts (required for Chinese, Japanese and Korean PDF output) are now downloaded only when needed from within Pressbooks, reducing the overall size of the Pressbooks download.
  • Feature: Added a recompile routine for webbook stylesheets to allow more straightforward development (only enabled when WP_ENV is defined and set to development).
  • Enhancement: Applied our coding standards across the board and added PHP_CodeSniffer to our CI routines.
  • Enhancement: Added some unit tests.
  • Enhancement: Moved the Pressbooks API to /vendor.
  • Enhancement: Changed some colour variables for clarity.
  • Enhancement: Added initial support for SVG LaTeX images in PDF exports (requires QuickLaTex).
  • Enhancement: Added some scaffolding to allow option defaults to be filtered in pages built using the new options class.
  • Enhancement: The book information post is now created when a book is registered.
  • Fix: Added missing methods which were triggering fatal errors in the Export Options page (props to @bdolor).
  • Fix: Fixed in issue which prevented the Ebook paragraph separation theme option from being applied in Clarke.
  • Fix: Fixed an issue where internal links from within part content were broken in EPUB.
  • Fix: Fixed an issue where backslashes would be erroneously stripped when replacements were applied in the Search and Replace utility (props to @rootl for the bug report).
  • Fix: Fixed an issue where the book title would not be updated on the first save.

Why We Removed Pressbooks from the WordPress Plugin Repository

Why We Removed Pressbooks from the WordPress Plugin Repository

A couple weeks ago, we removed Pressbooks from the WordPress Plugin Repository. We want to offer an explanation for this decision to our users, and give some insight into our plans for the distribution of Pressbooks moving forward.

Pressbooks has never been a typical WordPress plugin. It is a platform, not a plugin, and as such it completely transforms the WordPress interface into a content management system for book authoring and formatting. Furthermore, it requires WordPress Multisite and it also requires a number of third-party libraries to support its export routines (epubcheck, KindleGen, PrinceXML and xmllint to name a few) which cannot be installed on shared hosting environments. As such, Pressbooks is not a WordPress plugin that is particularly useful without:

  1. A virtual private server (VPS) environment;
  2. An advanced knowledge of WordPress configuration, especially multisite;
  3. Some devops experience.

Over the years, we have encountered many WordPress users who installed Pressbooks from the WordPress Plugin Repository on their existing blogs1 and were frustrated by the experience. After much consideration, we have decided that the best way to support all users of the Pressbooks plugin is to remove it from the WordPress Plugin Repository and distribute it via GitHub.

For those who don’t want to run their own Pressbooks infrastructure, we offer the following options:

  •, for authors and small publishers creating a single book or a handful of books per year
  • Pressbooks EDU, our premium hosted service for educational institutions
  • Pressbooks Publisher, our premium hosted service for publishers

For those who are interested in running their own networks, we are working to improve the installation documentation and provide several methods to keep Pressbooks updated.

  1. Don’t do this!

Notes from the Pressbooks Accessibility Group

Pressbooks’ first meeting on accessibility with our Open Source partners took place today. Hugh and I were joined by Jess Mitchell and Jonathan Hung from the Inclusive Design Research Centre at OCAD and Brad Payne and Josie Gray from BCcampus. We identified and discussed four initial tasks to begin work on making Pressbooks more accessible and inclusive for authors and readers alike:

  1. Conducting an audit of the Pressbooks administration interface for accessibility and inclusivity (see pressbooks/pressbooks#487);
  2. Conducting an audit of the Pressbooks web book theme and root theme interfaces for accessibility and inclusivity (see pressbooks/pressbooks#488);
  3. Integrating the IDRC Fluid Project’s display preferences tool into the Pressbooks web book theme and root theme interfaces (see pressbooks/pressbooks#489);
  4. Assessing potential tools to help authors review their books’ content for accessibility and inclusivity (see pressbooks/pressbooks#490).

In our discussion of the fourth point, we heard from Josie, who in her work at BCcampus has been using a combination of tools (including Total Validator and AChecker) and manual review against to the W3C’s Web Content Accessibility Guidelines to assess the accessibility and inclusivity of their OERs. Jess and Jonathan also recommended WAVE for this.

We plan to have a second meeting of the accessibility group within one month (tentatively on Wednesday, October 26, 2016) and in the meantime, I will be working with Jess and Jonathan to get a development instance of Pressbooks running at the IDRC for auditing purposes, working on the integration of the Fluid display preferences module, and continuing discussions with Jess and Jonathan on the IDRC’s metadata tools. Brad and Josie will work on compiling a matrix of problem patterns that Josie has identified in her content review work, and Jess and Jonathan will walk through their audit process and results with the accessibility group at our next meeting so that we can all get a sense of best practices. Thanks to everyone who could join us today! It was an exciting first meeting, and we’re looking forward to continued collaboration on this important component of the Pressbooks project.

Pressbooks 3.8.0

Pressbooks 3.8.0 just went live on and all of our other production networks. Here’s what changed:

  • Feature: The redistribution option from Pressbooks Textbook, which allows a book administrator to share the latest export files of their book on the webbook cover page, has been migrated into Pressbooks and can be found under (Network) Settings -> Sharing and Privacy. Many thanks to @bdolor for developing this feature (and fixing a display bug in our implementation of it).
  • Feature: Luther and all child themes now support searching within webbooks.
  • Feature: The promotion on book covers can now be hidden using the PB_HIDE_COVER_PROMO constant.
  • Enhancement: Hypothesis has been added to the supported plugins list, and the supported plugins list is now built more intelligently.
  • Enhancement: The hard-coded default theme for new books has been replaced by the following logic: 1. Use PB_BOOK_THEME (if set); 2. Use WP_DEFAULT_THEME (if set); 3. Use Luther.
  • Enhancement: Added the pressbooks_register_theme_directory action to support the registration of custom theme directores by third-party developers (props to @bdolor).
  • Enhancement: Added support for testing PrinceXML’s built-in PDF profile support by setting the PB_PDF_PROFILE constant to the desired profile.
  • Enhancement: Refactored generic shortcodes to allow testing and test were written for them.
  • Enhancement: Switched from internal fork to dev-master of gridonic/princexmlphp and switched to versioned copy of pressbooks/saxonhe.
  • Enhancement: The \Pressbooks\Modules\ThemeOptions class now supports the registration of custom tags by third-party developers.
  • Fix: Removed a leftover conditional check for the accessibility_fontsize option in webbooks (props to @bdolor for the bug report).
  • Fix: Internal links to parts now work in XHTML, PDF and EPUB exports.
  • Fix: Fixed some faulty logic in the TOC collapse Javascript (props to @bdolor).
  • Fix: Fixed some incorrect color values in the mobile admin bar.
  • Fix: Fixed a misplaced comment in the conditional check for IE 9 in Pressbooks Book (props to @chrillep).
  • Fix: Fixed a bug where protocol-relative images would not be exported properly in EPUB (props to @bdolor).