RITlug's current website.
The website's last major update was Summer 2018, but content dates back to 2015.
- The site is built using Jekyll, Bootstrap (via CDN), Font Awesome (via CDN), & GitHub Pages
- PDF.js is used for embedding PDFs in pages (via CDN)
- "Pretty links" is turned on in the Jekyll configuration
- The
github-pages
Gem is used to simplify dependencies - The live site is updated by committing changes to the
master
branch The site uses an undocumented feature of Jekyll where categories are defined usingcategory/_posts/
instead of_posts/category/
.
Please see CONTRIBUTING.md for more info on the technical specifics of the site.
Add a new .md
file to one of the _posts/
folders for a category.
Assets should be stored in a folder within that category, for example, talks/slides/
or projects/assets/
.
Asset file names should have enough info in the file name to know what references it (such as the associated talk date for slides) or be in a subfolder for things with a lot of assets (such as the TigerOS project).
Current categories:
- Announcements (
announcements/
) - Events (
events/
) - Meetings & Meetups (
meetings-meetups/
; see Calendar & Placeholders) - Projects (
projects/
) - Talks (
talks/
)
(This is the short version; if you need help using git please ask us, we'll be glad to help)
- Fork the repository to your own Github account (go to the RITlug repository and click "fork")
- Clone the repository locally (if desired - you can also create it online)
- Create and/or add files
- Git commit
- Git push to your repository
- Open a pull request against the master branch (which is default) of the RITlug copy of the repository
- When your pull is merged, the site will update within a couple minutes
Jekyll is what builds the site.
It handles rendering of Markdown and templating.
Jekyll requires that all post pages start with a valid date in the syntax YYYY-MM-DD-(title).md
.
Jekyll uses something called Frontmatter to know more information about the page. Frontmatter defines what the page looks like and metadata such as the title, author, and event details (where applicable).
Frontmatter should be at the top of a post and should be encased in triple-dashes (---
).
All times are of the timezone America_New_York
.
Additionally, Jekyll uses the string <!--more-->
to define where the summary of pages end.
This is used when showing post previews on the site.
Optionally, the excerpt
frontmatter can be defined instead to override this (if using an HTML page instead of Markdown in special cases, the except
frontmatter should be used instead of <!--more-->
).
Please use this functionality to keep lists of posts readable.
For example,
---
title: Example thing
layout: post
---
Hello RITlug!
This week...
<!--more-->
Other things happening.
- Signature
If defined, the date-start
and date-end
frontmatter will replace the date specified in the file name in the iCal feed (where applicable).
More detail on frontmatter below...
Announcements are used to spread the word about what's happening.
Posts in this category are added to an RSS Feed (at https://ritlug.com/feeds/latest.xml), which get forwarded to the IRC/Slack and Google Group.
Additionally, if the page layout
is post-event
, the Calendar iCal feed with get the post added to it.
- Create a new Markdown file in
announcements/\_posts/
named with the conventionYYYY-MM-DD-wNN-your-title.md
(such as2019-12-06-w13-final-meeting.md
)
Announcing an event (such as the weekly meeting):
---
author: Jeffery Russell (@jrtechs)
title: "Final Meeting"
layout: post-event
date-start: "2019-12-06 16:30"
date-end: "2019-12-06 18:00"
location: "GOL-2620 (Med. DB Lab)"
---
General Announcement:
---
title: title of your announcement
author: your name
layout: post
---
Talks is for slides and notes about what was presented at a meeting. Posts in this category work similarly to announcements, including that they get added to an RSS Feed (at https://ritlug.com/feeds/talks.xml), forwarded to IRC/Slack, and get added to the Calendar iCal (they do not get forwarded to the Google Group though).
- Create a Markdown file in
talks/\_posts/
named with the conventionYYYY-MM-DD-wNN-your-title.md
(such as2019-03-07-w8-zfs.md
) - There is an extra line in the frontmatter called
slides
which automatically provides an embed & link for slides- This property is the filename of the talk slides
- Slides should be placed in
talks/slides/
- File names should be prefixed with year and semester (such as
2015-fall-contributing-to-github-projects.pdf
) - Slides should be exported as PDF and added committed to git
Example frontmatter:
---
title: ZFS
author: Josh Bicking (@jibby0)
layout: post
slides: 2019-spring-w08-zfs.pdf
---
Events are written after the event (to highlight what happened at the event). Events are added to the Calendar iCal, but are not added to an RSS Feed, auto-posted in IRC/Slack, nor forwarded to the Google Group.
- Create a Markdown file in
events/\_posts/
named with the conventionYYYY-MM-DD-wNN-your-title.md
(such as2018-08-08-tim-flock.md
)
Events & Projects pages tend to use image gallery functionality.
This can be done using the images
frontmatter with an array of photos and including the gallery
.
The images
parameter takes relative links to the RITlug site or absolute links for images hosted on other sites.
Example event page:
---
layout: event
title: President Tim Zabel at Fedora Flock 2018
authors:
- Tim Zabel (@Tjzabel)
excerpt: RITlug President Tim Zabel presents on TigerOS & Remixes at Fedora Flock 2018 in Dresden.
images:
- /events/assets/2018/08/tjzabel-flock.jpg
---
RITlug President Tim Zabel presents on TigerOS & Remixes at Fedora Flock 2018 in Dresden.
{% include content-blocks/gallery.html %}
> (talk abstract)
(link to talk page on conference site)
Projects are about the things the club works on. They are not added to an RSS Feed, auto-posted in IRC/Slack, added to the Calendar iCal, nor forwarded to the Google Group.
- Create a Markdown file in
events/\_posts/
named with the conventionYYYY-MM-DD-wNN-your-title.md
(such as2018-08-08-tim-flock.md
)- The date is because of a Jekyll requirement we need to list projects; it should be updated at least once a semester or notable update
Like events, projects tend to use the image gallery.
Many projects pages tend to use custom HTML (incline or entirely) to have a better show-off effect.
If using custom HTML, the excerpt
frontmatter should be set.
If doing the page entirely in custom HTML, the layout
should be set to default
, which will include the RITlug navbar & footer, but not add the white page background.
The author
/authors
frontmatter should be defined.
Additionally, the permalink
property is commonly used to give a more special URL.
---
layout: project
title: Name
authors:
- ...
permalink: /projects/name
excerpt: Cool thing we do
images:
- /...
---
(Content)
{% include content-blocks/gallery.html %}
Jekyll generates an iCal calendar feed of event announcements, talks, and events (see also relevant sections above). This feed is generated at https://ritlug.com/feeds/calendar.ics
Here's the logic for common, notable event properties:
- Titles come from the
title
frontmatter - Descriptions come from the page body; uses summaries if defined with
<!--more-->
(orexcerpt
frontmatter) - Dates:
- If specified,
date-start
anddate-end
will allow manual specification of event date and time- This is useful when the announcement of an event is not the same day as the event itself
- Also, this allows specifying times in addition to the date
- Otherwise, the date given in the file name will be used
- If specified,
- Locations can be (optionally) specified with the
location
frontmatter - URLs:
- If redirect, gives link directly
- If for post, gives post link
- Otherwise, gives the "Get Involved" page
Note: Titles get automatically prepended with "RITlug: " because an opinionated developer of the site found it was easier to read in their calendar. This is stripped on the "Calendar" page of the site.
Sometimes you want to add an event to the calendar but the details haven't been decided yet. For example, all the weekly meetings of the semester have a set time and date but the topics and presenters may not be worked out yet. Well, there's a solution for this!
- Create a Markdown in the
meetings-meetups/_posts/
folder named with the conventionYYYY-MM-DD-your-title.md
(such as2020-04-25-imaginerit.md
)
Additionally, calendar placeholders are highly encouraged to use the redirect
layout & frontmatter to specify a link for the event.
For example:
---
layout: redirect
redirect: https://ritlug.com/get-involved
date-start: "2020-04-25 16:30"
date-end: "2020-04-25 18:00"
location: "TBD"
title: "ImagineRIT"
---
Help or visit RITlug at ImagineRIT!
Stay tuned for more info closer to the event.
Placeholders can also take an rrule
frontmatter for recurring events, written to the iCal spec.
Of particular note,
The UNTIL rule part defines a DATE or DATE-TIME value that bounds the recurrence rule in an inclusive manner. If the value specified by UNTIL is synchronized with the specified recurrence, this DATE or DATE-TIME becomes the last instance of the recurrence. The value of the UNTIL rule part MUST have the same value type as the "DTSTART" property.
For example:
---
layout: redirect
redirect: https://fossrit.github.io/
date-start: "2020-01-16 17:00"
date-end: "2020-01-16 19:00"
location: "MSS-3190"
title: "FOSS Hours"
rrule: "FREQ=WEEKLY;UNTIL=20200423T190000"
---
Not a RITlug event, but one we think is worthwhile to share and you'll likely see some of us there
Edit _config.yml
and update the settings "ritlug-time", "ritlug-place", and
"ritlug-day".
These are used (and should be used) everywhere on the website
the meeting time and place are referenced so that they can be updated in
one place.
Please note that this does NOT update events in the iCal feed.