Pressbooks working with Ryerson University on eCampusOntario grant: “Open Publishing Infrastructure”

We are very very excited to announce that we’re working with eCampusOntario and Ryerson University to improve Pressbooks as an Open Textbook authoring tool, under the just-announced eCampusOntario project: "Open Publishing Infrastructure for Ontario Post-Secondary Educators, Learners."

Most of the development work we undertake under this grant will be released as open source improvements to the Pressbooks GPL codebase — so anyone using Pressbooks will benefit.

Pressbooks as we’ve dreamed since, well, 2010

This project is going to allow us to develop some of the most exciting capabilities of Pressbooks, something we have been dreaming of since, well, since I started working on Pressbooks way back in 2011.

In particular, we will be making some very visible improvements, including a redesign of the “webbook” interface (for reading Pressbooks books online) and a refresh of the standard catalog page for dedicated Pressbooks instances (such as this one, hosted by BCcampus).

APIs and Cloning

But the more exciting work is going on under the hood, where we’ll be migrating the Pressbooks API (built by Brad Payne from BCcampus) to the WordPress core REST API, extending the metadata capabilities, and building “cloning” of Pressbooks books into Pressbooks core (also leaning on work done by Brad).

This means that you’ll soon be able to point at any openly-licensed Pressbooks book in the universe, and pull it into your own Pressbooks environment, to enable the famous 5Rs of Open Educational Resources: Retain, Reuse, Revise, Remix, Redistribute.

An API for Books (finally!)

What does this mean? This means Pressbooks will, finally, be able to fulfill a promise I’ve been thinking about since I started Pressbooks back in 2011: an API for books.

Indeed, looking through some archives, I am gratified to see that we’ve managed to build a lot of what I laid out in my May 2010 (!!) article for O’Reilly: “An Open, Webby, Book-Publishing Platform.”

More exciting is that we are now poised to move beyond that initial set of ideas, and offer something I wrote about a year later, in September 2010 (!), An API for Books.

It’s taken a while, but we’re getting there!

The past number of years have been an exercise in patience: We have always had dedicated and faithful users—from self-publishers to academic presses—who love Pressbooks because of how easy it makes formatting books for print and ebook stores.

But the real power of Pressbooks, from my perspective, has always been hidden in the plain sight of the web: all Pressbooks books are web-native from the start.

Open Textbooks and the Web

The Open Textbook movement is really the first coherent usecase for Pressbooks that has emerged to embrace the potential in Open, webby book publishing systems. So, it’s been gratifying to see the Pressbooks open source software being adopted in the Open Textbook world, by such leading projects as: Lumen Learning, BCcampus, and OpenSUNY.

At the same time, it’s been a challenge for a small company like ours to support the exciting Open Textbook possibilities of Pressbooks with our limited resources. This new project will enable us to move much faster towards an Open Textbook future we hope for.

Working with Ryerson and eCampusOntario

We’re thrilled to be working with some great people at Ryerson University on this project: Wendy Freeman, Fangmin Wang, Ann Ludbrook, Sally Wilson, and the rest of their team. And we’re excited as well to be working on an eCampus Ontario project: David Porter and Lena Patterson have a a great vision for the future of Open Textbooks in Ontario, and we’re excited to be part of it.

If you’d like more information about Pressbooks and Open Textbooks, get in touch!

Dac is back!

Good news for Pressbooks, Dac is back! From the blog:

Big news at Pressbooks headquarters: Dac is back!

Dac Chartrand worked in the early days of Pressbooks (taking over from the also-awesome Janina Szkut), and did a huge job of re-architecting the system back in 2011, in particular moving Pressbooks from a LaTeX based PDF output system (ouch!) to an all-HTML+CSS system, including PDF. Yay, web technologies!

[more … ]


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

NOTICE: Pressbooks’ PHP version requirement (>= 5.6) and WordPress version requirement (>= 4.7.3) can no longer be overridden. Before installing Pressbooks 3.9.8, please ensure that your system has been upgraded accordingly.

  • Fix: Switched to an unmodified version of htmLawed to fix a regression in vanilla/htmlawed which was stripping paragraph tags from blockquotes (see #723).
  • Fix: Fixed an issue where users would be informed that their theme had been unlocked when saving Export options even thought it was already unlocked (see #722).
  • Fix: Fixed an issue where wp-cli would give a permissions error because of the \Pressbooks\ThemeLock::isLocked() check (see #721).

Pressbooks 3.9.8

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

NOTICE: Pressbooks’ PHP version requirement (>= 5.6) and WordPress version requirement (>= 4.7.3) can no longer be overridden. Before installing Pressbooks 3.9.8, please ensure that your system has been upgraded accordingly.

  • Feature: Themes can now be locked a particular version. The theme’s stylesheets and other assets will be copied into the book’s media directory and used for future exports (see #657, #704).
  • Feature: The paragraph separation option is now available for webbooks (see #655, #696).
  • Feature: The section openings PDF theme option now supports additional options (see #450, #691).
  • Feature: When export sharing is enabled, the download links are now stable, e.g. /open/download?type=pdf (props to @rootl for the suggestion; see #684, #699).
  • Enhancement: Pressbooks now supports third-party export formats (see #385 and #674).
  • Enhancement: \Pressbooks\Options field display functions have been refactored to use an array of arguments instead of a list of parameters (see #648, #697) [BREAKING CHANGE].
  • Enhancement: SCSS overrides have been moved into their respective theme options classes (see #452, #701).
  • Enhancement: Webbook interface styles have been separated from the Luther book theme’s content styles (see #656, #708).
  • Enhancement: Webbook stylesheet and script enqueuing has been clarified and simplified (see #396).
  • Enhancement: Searching now excludes non-Pressbooks post types (props to @colomet for the report; see #706, #707).
  • Enhancement: Front-end scripts are now loaded asynchronously (props to @bdolor; see #681).
  • Enhancement: htmLawed is now a Composer dependency (see #702).
  • Enhancement: The sassphp dependency is no longer required (see #693).
  • Enhancement: The SaxonHE dependency check can now be overridden (see 7ea32fe).
  • Enhancement: perchten/rmrdir is now used for recursive directory removal (see 37ab804).
  • Enhancement: Added \Pressbooks\Utility\rcopy() function for recursive directory copying (props to @blobaugh for the example code; see 52b087b).
  • Enhancement: Added pb_dependency_errors filter hook for suppression of dependency errors (see #719).
  • Fix: Images on custom title pages are now exported as expected in EPUB and Kindle (see #690, #698).
  • Fix: The diagnostics page now functions as expected on the root blog (props to @colomet for the report; see #688, #695);
  • Fix: Print PDF exports are now available for download when export sharing is enabled (props to @bdolor; see #677).
  • Fix: Numberless chapters no longer display a lonely period in PDF outputs from SCSS v2 themes (props to @thomasdumm for the report; see #670).
  • Fix: Importing as a draft now works for EPUB imports (props to @thomasdumm for the report; see #668).