Hosting and Annotating PDFs in WordPress

I’ve written about annotating OCRed PDFs before at the blog. This post is an attempt to slow down and expand upon a few simple steps of the general process of doing so: how to actually upload and host PDFs within a WordPress install. If you are familiar with the WP platform then this is likely nothing new. But it’s something I get asked about enough–usually by teachers entirely new to the platform–that I thought I’d write a brief blog/tutorial (blogtorial?). Combined with my post on getting started with your own WordPress install using Reclaim Hosting, this will get you set up with your own blog/website to host multiple formats of texts for annotation by a class.

This post is a continuation of the drum I’ve been beating lately about the utility and power of teachers compiling their own anthologies or course readers in some annotatable place online. In discussing this process before, though, I’ve mostly been talking about copying and pasting text into annotatable WordPress HTML posts or pages--or doing something similar in PressBooks or Scalar). There’s probably no need for most educators to go through the trouble of setting up Scalar or PressBooks to get a handful of texts online. And if you are working with PDFs primarily–if you are, say, reading a bunch of academic articles in that format–there’s a bit more to the story.

While this blog is WordPress focused, I’ve worked with teachers who have hosted PDFs for annotation in a variety of LMSs and CMSs. I’ll probably circle back and write some posts about these other spaces, but here are a few that I know plays well with: Blackboard, Moodle, and Drupal. And here are a few that I know it does not: Google Docs and Canvas. You can have students download PDFs from both Google Docs and Canvas (not to mention Dropbox, etc.) and collaboratively annotate them locally as outlined here. It’s not as nice as having an easy place online to point students to, but it works. And of course is working on interoperability with both those systems.

A PDF of Joan Didion’s essay “Goodbye to All That” hosted on WordPress and annotated by NYU students.

As I mentioned in the OCR blog from last year, it was a professor at NYU, Krystyna Michael, who first started pushing me to figure this whole thing out. I helped her OCR a PDF, but she did what I describe step-by-step below and hosted PDFs of essays and articles her class was reading on a WordPress page, including the one by Joan Didion above.

You do need your PDFs to be OCRed to be annotatable, though, so here’s a short video showing how to do so with Adobe AcrobatPro:

The How To

Here’s a link to the 2016 New Media Consortium Horizon Report for Higher Education.

(Though it could have been annotated at the NMC website, I chose to download the PDF to my desktop and upload it to my WordPress blog for demonstration purposes. In other cases, the PDF of a reading may not exist yet online, or may not yet be OCRed, so I would have to be responsible for hosting it.)

That link will open as a .pdf webpage hosted in my WordPress blog installation.

I cannot make native on this page using the WordPress plugin, as I can on regular posts and pages within the blog. I can however activate the Chrome extension or bookmarklet and annotate the page myself or with others. So too can I create a via proxy link to the page that is natively annotatable without the extension/bookmarklet–such a link could be made directly from a post/page of readings (as here), but would need to be done manually by changing the link above.

I can add a PDF to my WordPress install from within a page or post by clicking “Add media” just above the composition window. Below you can see I selected text to create a link.

I can also “Add media” unassociated with a particular post/page by going to Dashboard > Media > New.

I can then find the new media/PDF in my media “Library” and copy the URL to get a link I can paste/share elsewhere:

That URL is the same as it would be by creating the link inside a post/page except that I’ve skipped creating a page/hyperlink for the URL to be linked from.

I haven’t looked into it yet, but I don’t think I can make the .pdf page itself private. But of course if your blog requires a login, then you probably don’t need to be concerned about copyright issues (trust me, I know as much about copyright law as Dr. Nick does about medicine). My annotations at that page, unless private or part of a group, will however be viewable, along with their textual referents, in the stream.

However, if my concern is that my group’s annotations are private here, I should create a new private group using for our collaborative annotation.

Someone else could go through the same process as me, downloading the same doc from NMC, uploading elsewhere, and annotating the PDF. And if they did so in public, those annotations would also appear on “my” version of the PDF. I did so myself here–adding a second annotation in the new location.

The synchronization above is due to a spec of PDF protocol–each PDF has a kind of fingerprint. That fingerprint allows for collaborative annotation of PDFs in different locations and even locally. (Jon Udell explains why in this blog.) There are ways to erase the original fingerprint and thus get a new and different version of a PDF, but I’m not going to go into that here. If you are worried about multiple classes annotating the same text over time, then simply use the groups feature.


Another Anthology of My Own: in PressBooks

WordPress, PressBooks, and Reclaim Hosting

Everything has been easy, maybe too easy, so far with Reclaim Hosting, the hosting service I’m using to build my new WordPress blog and my Scalar book. Part of the point of this whole experiment was that I was going to be getting under the hood of my Internet use a little more. But the Reclaim Hosting system is just too simple to navigate and the folks there are too generous with their expertise when it’s not.

Anyway, it was time for a real challenge, so I thought I’d push myself a little with a project I thought outside of the templated Web I’ve called home, and not (yet) included in the Reclaim Hosting Installatron: setup a PressBooks site and get activated within it. This is something I’ve wanted to do since Barbara Fister wrote about PressBooks and, separately, as “cool tools for school” last fall.

PBI had it on good knowledge that this would be tough(er) than my previous experiments. In an email exchange from last fall, Jack Dougherty confirmed so much. He’d done this with a scholarly book of his–publishing it in Pressbooks getting natively installed–and when I’d asked him, he sent a long email explaining not exactly how, but how hard it had been. Hypothesis is a native option within the add-on PressBooks TextBook plugin, but that requires the basic PressBooks plugin to be installed first, which itself requires a “multisite” WordPress site, which at first glance appeared a bit complicated to set up. At the time of Jack’s informative email, it was too much for me–I was just starting at then. But six months in, I was ready for the challenge!

Reading the detailed PressBooks plugin installation instructions was helpful but a bit daunting, mostly because there was talk of actual coding. Adding stuff to .php files?! (I actually annotated the “installation” tab on the WordPress PressBooks plugin site as a supplement to this blog. Some of the navigation does seem to have changed since it was written.)


For every  tutorial I found on the process of setting up a multisite WordPress site with PressBooks, however, I had to search for a more remedial one: how to install the PressBooks plugin how to install a network how to edit “wp-config.php” how to use FTP?  Pretty Permalinks?! But after figuring out what this stuff was, downloading an FTP client, learning how to find and edit a php file, etc., I realized that I could change the php file from within the Reclaim client area AND, moreover, that I didn’t need to change the file at all. (SPOILER: This is how a lot of my day went: thinking things were going to be more complicated than they actually were.)

Scroll all the way down before installing to click on enable “multisite”

The first step in this whole process was to create a new WordPress install as PressBooks needs to be its own thing, not part of another WordPress site. By selecting “enable multi-site” when I first installed my second WP site via the Reclaim Hosting Installatron, all of the above was done for me, steps one through five in Part 1 at the beginning of the PressBooks tutorial on WordPress. So much for getting into the code.

All I had to do now was install the PressBooks plugin, which indeed “plugs in” quite easily to WP. The instructions at the PressBooks installation page, starting at Part 2, were pretty clear. And so in a little time, I had created my first book, a PressBooks edition of the Anthology of My Own that I created last week in Scalar.

And I’d set up the first section of that anthology, once again, using Billy Collins’ poem “Marginalia.”

I’m not going to go on too long comparing Scalar and PressBooks. I enjoyed working in both. It was probably easier to get started with Scalar. But setup aside, if someone has worked in WordPress before, then there’s a clear advantage to using PressBooks, as the site navigation is based on the same administrative architecture as the blogging platform. My Scalar book probably looks cooler and it seems there’s more to do in terms of making the book truly multimodal–adding background images, embedded audio, etc.–or at least it’s easier to do those things. But I like the simplicity of the PressBooks WordPress themes and find the aesthetic particularly in keeping with the demure nature of the sidebar.

But I’m getting ahead of myself. While I could then annotate my PressBooks book using the Chrome extension, the whole point of this exercise is to make the app native to the platform and that part as a bit harder to do. That should be easy–and will soon be easier–since PressBooks is based on WordPress and has a WordPress plugin.

PressBooks Textbook and Hypothesis Annotation

Currently, only the PressBooks Textbook WordPress plugin, with its additional Textbook theme, allows for as a built-in option for your book. The WordPress plugin cannot simply be activated alongside a regular PressBooks plugin install.

PBtextbooks annotation is a native part of the PressBooks Textbook WordPress plugin

(News flash: I had the opportunity to meet with Hugh McGuire this week and one action item from that meeting was getting activatable within other basic PressBooks themes–and on! So, while there may be additional functionality that makes the Textbook add-on theme worth installing, especially for teachers, this additional step will not be necessary in the future for the ability to annotate your PressBooks.)

Installing PressBooks Textbook turned out to be both harder and easier than I thought. When I first installed the plugin, the “Open Textbook” theme that includes the option for activation was not showing up in my Themes list. After jumping into the File Manager in Reclaim and moving files around in various plugin and theme directories, starting an issue on the PressBooks TextBook GitHub repository, getting some help from the plugin creator Brad Payne, but not getting anywhere, I simply deactivated and reactivated both the PB and PBT plugins and everything was as it should’ve been originally.

The moral of the story (at least for me) is: before freaking out, digging into the code, turn the thing off and on again. (And maybe that as neat as WordPress is, it’s still a clunky/buggy environment at times.)

To review, without the melodramatic narrative of my personal journey, if you want to have active within a WordPress PressBooks Textbook install, simply:

  1. Use Reclaim Hosting to install a multisite WordPress site (a new install, separate from any blog you might already have).
  2. Install the PressBooks WordPress plugin.
  3. Install the PressBooks Textbook WordPress plugin.
  4. Activate within the book you want annotatable as per step by step below.

Assuming all goes smoothly above, here’s how to get active within a WordPress PressBooks Textbook:

Install the PressBooks Textbook plugin and “Network activate”–should be an option from the install confirmation page, but can also be done under Network Admin > Dashboard > Plugins.

Navigate to the Dashboard for your network of sites:

Activate the “Open textbook” theme across the network under Theme:

Then, activate the “Open textbook” theme in the book you want annotatable with under Appearances in the book Dashboard.

Finally, in the dashboard for your book, under Settings, PB Textbook, and “Other,” activate on all book pages. (As in Scalar it’s all or nothing currently, though since it’s based on our WordPress plugin, our recent additional configuration options could likely easily be added here as well).

I had waited until this point to actually annotate in my WordPress PressBooks book, but now I copied my annotations from my Scalar version of Billy Collins’s “Marginalia” to my PressBooks edition. And I have my proof of concept–and something of a tutorial–for teachers and professors thinking about using PressBooks and in the classroom.

I should mention here that in addition to Jack, a major inspiration for this experiment has been Robin DeRosa at Plymouth State. While she didn’t embed natively on her Open Anthology of Earlier American Literature in PressBooks–in fact, she was on the PressBooks dot com platform–her students used the Chrome extension to create one of the most compelling artifacts of my first term in office here. They created nearly 10 K annotations on sixty-six texts of the anthology (9,438 to be exact). (Check them out annotating Whitman here.) It must have been really amazing for Robin to assemble that anthology and then see it further brought to life through annotation. That’s what this mashup of technologies enables!

I won’t rehearse the pedagogical arguments from my blog last week on “An Anthology of My Own” and in Scalar, except to say that I just love the idea of teachers and professors creating their own course readers, anthologies, and textbooks, and annotating and having students annotate them. Scalar is an option for doing so, and so is PressBooks, and I’m happy to help folks get setup in either.

An Anthology of One’s Own

Adding Scalar to Your Domain, Adding Hypothesis to Scalar

So in addition to starting a WordPress blog at my new domain last week, I also published the first sections of a book created in Scalar. I wanted to experiment with Scalar because there too you can add natively and we have lots of professors and teachers using + Scalar for both scholarly and pedagogical purposes so I thought I should know the set-up.

Again, adding Scalar through Installatron in Reclaim Hosting is too easy. (Seriously, everyone should register their own domain through Reclaim and begin building their own little Web homestead. I’m just getting started!)

And so is activating within your Scalar book–though unlike WordPress, for now it’s all or nothing in that every page is annotatable or none are. (Note to self: reach out to USC and chat about adding config options.)

By the end of a couple hours, I had the first few pages of my book: title page, forward, and a first selection.


The book is a personal anthology of literature I’m calling An Anthology of My Own. The first entry is Billy Collin’s poem “Marginalia,” which I used to hand out to students in paper form at the start of every semester as a provocation for them to write in their (also paper) books. Because this is, naturally, an annotated and annotatable anthology of my own.

Now of course we can use, embedded in Scalar, or activated anywhere on the Web, to be active readers, critical thinkers, engaged digital citizens and humanists. Moreover, with Scalar +, I (or a student) can be part of the process of editing and publishing a book from start to finish: selecting the texts, laying out the pages and sections, writing copy for headnotes and footnotes, designing the cover. If I were still teaching this would be the final assignment of every unit, not the traditional essay.

In terms of my page for “Marginalia,” I added a neat background image of…marginalia, embedded Collins reading the poem from SoundCloud, and annotated the poem myself. Nothing technologically revolutionary. But’s that’s the point: anyone can do this!

An Annotated Anthology of One’s Own

So, as I said last week, I’ve been thinking a lot lately about the politics and pedagogies of the very important movement around “personal cyberinfrasctructure” led in part by the good folks at Reclaim Hosting. The idea of students owning their own domains and controlling their online identities could be seen as the technical equivalent of what thinkers in education have been philosophizing about since the advent of Web 2.0: that, in the Age of the Internet more than ever before, students can be active participants in the production of knowledge.

In my own experience, one of the most compelling examples of this educational philosophy in action–within the sphere of the English classroom–is when students use web annotation, whether collaboratively or individually, to become the scholarly editors of novels, short stories, and poems they’re studying. Elisa Beshero-Bondar, a long-time collaborator of mine from my days at (Lit) Genius, has been doing this for some time and has designed a most robust assignment for this type of activity.

Elisa’s students collaboratively annotating “The Rime of the Ancient Mariner” (along with Coleridge’s own annotations) on

John O’Brien at UVA has also led some great work on student-authored anthologies, having undergraduates collaboratively annotate an anthology of eighteenth(ish) century literature.

John’s students collaboratively annotating “The Rape of the Lock” on a WordPress blog

John writes on the “About” page about the need for such work:

Many of the texts here are now available in free editions on the internet already, from places like Project Gutenberg, the Internet Archive, or Google Books. But most of these digital works have little textual authority, are poorly edited (if they were edited at all), and almost always lack the annotations and contextualization that modern readers need to make sense of them. And the proliferation of such free texts creates its own problem, as it is impossible for a student or general reader to know which (if any) of the many options is complete, authoritative, and useful. The odds of a casual reader or student finding a corrupt, incomplete, or otherwise useless digital edition of any of these works far exceeds the chance that they will land upon a good one.

Much of this is no doubt true and underlines the broad significance of such work by undergraduate digital humanities scholars like John’s students. It matters well beyond any particular course. They are creating and editing resources that are valuable to a much bigger classroom.

From my own position as a kind of rogue scholar, though, I’m all for the unabated proliferation of texts. And not only that, but to make things even more (wonderfully) complicated, I’m all for the proliferation of the scholarly apparatus around those texts as well. That is, I want there to be hundreds of online editions of every public realm work of literature annotated by different individuals and groups at different times and in different places. Let there be multiple layers of annotations at the Project Gutenberg Frankensteinone for every class that studies the text, or rogue scholar obsessed with Shelley’s “Modern Prometheus.” And let there too be a public layer in which teachers, students, and citizen-scholars who want to can work together beyond the boundaries of classrooms and campuses to think though the meanings of texts. Let there be multiple public layers, some with closed memberships: “UVA English Majors,” “ Reading Group,” “Norton Editors,” et al.

Will that technical and critical apparatus be hard to navigate? If those building the annotation tools and e-reading systems work with each other and with users to think through the user interface, then I believe the technical experience can be well-designed. Certainly any public layer will itself require filtering or moderation tools to be in place.

But in terms of the critical side of things–and I’m probably rehashing years of scholarly and teacherly debate around the usefulness of Wikipedia here–I think it’s probably just as important that a young person learn to navigate the layers of criticism around a work as it is do analyze the work itself, especially if we are also giving them the ability to host their own websites! Larry Hanley is right to connect EduPunk back to the American Transcendentalists. As Whitman writes in “Song of Myself”–for what else is the song of the Internet Age?:

You shall no longer take things at second or third hand, nor look through
the eyes of the dead, nor feed on the spectres in books,
You shall not look through my eyes either, nor take things from me,
You shall listen to all sides and filter them from your self.

Next week: I try to manually add to a PressBooks installation. Maybe.

An Annotated Domain of One’s Own

A Domain of One’s Own

Yesterday, I crossed off one of my 2016 New Year’s Resolutions in a single afternoon: “Register my own domain.” I registered “” and installed WordPress at, where you are likely reading this post. I even started a little experiment with Scalar, the book publishing platform out of USC, which I’ll discuss in a future entry. It’s nothing pretty to look at yet — it’s only January, after all! But it’s a start and I want to talk about that start here, why I wanted to do this and why it might be useful/interesting to others.

I’m late to the party here as I have been with lots of neat tech things over the years (iPods, iPhones, Facebook, Harry Potter). This is of course how the early bloggers did it, and for several years now there’s been a kind of reclamation movement around that lost infrastructure and philosophy. Many of us (and I genuinely include myself here) are happy posting our thoughts online through systems owned and managed by others, mostly for-profit companies who retain rights to our cultural production and make it very difficult for us do anything else with that content besides share it within their platforms.

This blog is addressed more to those like me that may not have thought fully about this stuff or acted upon it, rather than to any old school open web activists who might happen here. I think there’s a larger group of folks that would align with the politics of the open web if it were a little more fully and simply articulated. I like to think of having a domain of one’s own as the backyard gardening — or better, the community gardening — of the Web. If you like the idea of growing your own vegetables or owning your own chickens, then I think you might also like owning and cultivating your own domain.

One major strand of that larger reclamation movement has been led by Jim Groom and Tim Owens, who started a project called “A Domain of One’s Own” when both were at the University of Mary Washington Division of Teaching and Learning Technologies. Probably the best single piece written on the work that I’ve found is Audrey Watters’ “Beneath the Cobblestones…A Domain of One’s Own.” Here’s how she sums up the significance of the project, since expanded to other universities:

The Domain of One’s Own initiative prompts us to not just own our own domain — our own space on the Web – but to consider how we might need to reclaim bits and pieces that have already been extracted from us.

It prompts us think critically about what our digital identity looks like, who controls it, who owns our data, who tracks it, who’s making money from it. It equips us to ask questions — technical questions and philosophical questions and economic questions and political questions about and for ourselves, our communities, our practices — knowing that we have a stake as actors and not just as objects of technology, as actors and not just objects of education technology.

Basically the original idea was to help students and faculty register their own domains in the interest of giving them more control over their online identities, or as Gardner Campbell calls it, their “personal cyberinfrastructure.” It’s a valuable exercise in web literacy — again, the digital equivalent of learning to garden with all the attendant knowledges necessary to do so, about seasons, soil, etc. But it’s also a political statement about how our content is managed online — whether by us, according to our rules, or based on the terms of service of proprietary platforms, whether we sign up for them willingly ourselves or are forced to because of where we go to school, teach, or work.

I won’t be adding much to the ongoing and important conversation happening about “Domain of One’s Own” or broader issues around the politics of the open web except to make two simple points — again, mostly for folks new to this stuff.

One, it’s super easy and super cheap!

And two, not only can you blog and host content at this new site you own, but you can annotate that stuff as well using Which is to say that you can own your own — a slick blog with some badass interactive functionality. (And if it’s exposure you are going for you can easily syndicate your blog to Medium, which I’ve done here.)

Indeed, the reason why I decided to dive into this little experiment yesterday was because Gardner Campbell Tweeted a link to a Dave Winer blog:

To which I replied:

And then I figured I had to actually do it.

How To

So, here’s how easy it is to get set up with your own locally hosted WordPress blog with the plugin activated:

Go to Reclaim Hosting — Jim and Tim’s start-upy spin off of their UMW work with A Domain of One’s Own — specifically go here, to their shared hosting services. Sign up for a personal plan for $25 a year.

You can install WordPress easily using the Installatron — great name, right? It’s pretty clear that these Reclaim guys are deep into cultivating web literacy in a real way when they offer a simple definition like this for “web application” to help a humble school teacher like myself navigate this brave new world:

WordPress is right there under Content Management apps:

I’m not going to walk through the whole process of getting set up with WordPress, but I’ll just say that, it didn’t take me very long to have a live front page at to which I could add a cool picture. Mostly you just click through the installer in Reclaim and then once installed you go to the admin portal for your WordPress install and you’re in WP:

I had some experience using WordPress, so it wasn’t hard to put up my first post, but WP makes it real easy for you to get started, presenting you with a cute little mock-up post that you can then edit. And here’s one of their tutorials on publishing a post just in case you can’t figure it out yourself:

An Annotated Domain of One’s Own

I will, though, briefly show how easy it is to add to a WordPress install like the one I describe setting up above. You can find the plugin by searching under “Plugins” in the WP admin dashboard menu. Click through to install and activate it. Then you need to go to Settings > Hypothesis and configure to appear where you want it to — everywhere in the blog or only on certain posts or pages (identified by the ID number shown in the URL when editing the post or page). I choose to activate on all my blog posts for now — and I also disabled page-bottom comments, because they’re so 2006:

So then I wrote a brief microblog as my first post and annotated it using in the tradition of authors far far better than I playing with annotation not as the margin but as the center of a text, as J.G. Ballard does in his “Notes Toward a Mental Breakdown.”

Outside of taking control my own online identity and cyberinfrastructure, a major reason for this experiment has been to think through with my hands, as director of education at, how an educator can make use of this combination of technologies for their classroom.

While allows you to collaboratively or individually annotate any page on the Web, sometimes teachers like to have their course content in one place. And sometimes the content they want students to annotate isn’t already online somewhere and they need to host it themselves. A WordPress install is a great solution to both problems, not to mention issues around privacy (though has a groups functionality for that too). And with embedded in WordPress, then teachers don’t have to guide students through installing and activating the browser extension or bookmarklet, because maybe they know what a browser extension is, but bookmarklet?!

An inspiration for me here is Larry Hanley, a professor at San Francisco State who showed up unsolicited in the content stream early last semester with students annotating a very cool WordPress site for his American lit course that had the app natively embedded thanks to our WP plugin — he was even using RSS to generate a feed of annotations by his students at the site. Larry calls Ralph Waldo Emerson “the original Edupunk” for his idea of “creative reading,” which Larry believes has found a 21st century manifestation in collaborative annotation. (Below Larry talks about his experiences using in the English classroom.)

I hadn’t done what Larry did with WordPress + until yesterday, but now I can show other teachers how to leverage these technologies, cheaply (possibly even freely) and easily, in order to create their own annotated and/or annotatable anthologies or course readers.

With the plugin installed on my WordPress blog, it feels a lot like Medium. When a reader selects text, they are given the option to make a note or highlight. The note can be public or private. Unlike on Medium, I as author don’t have curatorial control over what annotations get published. You can annotate my blog whether I like it or not using While the Medium authorial feature makes a lot of sense, it also works against the more open, decentralized concept of the Web in which individual self expression is not censored by content producers and distributors.

Highlighting and note-taking with
Highlighting and note-taking options on Medium

It made my 2015 when Audrey Watters included in her year end round up of “Top Ed-Tech Trends,” which positioned Jim and Tim’s work with A Domain of One’s Own at the center of an “indie ed-tech” movement. We have some work to do to fully develop it, but I believe is thinking about and working with users and infrastructure in the right way so as to empower annotators to own and manage their content however they so choose. It made my 2016–I know, I’m already having quite a year–when Adam Croom, Director of Digital Learning at University of Oklahoma, and another inspiration here, started shipping WordPress installs with the plugin in the OU institution of Domain of One’s Own. Personally and professionally, I will continue to aspire and conspire to be a part of this movement in ed-tech and on the web more broadly.

Note: I want to just quickly add that at some point I tried to get a little fancy and change the URL for my WP blog and messed something up, getting a 500 error. I reached out to support at Reclaim and Tim Owens responded almost immediately, helping me move my stuff over. They may be even faster on the draw there than the good folks at