Editing the Schedules
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.
Schedule pages
The 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
quarter.
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 date and 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. who,what, andextraare 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 who,
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)"
Possible fields
whois the speaker’s name and affiliationwhatis the event descriptionlinkis a link (use it for, e.g., papers for a reading group). On the webpage, thewhattext will be linked to this URL. On the calendar, the URL will appear in event descriptions.extrais some extra text that appears below thewhaton the webpage, and does not appear on the calendar. It doesn’t use thelink, 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., 15au.md).
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 webpagesubtitleis a subtitle used on the webpageshortnameis 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 webpagedayis 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.