Jekyll based courses

Hey everyone

Yesterday I investigated the possibility of using Jekyll for courses. I did this from the perspective of archiving courses.

This is the result from a quick attempt and I thought it might be worth sharing some thoughts.

Using jekyll for archiving

We can do this, although I’m sceptic of the value that we gain by exporting it as jekyll pages rather than static HTML. The benefit of the static HTML will be that we retain the look. The benefit of the jekyll version would be that we get the meat of courses (content, comments, etc) in a juicier format. We can always export static HTML and export courses to some format like YAML or JSON.

Capturing all the data from courses in front matter would require a bit of work, but completely possible. Tweaking the layout for courses to be acceptable - not loose to much of the old stuff may be trickly, but possible too.

Using jekyll for stand alone courses

This can work! We create a basic skeleton project that people can clone to create courses. Creating the course would require them modify the config file, create a disqus account, tweak layout and add content in markdown, textile or html format.

It does however make a big technical ask of people, they need to use git, edit markdown files and optionally fiddle a little with HTML, CSS and JavaScript. That does also mean that those who can gain the complete benefit of creating for the web - stuff like adding interactive things in your course, etc.

I’m fairly optimistic that we can create this in a short timeframe (a week). And then see if people are willing to take the plunge. Making it easier for people to do could be really hard to do.

I am interested in seeing a Jekyll template for new courses.

Exporting existing courses as Jekyll seems less obvious. Static HTML hosted in Github pages makes editing more complicated.

Can we send an email to all course organizers who have active courses at the moment and ask them for their input?

Also, let’s not forget about Wordpress as an alternative platform. Helping people export their courses into Wordpress might make more sense for others.

I did a little bit of stripping down on the previous example and ended up with this: Git repo here:

Some notes on the setup:

  • I had to hack the the concept of posts. Any post with the category ‘content’ will show up as a course page.
  • Posts requires a date in the filename and this determines the order of posts, see here. I can imagine what people who previously complained about the difficulty of ordering content would say…
  • Course info like title, image, etc sits in _data/course.yml

Some thoughts about this:

  • for a tech savy user it can be really easy to setup a course, quickly!
  • hosting is free and should scale well
  • content feels much more static, no “oops > edit > save”
  • non tech savy users will possibly hate this
  • jekyll has some restrictions for the purpose of blogging that makes other things difficult
  • more than one course on a single jekyll site is possible, but it will require bending the framework some more! (plugins can help, but github pages doesn’t natively support them - you can generate stuff yourself and upload to github)

Things that can still be done:

  • Add disqus for discussion
  • Figure out signup (possibly using something like google forms)
  • Add LRMI meta data in the template
  • SEO
  • Polish

I agree and the fixed nature feels weird. Having a discussion forum would at least give me some way of engaging. Let’s think about other ways to make this feel more community-owned. Otherwise, it might be mistaken as just a way to publish content to the web.

Very impressive job, getting this up and running so quickly!

Thanks! I added disqus to the mix. I also changed the repository name to reflect what it is - a template for courses in jekyll.

I think the next step is to find someone to test drive it. Anything that we should add / refine before we approach someone?

It depends what you are hoping to test. If you want someone to run a live course, I think it would be worth asking Erika to do a quick design run-through. If it’s about setting up a course, we could all do it during the next Project Call.

Otherwise it seems ready to go.

Lets do it during the Project Call?

I think if we get a good course to run using the template, we probably want to add P2PU branding.

It can definitely use some love on the styling side, but I tried to keep it really light.

A thought -> One way to make sure this is a useful tool is to use it ourselves. So I am wondering what is missing or should be changed to make it appropriate for your excellent code lessons. Would that be a good use case?

@1l2p ok -

I forked the P2PU repository and updated the content using the web based editor only. I had to use the command line + my jekyll installation because I was getting a ‘build error’ and the email that github sent me was cryptic. I got the error because I copy-n-pasted content with Jekyll tags. Most people won’t experience this, but without having Jekyll locally I would have been stuck :frowning:

Other thoughts on the experience

  • It was really easy to fork and use the web based editor to update my course.
  • I don’t know how to add files in the web editor, but I didn’t need to, yet.
  • I’m not sure how I’ll do a second course - github only allows you to fork a repository once.
  • I’m not sure how I’ll get updates if the wonderful people of P2PU update their template.
  • My JavaScript that I used in the pages works!

Overall, loved the experience!!