> Skip to content
FEATURED:
  • The Evolution of Race in Admissions
Sign In
  • News
  • Advice
  • The Review
  • Data
  • Current Issue
  • Virtual Events
  • Store
    • Featured Products
    • Reports
    • Data
    • Collections
    • Back Issues
    • Featured Products
    • Reports
    • Data
    • Collections
    • Back Issues
  • Jobs
    • Find a Job
    • Post a Job
    • Career Resources
    • Find a Job
    • Post a Job
    • Career Resources
Sign In
  • News
  • Advice
  • The Review
  • Data
  • Current Issue
  • Virtual Events
  • Store
    • Featured Products
    • Reports
    • Data
    • Collections
    • Back Issues
    • Featured Products
    • Reports
    • Data
    • Collections
    • Back Issues
  • Jobs
    • Find a Job
    • Post a Job
    • Career Resources
    • Find a Job
    • Post a Job
    • Career Resources
  • News
  • Advice
  • The Review
  • Data
  • Current Issue
  • Virtual Events
  • Store
    • Featured Products
    • Reports
    • Data
    • Collections
    • Back Issues
    • Featured Products
    • Reports
    • Data
    • Collections
    • Back Issues
  • Jobs
    • Find a Job
    • Post a Job
    • Career Resources
    • Find a Job
    • Post a Job
    • Career Resources
Sign In
ADVERTISEMENT
Profhacker Logo

ProfHacker: Build a Speedy, Dynamic Class Website Using Markdown, RStudio, and GitHub Pages

Teaching, tech, and productivity.

  • Twitter
  • LinkedIn
  • Show more sharing options
Share
  • Twitter
  • LinkedIn
  • Facebook
  • Email
  • Copy Link URLCopied!
  • Print

Build a Speedy, Dynamic Class Website Using Markdown, RStudio, and GitHub Pages

By  Ryan Cordell
November 28, 2017
scrap.png

Last week I showed you how to apply for a free GitHub Education account. My next few posts will rely (somewhat) on using GitHub for hosting, though the outcomes I’ll describe could be achieved using other hosting. Today, I want to signal boost a post from my Northeastern colleague Aleszu Bajak over at

We’re sorry. Something went wrong.

We are unable to fully display the content of this page.

The most likely cause of this is a content blocker on your computer or network. Please make sure your computer, VPN, or network allows javascript and allows content to be delivered from c950.chronicle.com and chronicle.blueconic.net.

Once javascript and access to those URLs are allowed, please refresh this page. You may then be asked to log in, create an account if you don't already have one, or subscribe.

If you continue to experience issues, contact us at 202-466-1032 or help@chronicle.com

scrap.png

Last week I showed you how to apply for a free GitHub Education account. My next few posts will rely (somewhat) on using GitHub for hosting, though the outcomes I’ll describe could be achieved using other hosting. Today, I want to signal boost a post from my Northeastern colleague Aleszu Bajak over at Storybench. Aleszu outlines a method for using Google Docs and R Markdown to build a dynamic menu-driven course website, a method I adapted to make the course website/syllabus for my Reading and Writing in the Digital Age class this fall.

In the past I’ve written about using Wordpress multisite to manage my course websites, but recently I’ve been moving away from Wordpress for my personal and course websites. That move took me awhile, largely because I was so fully invested in the Wordpress environment, but I finally started moving away for a number of reasons, including:

  1. Bloat. As Wordpress has become more and more prominent—by many accounts, 25% of the web runs on Wordpress today—the number of plugins required to keep it safe and functional have ballooned. I increasingly felt I was wasting too much time just keeping the application and all of its plugins up-to-date.

  2. Speed. While the phrase flat HTML might recall the early days of the World Wide Web, such sites, generated by methods such as the one I’m discussing today or through systems like Jekyll, which I will discuss more in the near future, are simply much speedier than Wordpress-driven sites. They load almost instantly and respond nimbly. By contrast my Wordpress pages feel sluggish.
  3. Need. Frankly, I realized that few of my sites required the infrastructure of Wordpress. Only a handful took real advantage of Wordpress’ advanced user roles, and few of them included enough resources to make a full database architecture really necessary.

  4. Simplicity. I am increasingly convinced by arguments for minimal computing in the digital humanities, at least when such choices are possible. If I can make my course and project sites more amenable to access from less resourced computing environments, that seems like something I should do.
  5. Simplicity. One reason I liked Wordpress Multisite was the ease with which I could create a new version of an old class site, so it just needed to be updated rather than recreated. But doing this is perhaps even simpler in the flat site formats I will discuss in the next few posts. Whenever I next teach Reading and Writing in the Digital Age, all I will need to do is create a new branch of its GitHub repository or, were I using a different host, duplicate the folder containing all the site’s files. Either way the duplication will take seconds, and all that will be left is to update the new files to reflect any changes made to the course between semesters.

With those justifications laid out, let’s look at Aleszu’s tutorial, which guides readers through the production of a dynamic, menu-driven, flat HTML course website using a combination of Google Docs, Markdown, and RStudio. If you’re already writing in Markdown, as I was and I know many ProfHacker writers and readers are as well, then you can skip that first Google Docs stage and move directly to R Markdown. While this tutorial relies on RStudio, usually used for writing code in the R programming language, you can follow this method without any working knowledge of R.

Where should you host these class sites? On your new GitHub account, of course! You might notice that my site does not use a GitHub URL, but instead uses a subdomain of ryancordell.org. Setting this up is also quite simple, and there’s a how-to from GitHub describing how to do it. If you have your own domain—through Reclaim Hosting, say, then you can easily mask GitHub’s URL with your own.

ADVERTISEMENT

As a bonus, RStudio makes it remarkably easy to export RMD files in a variety of formats. This tutorial exports to HTML, but one can just as easily export to PDF. My department requires me to provide a copy of every syllabus each semester, to keep on file. In the past I used Anthologize to do this from Wordpress, but it’s even easier with R Markdown files—I simply direct RStudio to export them as PDFs and I have well formatted copies to deliver to my department.

The sites produced by following Aleszu’s tutorial are quick, clean, and, as I’ve found this semester, quite effective as class sites. This method might not be ideal if you wanted students blogging together on a single site, in which case something like a Jekyll site might serve better. In my RWDA class students are required to blog, but on website they create themselves, not the course website itself. If you’d like to present your course materials on a site that’s fast and easy to navigate, however, this is a great option. How about you? Do you use Wordpress or have you moved to one of the many flat HTML options gaining popularity? Tell us about your course sites in the comments.

Bonus Tip: if you are comfortable running R scripts, I wrote one that automates some of the manual menu-building described in Aleszu’s tutorial. With just a little tweaking to your own site’s settings, this script makes assembling the site for publication a simple matter.

Bonus Bonus Tip: the dynamic, nested menus created through this method are ideal also for creating online versions of academic CVs. If your CV is already written in Markdown, porting it to RMD is incredibly simple, and it can then be exported as HTML or PDF or both depending on your need. I’ve been very pleased with my new online CV built using the same method Aleszu describes in his post.

ADVERTISEMENT
ADVERTISEMENT
  • Explore
    • Get Newsletters
    • Letters
    • Free Reports and Guides
    • Blogs
    • Virtual Events
    • Chronicle Store
    • Find a Job
    Explore
    • Get Newsletters
    • Letters
    • Free Reports and Guides
    • Blogs
    • Virtual Events
    • Chronicle Store
    • Find a Job
  • The Chronicle
    • About Us
    • DEI Commitment Statement
    • Write for Us
    • Talk to Us
    • Work at The Chronicle
    • User Agreement
    • Privacy Policy
    • California Privacy Policy
    • Site Map
    • Accessibility Statement
    The Chronicle
    • About Us
    • DEI Commitment Statement
    • Write for Us
    • Talk to Us
    • Work at The Chronicle
    • User Agreement
    • Privacy Policy
    • California Privacy Policy
    • Site Map
    • Accessibility Statement
  • Customer Assistance
    • Contact Us
    • Advertise With Us
    • Post a Job
    • Advertising Terms and Conditions
    • Reprints & Permissions
    • Do Not Sell My Personal Information
    Customer Assistance
    • Contact Us
    • Advertise With Us
    • Post a Job
    • Advertising Terms and Conditions
    • Reprints & Permissions
    • Do Not Sell My Personal Information
  • Subscribe
    • Individual Subscriptions
    • Institutional Subscriptions
    • Subscription & Account FAQ
    • Manage Newsletters
    • Manage Your Account
    Subscribe
    • Individual Subscriptions
    • Institutional Subscriptions
    • Subscription & Account FAQ
    • Manage Newsletters
    • Manage Your Account
1255 23rd Street, N.W. Washington, D.C. 20037
© 2023 The Chronicle of Higher Education
  • twitter
  • instagram
  • youtube
  • facebook
  • linkedin