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
what
in this example is quoted. You should probably just put quotes around every field. who
,what
, andextra
are 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
who
is the speaker’s name and affiliationwhat
is the event descriptionlink
is a link (use it for, e.g., papers for a reading group). On the webpage, thewhat
text will be linked to this URL. On the calendar, the URL will appear in event descriptions.extra
is some extra text that appears below thewhat
on 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.starttime
overrides the schedule’s start time for a particular event.endtime
overrides the schedule’s end time for a particular event.room
overrides 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:
title
is the title used on the webpagesubtitle
is a subtitle used on the webpageshortname
is 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”.quarter
is the quarter used on the webpageday
is the day used on the webpage (not used for calendar events)starttime
is the start time for events on this schedule.endtime
is the end time for events on this schedule.room
is the location for events on this schedule.who_in_summary
is 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: schedule
is 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.