The PLSE webpages are stored in Github, and pushing to that repository publishes the webpages. If you don’t have access to the repository, ask one of the admins to give you access.
meet/ folder contains schedules for our various group meetings and
reading groups. Each group meeting using the template lives in a
separate folder (e.g,
plrg for 590P). Within a folder, each quarter
gets a new file (e.g.,
plrg/18wi.md for the Winter 2018 instance of
590P). There’s also a single
calendar.ics in each folder, so that
people can subscribe once per group, rather than resubscribing every
Adding an event
The schedule data lives in the YAML front matter in a Markdown file such as
plrg/15au.md. Here is a complete definition of an event in YAML (everything except
what is optional):
- date: Oct 9 2017 who: Leslie Lamport what: "The Part-Time Parliament: a reflection" link: "https://doi.org/10.1145/279227.279229" extra: This is the Paxos paper! starttime: 2:30pm endtime: 3:20pm room: CSE 403
Some important notes about the file format:
- YAML gets confused when you use colons (:) in unquoted values. That’s why the
whatin this example is quoted. You should probably just put quotes around every field.
extraare all Markdown-ified on the web page (but, of course, not on the generated calendars).
- It’s important to include a year in
date—otherwise, every event will be given the current year at build time, which will confuse people’s calendars.
Cancelling an event
You could just delete an event from the list.
But then there won’t be a row on the webpage explaining why it’s cancelled, which some people like.
To put such a row on the page,
but not generate a calendar event,
use an en- or em-dash as
or use the words “No meeting” in
what (case sensitive).
Multiple events/links in one meeting
You might want to include multiple links in a single event.
(For example, perhaps you’re presenting two papers in the same meeting.)
To do this, add the second (and third, and …) link to the
extra field using Markdown, like so:
- date: Oct 9 who: Leslie Lamport what: "The Part-Time Parliament: a reflection" link: "http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf" extra: "Also read [The Byzantine Generals Problem](http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf)"
whois the speaker’s name and affiliation
whatis the event description
linkis a link (use it for, e.g., papers for a reading group). On the webpage, the
whattext will be linked to this URL. On the calendar, the URL will appear in event descriptions.
extrais some extra text that appears below the
whaton the webpage, and does not appear on the calendar. It doesn’t use the
link, and is Markdown-ified, so you can use it to add other links to an event.
starttimeoverrides the schedule’s start time for a particular event.
endtimeoverrides the schedule’s end time for a particular event.
roomoverrides the schedule’s room for a particular event.
Adding a new schedule
Duplicate an existing quarter’s file (e.g.,
You’ll want to customize the metadata at the top of the new file.
Here’s what those fields do:
titleis the title used on the webpage
subtitleis a subtitle used on the webpage
shortnameis a short name that appears as the prefix for events on the calendar. For example, you might use “590P” as the shortname, so that the titles of events in the generated calendar look like “590P: A Part-Time Parliament”.
quarteris the quarter used on the webpage
dayis the day used on the webpage (not used for calendar events)
starttimeis the start time for events on this schedule.
endtimeis the end time for events on this schedule.
roomis the location for events on this schedule.
who_in_summaryis a boolean that controls the titles of events in the generated calendar. If true, they include the presenter’s name, and look like: “590P: Leslie Lamport: A Part-Time Parliament”. If false, they exclude the presenter’s name.
layout: scheduleis Jekyll-speak to select the right template for all this other stuff to work.
To create a whole new group meeting, duplicate an entire folder.