Skip to main content

I write at I write notes at

Cloning a Docs Wordpress Site

3 min read

I've been helping a few different universities setup clones on the OU Docs site. I was doing some work for Middlebury College and they were asking for a documentation site. Ours was running, but just barely, on an instance of DokuWiki, so we went through some options of what to do:

Option 1: Transition to a flat file CMS. Pros: This could seemingly be forkable by any institution, especially if we used Jekyll has the CMS. But the downside is that it doesn't have the friendliness of a WYSIWIG editor.

Option 2: Transition to Wordpress. Pros: it's very easy to use and manage multiple users. Cons: Most of the better plugins were premium and we had a hard time finding an open source one.

We've opted for Wordpress and as long as the premium plugin is purchased, we can still share our data very easy. With a couple of really handy plugins we can also quickly convert mentions of the platform "OU Create"and URLs "" over to anything else.

Because Amy Collier allowed me to share what was built for MiddCreate, I've been able to help three other institutions stand up similar instances of documentation. It's certainly not a perfect model (I think in a perfect model there's a central documentation site into your bank a la federated wiki and they get auto-white labeled) but it's proved to be scalable enough. Below is a tutorial for how an exact replica of our site and custom tailor it to your institution.


1. Install Wordpress

2. Install the Sparkling Wordpress theme.

3. Install Documentor (a premium plugin). I've bought a multi license which gave me five sites for $35. Not too shabby.

4. Import an XML file containing all previous Docs. You can get this by going to a previous document site, going to Documentor > Manage and clicking Export (I'm always happy to share).

5. Create a page titled "Support" and change page template to full-width (no sidebar)

6. Add shortcode [documentor 1] to page and Publish.

7. Change front page to static page "Support".

8. Install Text Replace plugin

Add following code under Settings > Text Replace =>
middcreate => UNIVERSITY Create
MiddCreate => UNIVERSITY Create
Middlebury => UNIVERSITY =>

9. Install Velvet Blues Update URLs plugin

10. Go to Tools > Update URLs

11. Go to Appearance > Menu and add new menu with custom link that takes user back to home page

Creating Application Templates in Installatron

2 min read

If you're a Domain of One's Own campus on Reclaim Hosting, occasionally, you might want to create specific "custom" installs for specific courses or groups to give everyone a specific look or functionality.. Luckily, Installatron, the application installer Reclaim uses, makes this a really straightforward process--though it's limited to applications that are under the Content Management category (Wordpress, Drupal, Joomla, Omeka, etc.)

The first thing you'll want to do is login to your WHM on your server and install that specific application in any location. Next customize it to exactly how you would like it to appear on a fresh installation. Say, for instance, you are working with Wordpress. You can customize the theme, plugins, and even pages to your taste.

Once you've customized it, go back to Installatron and you'll notice a star button next to the site. Click it!

Next file out the form fields that will give your template a title and description:

Now when someone goes to install that application they'll see the template under the "version" portion of the application.

Installatron also allows you to activate/deactivate templates (check box below) as well as set the default installation (star below) in case you would rather have users get a template rather than a clean installation.

Customizing the Wordpress Installation in Installatron

3 min read

I got a question on how to customize the Wordpress packages inside of a Domain of One's Own instance so I thought I'd share how we do it. I recently wrote about how OU Create was "shipping with" so I understand why some folks are interested in curating themes and plugins for their specific community. We don't auto-install themes (mostly to keep Wordpress installations light and quick) but we do have a handful of different plugins, most of which are security recommendations such as Cookies for Comments. Anyways, to customize Installatron, you need to login to WHM, navigate to Installatron, and then head over to Customize:

Here is the custom code we have in that box:

What you can see is that there are three specific functions that one call call in order to activate plugins/themes (there's also some specific code for MediaWiki, which is basically a useless applications at its core, and requires several different plugins to even be worth your time--I'm ranting because I sort of despise of MediaWiki!)

The first is that you need to register the zip file, usually located in the Wordpress plugin/theme library, though it's not mandatory:

$this->registerArchive("hypothesis","", "zip");

Next, you'll want to install the plugin/theme into the correct directory:

$o->extract("hypothesis", "wp-content/plugins");

You'll want to change /plugins to /themes if it's a theme

Last, you'll want to decide whether you activate it or not. We have chosen to install but not activate it, allowing the user to make that decision. But in the event you want to activate it, you'll want to tack it on to this array:

>$o->db_query("UPDATE `{$o->db_prefix}options` SET `option_value`=? WHERE `option_name`='active_plugins' LIMIT 1",array( serialize(array("cookies-for-comments/cookies-for-comments.php","wordpress-importer/wordpress-importer.php","subscribe-to-comments/subscribe-to-comments.php")) ));

As I said earlier, I'm a fan of customized approaches for different community needs. My recommendation is to pick a few specific tools or looks for your community (I always recommend Anders Noren themes) but only pick a few. Otherwise you'll installation file size will jump and really bog down the server and make users unhappy.

It's also worth mentioning that at OU we are standing on the shoulders of giants as this code as been adapted from the University of Mary Washington's Domain of One's Own installation, which was coded by Tim Owens and Martha Burtis. We aren't anything without that team.

Quiz Cat: New Wordpress Plugin for Buzzfeed-like quizzes (could possibly be used to help students choose content as well)

Quick Medium-Like Card Styling For The Blog

3 min read

As much as I lament the idea of Medium becoming the sole publishing space for the web, I am also unapologetic in how much I love the look and feel of it. And it's no secret that I've tried to mimick the style on my own self-hosted blog to get the best of both worlds; the clean, readable, mobile first astethic of Medium with the portability of my own site. While the blog spent six months on the Jekyll platform and was hosted on Github, I started to really miss the ease of the Wordpress editor (which is, smartly, continuing to be improved on with the release of WP 4.5 yesterday).

As I was surfing Medium today, I noticed the subtleness of their card style:

For now, let's ignore the "Write here..." front-end editor which I ALSO love but warrants a different post. Notice that Medium has a very light gray background color (fafafa). In fact, their CSS has it coded as "backgroundGrayLightest." Then for the card box they use white with a very subtle dropshadow to make it pop out. What's nice about this styling is it's very transferrable. Most objects exist in some "card" form. It might not be a perfect shaped, but a webpage (usually) the sum of rectangles. This is good news because that means you can mimick this look with nearly any other, so I thought, "Why not?" and gave it a go on

Looking again at Medium's CSS, I was able to pull this styling on the card:


background: ;
box-shadow: 0 1px 4px rgba(0,0,0,.04);
border: 1px solid rgba(0,0,0,.09);
border-radius: 3px

This is all very standard CSS and very compatible. So that's good news. The next thing I did was to identify what box I want to add the background and shadow. I usually do this work backwards using Google Chrome's Inspect tool. You'll notice as I jog through the code Chrome will highlight all of these hidden boxes that make up my the webpage.


This allows me to quickly identify the equivalent box around post summarys in my custom WP theme as .blog-simple ul .entry-header and drop in the exact same styling Medium uses to get this:

And this kind of stuff is what I love about the web. As Jon Udell recently pointed out, this feature to look at the styling has been critical in the history of the web:

The original 1996 CSS spec, for example, recommended that browsers enable users to override publisher-defined style sheets. CSS recognized that the needs of publishers and readers are in dynamic tension. Publishers decide how they want readers to see their pages, but readers can decide differently.

As a reader, I can manipulate Medium's styling. By being able to look at it, I can learn from it or even change it within the browser if I choose.

This is simple stuff and I've been doing this kind of tossed together poor man's way of coding for a long time, but I never grow tired of it.The beauty and simplicity of the web brings out the primal in me.

Exporting from OU Create

1 min read

In my Create Promise blog post a couple weeks back, one of the pieces I said we would follow up on was documentation on leaving OU Create, our domain of one's own initiative.

To us, data portability is highly important. One of the bigger losses with institutional solutions is that students tend to lose access to them shortly after graduation. We want to make it clear that every piece of data from your domain, your CPanel, as well as the files and databases themselves, can be packed up and moved as you move. Additionally, Reclaim Hosting has made it "one-click" easy to simply transfer everything over to them allowing you to pay them directly. The good-and-wise John Stewart was helpful enough to write up some new documentation articles for us over on the OU Create docs:

We are also gearing up for end-of-year communication with students who will be graduating to make sure they are aware of all the options available to them. Last, we're open to suggestions on any new documentation articles that anybody thinks would be of value!

Using Known and RSS to Power an Email Newsletter

7 min read

I've busted out Known on a new subdomain. I used it in the past as a way to reclaim my tweets. At the heart of Known is the idea of syndication. It really is a very powerful application for those who wish to deploy the POSSE (publish on own site, syndicate elsewhere). One app to power all the other apps. Thus, I can orignate a status update and then send it to my social networks such as Twitter, Facebook, and LinkedIn. And when I finally give up on Facebook (it's essentially already happened... and, Twitter, you aren't doing yourself any favors), one can turn off that channel and not worry about having to export their content. Something new comes up and you want to syndicate there? Hook it up to the hub and syndicate away.

I've decided that, while I liked that approach, I want to use Known a little bit differently this time around. It's going to be more of a space for me to file articles I'm reading and jot quick notes and thoughts. While many applications are focused around blogging or micro blogging, Known has support for photo, audio, video, and bookmark syndication as well. So you'll now find as my primarily space to see my public filing cabinet and will serve as my space for concerte, long form writing (this will syndicate to Wordpress for instance :-) ).

Shortly after firing up, Jon Becker sent out a tweet that may or may not (probably didn't) coincide with that announcement thinking about Known as a bus for newsletters.

This is a really interesting idea that I was willing to play around with. I'm actually pretty fond of email newsletters (email is dead, love live email). Mostly because i don't spend that much time in front of Twitter and miss a lot of the activity (if only someone could algorithimically feed me what I wanted! ;-) ). So I appreciate Stephen Downe's OLDaily and Audrey Watters TinyLetter and Maria Popova's Brainpickings weekly digest. To me they are sort of like magazines, which was and still is one of my favorite mediums.

Known has a hearty amount of RSS integration at various levels across the platform, so subscription is fairly easy. You can subscribe to my entire Notes RSS Feed:

Or by content type such as Bookmarks:

Or even my specific hashtags:

Once upon a time, one of my job duties was to create a daily newsletter for our department that featured important news and, in fact, I did this with a combination of both RSS and Mailchimp. At the time, I was working for the Economic Development department so I pulled together a list of 50-or-so publications on my RSS Reader (Google Reader and then later Feedly) that spanned local, state level, and national level news that related to higher education, technology transfer, economic development, and policy. I then leveraged an If This Then That trigger to move everything I favorited into a Delicious feed. The point of this was to create ONE mega RSS feed of my Feedly favorites.

Then I used Mailchimp's RSS-Driven Campaign feature to fire out a daily email.

Every morning Mailchimp would crawl the RSS feed and, in the event anything new had been added since its previous crawl, it would spit out a nice little email like this:

While this was simply a department level newsletter at first, we started to quickly have other folks around the institution subscribe to it as well. Which was pretty cool.

From Known to Mailchimp

Anyways, the new question is what does this look like with Known? I decided I would play around with setting up a newsletter based on my bookmarks, so one could get a sense of what I was reading if they really wanted to. Because I'm already curating, this removes any need for a fancy IFTTT hook. So I've gone ahead and generated a new Mailchimp campaign and plugged in my Known Bookmarks RSS feed as the feed source.

Mailchimp provides a few basic templates that populate items based on the RSS metadata and Mailchimp provides a nice page of their RSS Merge Tags. I've chosen a basic template for the newsletter:

I've made a couple of edits (such as remove the company logo) as well as changed one merge tag from "CONTENT_FULL" to "CONTENT" to make it a little easier on the eyes.

Now I move into Preview mode to see if it all populates and whadya know, we got a fully working automated newsletter:

So, as you can see, with bookmarks, *|RSSFEED:TITLE|* is what shows up as the title of the article. That works. I can also confirm that it properly pulls the link. Thankfully, Known's RSS feed properly pulls the link to the original article. So if you click "READ MORE," which corresponds with the Mailchimp RSS merge tag *|RSSITEM:URL|*, you will be directed to the original post and not my post on the post. In fact, it doesn't look like Mailchimp has the capability to link to the Known post itself as nothing matches up to the RSS Tag . On the flip side, looking at the RSS feed, Known doesn't seem to carry over any info from the original article other than the title and the link. Thus, the publish date is equated to when you publish on Known and the author is the Known author (not the original author). Thus, I recommend removing the author field from Mailchimp as to not confuse the reader on who wrote the post itself.

I've gone ahead and mocked up what gets added to the Known RSS feed as well as the Mailchimp RSS Merge Tag equivalent:

It does looks like *|RSSITEM:CONTENT|* pulls the Known content text box (not content from the original post). I use the context box to pull out quotes I found interesting, but one could also use it to contextual something, similar to what Stephen Downes does for the OLDaily.

Jon also brought up a very valid point on the "humanness" of an approach like this:

And I totally accept that. There is something about receiving this newsletter that feels a bit... sterile. As opposed to Audrey's newsletter which is clearly "hand" written and specifically curated for that audience. Yet while the idea of getting a weekly well-written letter from Audrey weekly is infinity better than robots, I still see value in the automated process as well if only opens up another choice for the end-user to decide the medium in which they consume the media. And to that end choice is, ultimately, the broader value of syndication. This is why data flow and interopability is so important (again--Twitter. Let's be honest that you only got off the ground because your open API allowed users to interact with Twitter in places such as mobile apps three years before you built your own acquired one). So, please, engage with my content however you see fit, be it via coming to my website, subscribing to the RSS feed, or the low tech approach of email. Or don't engage. :-)

For those of you who really want an autogenerated weekly email sent to you based off of my Known Bookmarks (or just want to see it in action), have at it!

Subscribe to Adam's Weekly Notebook Email

*indicates required