Pressbooks 4.3.1 and Pressbooks Book 1.10.3

We tagged Pressbooks 4.3.1 and Pressbooks Book 1.10.3 on GitHub today and deployed them across our hosted networks. Here’s what’s changed:

Pressbooks 4.3.1

NOTICE: Pressbooks 4.3.1 requires WordPress 4.8.1.
NOTICE: Users of the Pressbooks Custom CSS theme must upgrade to Pressbooks Custom CSS 1.0 for compatibility with Pressbooks 4.3.1.

  • [CORE ENHANCEMENT] Added a debugging switch to Custom Styles (see #946).
  • [FIX] Resolved an issue where some fonts would not be loaded properly during the PDF export routine (see #944 and #945).
  • [FIX] Updated routines that use XPath for compatibility with HTML5, resolving some issues with multi-level TOC and EpubCheck validation (see #947).

Pressbooks Book 1.10.3

  • [FIX] Fix some issues with Biblical Hebrew, Devanagari, and Turkish fonts.

Pressbooks 4.3, Pressbooks Book 1.10.2, Pressbooks Custom CSS 1.0, and Pressbooks Publisher 3.1.2

We tagged Pressbooks 4.3.0, Pressbooks Book 1.10.2, Pressbooks Custom CSS 1.0.0, and Pressbooks Publisher 3.1.2 on GitHub yesterday, and we’re deploying them across our hosted networks today. Here’s what’s changed:

Pressbooks 4.3

NOTICE: Pressbooks 4.3.0 requires WordPress 4.8.1.
NOTICE: Users of the Pressbooks Custom CSS theme must upgrade to Pressbooks Custom CSS 1.0 for compatibility with Pressbooks 4.3.

  • [FEATURE] Custom Styles: Navigate to AppearanceCustom Styles on your book’s dashboard to add custom CSS or SCSS to any book theme (see #658, #912, #925, #937, #938, #940, #941, and #942).
  • [ENHANCEMENT] Expanded the license property of the /metadata endpoint to include a human-readable license name and custom license text (if present) (see #934 and #936).
  • [ENHANCEMENT] Added the book’s short description to the /metadata endpoint as a disambiguatingDescription (see #930 and #932).
  • [ENHANCEMENT] Clarified errors when trying to clone a book from Pressbooks < 4.1 (see #914and #931).
  • [ENHANCEMENT] Renamed several action and filter hooks and deprecated the old versions (see #926).
  • [FIX] Fixed an issue which would prevent super administrators without any books on a network from accessing the cloning page (see #913 and #933).
  • [FIX] Fixed a regression which blocked the use of custom LaTeX renderers (props to @monkecheese; see #928).

Pressbooks Book 1.10.2

  • [ENHANCEMENT] Updated to version 2.1 of pressbooks/mix.
  • [FIX] The cover page now displays the subtitle from Book Information as the book’s subtitle, rather than the tagline.

Pressbooks Custom CSS 1.0.0

NOTICE: Pressbooks Custom CSS 1.0.0 requires Pressbooks 4.3.0.

  • [ENHANCEMENT] Custom CSS functionality is now included in this theme (see #2).

Pressbooks Publisher 3.1.2

  • [FIX] Prevented Pressbooks Publisher’s wrapper from being added to the user catalog page.

Pressbooks 4.2 and Pressbooks Book 1.10.1

We tagged Pressbooks 4.2.0 and Pressbooks Book 1.10.1 on GitHub today and we’re deploying them across our hosted networks tomorrow. Here’s what’s changed:

Pressbooks 4.2

NOTICE: Pressbooks 4.2 requires WordPress 4.8.1.

  • Feature: Full-sized images will be used where possible in Print PDF exports to ensure that exported PDFs meet image resolution requirements (see #894, #898 and #900).
  • Feature: WXR import and clone operations will now attempt to fetch original images from the source book in addition to the scaled/cropped version in the book content (see #895 and #902).
  • Feature: Content on the organize page now has a View link as will as Edit and Trash (see #840and #893).
  • Enhancement: The Masterminds HTML5 parser is now used instead of \DOMDocument where possible for improved error handling and compatibility with HTML5 elements (see #889 and #896).
  • Enhancement: Unnecessary HTTP calls have been removed from export routines (see #899).
  • Enhancement: Installation instructions are now linked from the readme file instead of being included (see #891 and #892).
  • Fix: Resolved some inconsistencies with custom copyright notice and copyright year display (see #922).
  • Fix: Clone operations now have a 5-minute time limit which should reduce the occurrence of timeouts (props to @bdolor for the bug report; see #903 and #904).
  • Fix: Visiting /catalog on the root site no longer causes an error (see #905).
  • Fix: Pressbooks LaTeX settings no longer appear on the root site’s dashboard (see #910 and #911).
  • Fix: The Organize page now supports all post statuses (see #915).
  • Fix: Fixed an issue where the Pressbooks News dashboard widget would be cached in the wrong language (see #918 and #921).
  • Fix: Removed some unused code from the PB LaTeX symbiont (props to @jeremyfelt; see #923).

Pressbooks Book 1.10.1

  • Fix: Consistent display of custom copyright notice (see #38).

Can you “clone” a Pressbooks book? You can now*!

Here at Pressbooks HQ we’ve been doing a whole lot more development work for the Open Textbook world, in our opinion the most exciting space in the world of publishing. For the uninitiated, an Open Textbook is an openly licensed (i.e. free) book that supports the “5Rs,” defined by David Wiley as the rights to: remix, revise, reuse, retain, and redistribute.

Open Textbooks are powerful not just because they are free for students, but also because teachers and profs (or even students) can easily improve them and modify them for the particular needs of their students.

Theory vs. Practice

In theory, at least.

In practice, all that 5R-y stuff can be difficult: How do you revise a PDF? How do you remix an EPUB? How do you redistribute a print book?

Clone me, please!

The new answer — at least for Open Textbooks built on Pressbooks as of now is: You clone them!

That is, you can now, with the click of a button, clone/copy a complete Pressbooks book (including all metadata, image and media, and content) from one Pressbooks account or instance to another, as long as the original book is:

  • Openly licensed (i.e. licensed with a Creative Commons license)
  • Publicly available on the web

And this means, once you’ve cloned that book, you can 5R it to your heart’s content!

Wait, does this mean anyone can just copy my book?

No. No. No! … No, cloning is only possible in the case that:

  • Your book is openly licensed (with a Creative Commons license)
  • You book privacy setting is: public on the web

So for any books that have standard copyright, or are not available on the web — this doesn’t apply.

Why would you clone a book?

This is, we think, a very exciting development for the Open Textbook ecosystem.

Here are just some of the ways we expect the new feature to be utilized:

  • A community college wants to make changes to the level of subject matter in an open textbook that was originally created for upper-division undergraduates.
  • A faculty member wants to adapt an open textbook to reflect the way they personally teach the subject matter.
  • A university department wants to copy the books contained in a catalogue at a similar department in another university.
  • An instructor wants to make a copy in order to have their class expand an existing open textbook as part of a classroom project.

Cloning ultimately allows books built in Pressbooks to become more modular and easily adaptable for more courses.

Pressbooks, Ryerson University & eCampus Ontario

Have you heard about the exciting Open Textbook work happening in Ontario?

This cloning feature was developed as part of a project Pressbooks is doing with Ryerson University, funded by a grant from eCampusOntario, developing infrastructure for Open Resource Publishing in Ontario.

Also under this project, Pressbooks is getting a full design refresh, including redesigns of the book home page, the webbook reading interface, and, for Pressbooks systems, updates to the landing page and Pressbooks’ built-in catalog page.

So, How Do I Start Cloning?

The bad news is: This feature is not available on Cloning is an educational feature only available in standalone Pressbooks systems (Pressbooks EDU client systems and Pressbooks open source). (Contact us if you’re interested in us hosting a Pressbooks EDU system for you.) also supports replicating books. However, the process of copying a book is more labour intensive, and requires users to reach out to original creators for the book’s XML files. This new cloning feature omits these steps for enterprise users, making duplication possible with only a few clicks of a button.

Learn more about how to use the new cloning feature.

Pressbooks 4.1 and Pressbooks Book 1.10

We tagged Pressbooks 4.1.0 and Pressbooks Book 1.10.0 on GitHub on Friday and we’re deploying them across our hosted networks today. Here’s what’s changed:

Pressbooks 4.1

NOTICE: Pressbooks 4.1 requires WordPress 4.8.1.

  • Feature: Cloning! Clone any public, properly-licensed book from any Pressbooks 4.1 network including your own (super admins can clone any book from their own network, regardless of license) (see #841, #857, #881, #885).
  • Feature: Granular display controls for content licenses at the book and section level (see #805, #867, #873, #883, #884).
  • Feature: Word count for the entire book and for content marked for export is now displayed on the Organize page (see #842, #878, #880).
  • Feature: Users can now delete their own books from the book menu (see #845, #864).
  • Feature: Custom taxonomies are now available in the Pressbooks REST API v2 (see #851, #853).
  • Feature: The isBasedOn property is now saved in metadata and displayed in the Pressbooks REST API v2 (see #850, #852).
  • Feature: Search & Replace with RegEx is now available for super admins without additional configuration (see #870, #871, #879).
  • Feature: Punjabi Gurmukhi support (props to @alexpflores) (see #877).
  • Enhancement: Book editors can now modify theme options and custom CSS (see #862, #863).
  • Enhancement: The Pressbooks News feed is now cached across all sites to reduce unnecessary network access (see #882).
  • Fix: The TOC endpoint in the Pressbooks REST API v2 now uses chapters and parts for consistency with the endpoints for these post types.
  • Fix: The EPUB importer now properly detects and handles optional whitespaces (see #554, #874).
  • Fix: Users without super admin privileges can no longer access the trash when they shouldn’t be able to do so (see #865).
  • Fix: Image URLs with #fixme on the end will now be properly copied into EPUBs during export (see #887).

Pressbooks Book 1.10

  • Feature: Add support for Pressbooks 4.1.0’s content licensing feature (see #25, #26, #31, #32, #37, pressbooks/pressbooks#805).
  • Feature: Add support for Punjabi Gurmukhi script (props to @alexpflores) (see #27).
  • Fix: Fix an issue where enabling social media would break the mobile webbook layout (see #28, #30).
  • Fix: Fix an issue where numberless chapters in a book would cause the MOBI export to fail with certain book themes (see #33).
  • Fix: Add webbook theme support for WordPress’ built-in <!--nextpage--> tag, which splits a single post into multiple web pages (see #35).

Pressbooks 4.0.1

We released Pressbooks 4.0.1 on GitHub and deployed it across our hosted networks today. Here’s what’s changed:

  • Fix: Fixed an issue where the template root for book themes was not properly updated (see #854, #859).
  • Fix: Fixed an issue where ampersands were not being sanitized in XML outputs (see #860).
  • Fix: Fixed an issue where the Disable Comments setting was not being saved properly (see #861).
  • Fix: Fixed an incorrect link in upgrade notices (see #848, #849).

Pressbooks 4.0.0 “Slate”

We released Pressbooks 4.0.0 on GitHub earlier this week and finished deploying it across our hosted networks on Wednesday. Here’s what changed:

Key Features

Next-Generation REST API

Building on Brad Payne’s original REST API for Pressbooks, we’ve introduced an improved and expanded REST API based on the WordPress Core REST API infrastructure. The Pressbooks REST API v2 supports authenticated CRUD (Create, Read, Update, Destroy) access to all Pressbooks content types (front and back matter, parts, and chapters) as well as read-only access to book structure and metadata. For more information, see our REST API documentation. We’re excited to see what the Pressbooks Open Source community will do with these new API capabilities! Share your projects with us:

Enhanced LaTeX Rendering

Pressbooks’ core LaTeX renderer now produces high resolution output suitable for print! More improvements to come, and thanks for your patience as we’ve worked to improve this important feature.

Better Content Management

Want to mark all chapters for export on the Organize screen? You can do that now! Trashed something that you want back? Just navigate to Text → Trash and you can restore it. Many more improvements to come!

Pressbooks CLI

The Pressbooks command line interface is now part of Pressbooks. Want to make your own book theme? Run wp scaffold book-theme from the root of your Pressbooks install and take advantage of our intuitive SCSS-based theme structure. More commands to come — submit your ideas!

Detailed Changelog

NOTICE: Upon upgrading to Pressbooks 4.0, you will need to install the Pressbooks Book and Pressbooks Publisher themes along with any of our other open source book themes that were bundled with earlier versions of Pressbooks. For more information, see the upgrading instructions.

NOTICE: Pressbooks 4.0 requires WordPress 4.8.0.

  • Feature: REST API v2 (see #472, #763, #770, #771, #774, #778, #780, #781, #783, #785, #788, #798, #803, #804, #806, #807, #810, #812, #815, #816, #823, #832, and our API Docs
  • Feature: LaTeX outputs are now at a sufficient resolution for print applications (see #819).
  • Feature: You can now change statuses in bulk on the Organize page (see #249 and #822).
  • Feature: Deleted content can now be restored from Text → Trash (see 9283c26).
  • Enhancement: The Pressbooks CLI is now bundled in Pressbooks (see #464 and #826).
  • Enhancement: new \Pressbooks\Metadata() now returns book metadata as an implementation of JsonSerializeable (see #804 and #832).
  • Enhancement: Expanded metadata is now hidden on the Book Information page unless needed (see #804 and #832).
  • Enhancement: We now use the Human Made coding standards for PHP. Check your code before submitting a PR 👍.
  • Enhancement: We now use Laravel Mix to handle all plugin assets (see #769 and #795). Making a change in /assets/src/? With Yarn installed in your development environment, run yarn && yarn run build to build assets for distribution.
  • Enhancement: SCSS files can now be checked against our coding standards using stylelint with the command yarn run lint (see #743 and #817).
  • Enhancement: JS files have been updated to ES6 and can now be checked against our coding standards using eslint with the command yarn run lint (see #829).
  • Enhancement: Root and book themes are now distributed separately from the Pressbooks plugin — make sure you install the required themes when you upgrade! (See #756 and #799.)
  • Enhancement: Part content has been migrated to the standard content editor instead of a custom field (see #486 and #764).
  • Enhancement: The Search and Replace module has been heavily optimized, reducing memory usage by ~85% (see #759 and #793).
  • Enhancement: Additional post types can be added to the list of permitted post types for editing using the pb_supported_post_types filter (props to @SteelWagstaff, see #758).
  • Enhancement: We now use vanilla/htmlawed as our htmLawed provider (see #767).
  • Enhancement: Developers can now add new import types via the pb_import_table_cell and pb_initialize_import filter hooks (props @bdolor; see #802 and #811).
  • Enhancement: Releases are now packaged automatically via Travis (see #730 and #821).
  • Fix: DOCX and ODT files exported from Google Docs (which lack standard metadata) can now be imported without issue via the import module (see #837 and #838).
  • Fix: Images are now set to a prince-image-resolution of auto, normal rather than 300dpi for more reliably high-quality print PDF output (see #744 and #776).
  • Fix: Text suggesting that we offer printing services has been removed from the Publish page (see #784).
  • Fix: Export downloads from the webbook include the proper file extensions (props to @bdolor; see #808).
  • Fix: Current privacy settings are now displayed properly when updating book privacy from the Organize page (see #711 and #801).
  • Fix: The editor style is now enqueued with a version for cache busting (see #813 and #814).
  • Fix: The Search and Replace module no longer searches items in the trash (see 6978734).
  • Fix: Miscellaneous improvements to improve performance and reduce unnecessary error output.

Pressbooks 3.9.9

We just released Pressbooks 3.9.9 on GitHub and will be deploying it to and our other production networks today. Here’s what changed:

NOTICE: Pressbooks now requires WordPress 4.7.5.

  • Feature: A curated listed of recommended plugins is now displayed within the plugin installer (see #729).
  • Feature: Search and Replace now supports regular expressions (props to @stepmuel; see #754). This feature can be enabled by adding: define( 'PB_ENABLE_REGEX_SEARCHREPLACE', true ); to wp-config.php.
  • Enhancement: Updating a book theme will now trigger the regeneration of the webbook stylesheet (see #727 and #762).
  • Enhancement: There is now a specific template part, private.php, for the page that is displayed when a book is private (props to @stepmuel; see #755).
  • Enhancement: “Part” is now properly localized in the PDF Table of Contents (see #742).
  • Enhancement: Improved blank page rules in theme components.
  • Enhancement: The Ebook theme options tab is now hidden when Ebook dependencies are missing (props to @masaka222; see #745).
  • Enhancement: Dependency check results are now stored in site transients to reduce unnecessary function calls (see #749, #750).
  • Enhancement: Replaced variables with constants where appropriate (see #751).
  • Enhancement: Replaced uses of PATH_CURRENT_SITE with network_home_url() (props to @jeremyfelt; see #734).
  • Enhancement: Current $post is now included with wp_enqueue_media() in symbionts/custom-metadata (props to @jeremyfelt; see #735).
  • Fix: Removed the sticky navigation bar that overlapped webbook content (props to @pbstudent for the bug report; see #747 and #760).
  • Fix: Fixed an issue where running content strings would not be populated when a custom title page was used (see #496 and #761).
  • Fix: Fixed an issue where the book title would not update properly (see #542 and #746).
  • Fix: Fixed issues that arose when pb_language or user_interface_lang were not set (props to @monkecheese for initial bug report and testing; see #738, #739, #740).
  • Fix: Fixed an issue where a database error would be thrown when installing on a utf8mb4 MySQL instance (props to @jeremyfelt; see #733).

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!