EdTech, Open, Textbooks, WordPress

How BCcampus PressBooks is different than PressBooks.com

I met with Dr. Tony Bates a few weeks back to talk about open textbook publishing. Tony is looking to self-publish an open textbook and was looking for some advice on how to technically go about publishing.

I mentioned to him that we are using PressBooks as our primary publishing platform and began to explain to him a few of the differences between our version of PressBooks and the hosted version of PressBooks.com as we have been customizing the WordPress plugin quite a bit to meet the specific needs of our project and of open textbook development.

First off, when thinking about PressBooks, you have 2 options, much like with it’s parent project WordPress. There is PressBooks.com, which is the hosted version of the software. Sign up for an account and you can start writing your book in a few minutes with a minimum of technical fuss. While you can create books for free on PressBooks.com, when you output the final PDF or ePub version, there is some PressBooks.com branding and watermarking, as you can see here in this small book I created at PressBooks.com.

And then there is the open source PressBooks plugin. Use this plugin on a vanilla install of WordPress and you have an (almost) fully functioning version of PressBooks.com. I say almost because there is a dependency that costs money (if you are an academic institution – there is a free license for Prince that inserts a Prince logo into the output) . In order to output PDF versions of your book, you will (if you are an institution) need to purchase and install a tool called Prince XML to do the output rendering into PDF format. The developers of the PressBooks plugin felt that this was a better PDF output engine than some open source alternatives to output PDF documents. And it is certainly a robust product that does a great job of turning your PressBooks powered WordPress site into a PDF document suitable for print or digital distribution. But the institutional licensing cost might be a limitation for those interested in fully open source digital publishing, and a barrier for others who wish to use the open source plugin.

That said, there is no additional charge for the ePub rendering engine in PressBooks and really, when we talk about digital publishing, ePub is the format we are really interested in. Add in that you get a very nicely formatted website version of the book (really a tricked out WordPress theme that strips away a lot of the WordPress widgets and extras and puts the focus on readability) and you have a very functional “publishing” platform for most books.

However, our needs are a bit specific as we are publishing open textbooks and those have some special needs. So, along the way we (well, very little me, a lot BCcampus developer Brad Payne) have been making modifications and adding plugins to make PressBooks work for us for the BC Open Textbook project.

Recently, we have begun pulling all of these changes together and are working on developing a second plugin that is open textbook specific. This plugin is not a replacement of the PressBooks plugin, but would work with the PressBooks plugin and hopefully make it a bit easier for someone who wants to mimic our setup do so locally (and as an aside, my head is swimming these days of what that might mean & if we should work towards getting to a distro where we could distribute not only a BCcampus-like textbook PressBooks plugin, but also an entire collection of textbooks made in PressBooks, ready to be installed locally at an institution. A repository and editing tool completely seeded with 40 open textbooks ready to be customized and edited with PressBooks. But that is still in the early thinking stages.

So, what have we been doing to our local version of PressBooks that makes it different than PressBooks.com. Specifically, here are the changes we have made, and the plugins we are using.

Plugins

  • The Creative Commons Configurator, which adds a CC license to the bottom of each webpage in the HTML version of the book and adds in CC metadata to each webpage so that it can be correctly indexed by search engines as CC content (it also enables tools like OpenAttribute to work). Brad has actually been working on customizing this plugin to allow us to input & display information when the content is a derivative and based on someone elses work.
  • Relevansi, a search engine plugin for the website version of the book, reducing the need to generate a traditional index.
  • LaTex for WordPress allows us to use this popular science & math markup language Actually, not what we are using anymore. We’re using a modified version of WP Latex, which has been committed to PressBooks core
  • MCE Table Buttons to add tables because, you know, textbooks have tables.
  • Brad also built another MCE plugin called MCE Textbook Buttons which adds 3 new buttons to the TinyMCE toolbar that create styled fields for Learning Outcomes, Key Terms, and Exercises. These buttons add some visual styling and create coloured boxes for al the different output types. There isn’t any special metadata associated with the boxes that the buttons create that might define them as Learning Outcomes, Key Terms, etc. It is simply a visual style difference.

Code Changes

  • We’ve altered the theme to flips the table of contents and description fields on the book homepage so that the ToC appears above the description. For most users of the book (students) the ToC will be more important than the description as they will have probably be sent directly to the site by their instructor.
  • Added in the Relevansi search box. (Brad noted that Relevansi is still not fully incorporated into the new plugin. The search box is there, but the Relevansi plugin integration is still being worked on).
  • We’ve disabled comments. This is a tough one, and one we had to make a decision about based on logistics. Ideally, these books would be used by students. Faculty using the book would send them to the book. But these books have no instructor “owner” per se. There is no subject matter expert ready to respond to potential questions a student may have about the content they are reading. In other words, there is no one watching the comment shop. So, you can imagine a scenario where a student comes to a page, has a question about the content, posts their question in the comment field and then…..gets no response because no one see their question. Discouraging and not very useful. So, we’ve disabled comments on the site. But this is one that we may fire up again in the future. I just don’t know if the potential benefit is worth the potential risk just yet. If there was a dedicated instructor monitoring the resource, then great. But I worry about the instructor who uses the book getting slammed by their student for not answering their question because they didn’t even know that the student asked the question.
  • Added a footer line to the PDF and ePub outputs that says “This book is available for free from open.bccampus.ca” This is a tip I picked up from David Harris & the OpenStax project as a way to combat the selling of the textbook by third parties. Not that it is wrong to sell the books released with a full CC-BY license, but if someone does buy the book, they should know that there is and always will be a free version of that book available from the open site. It’s not perfect and discovery would happen after the fact, but maybe someone who buys the book might use the information to contact us and tell us that someone is selling copies of the book so at least we know.
  • In the admin area, we’ve also changed the Feedback link that floats to the right of the admin screen to send us at the project a message asking for help. In vanilla PB the Feedback remarks go to PB.

There are also a number of customizations that Brad has made that have been contributed back to the PB project, including Brad’s import engine, which imports Word, ODT and ePub files into PressBooks. This is our preferred method of changing the plugin – contribute back bits to PressBooks first and let the project decide if they want to merge the code into vanilla PressBooks. But there are some bits that might be of no interest to the PB developers that we would like to have, hence our own custom development.

Our goal is to have the infrastructure in place to begin recruiting other developers to participate in the development of more open textbook specific features by April. We have a couple of events happening, including the Open Textbook Summit and the annual BCNet conference where we want to talk in more detail about the project and our changes to PB. So, if you have some WP chops and are looking for an open source open ed project, consider yourself invited to come & contribute. Especially if you have some knowledge of ePub3 as getting ePub3 output is a big goal in the near future (see https://github.com/unit29868/pressbooks)

Here are a few screenshots of the differences.

Example of the Key Takeaway & Exercises callout boxes

 

What our book homepage looks like. Slightly different than vanilla PB in that it flips the Book Description with the Table of Contents at the bottom of the page. It also removes the default PB branding.

 

Example of a book search results page from the Relevansi search engine. Notice the search box in the top right, which we have added to each book.

CC BY 4.0 How BCcampus PressBooks is different than PressBooks.com by Clint Lalonde is licensed under a Creative Commons Attribution 4.0 International License.

Comments

  1. Hi Clint

    Have you done any development to support maths in Pressbooks? How are you planning on authoring any Maths/Physics related textbooks? Always a key constraint for us when looking for an editor is Math support. So, just interested in what BCcampus’ plans are?

    1. Right now we are relying on the native LaTeX support built into WordPress (http://en.support.wordpress.com/latex/) which uses an image rendering service to create images of the formulas. It’s not super elegant and relies on the author knowing LaTeX. Our hope is that we can explore a more user friendly solution that will render in the browser using MathJax.

Comments are closed.