This repo contains a template for creation of course websites. The website structure is driven dynamically from a CSV
file _data/schedule.csv
. This allows the content descriptions, pages, and schedule to be easily updated with new
dates, lecture order, etc. The template is designed to build with Github Pages when pushed to Github.
Be sure to configure your GitHub repo to use GitHub Pages and point it to the main branch.
bf500_course_website
git init .
from inside the new directoryThings to do:
_data/schedule.csv
using the scheme described below_lectures/
and _assignments/
directories for each of the tags in your schedule CSV_config.yml
Set the url
and title
fields appropriatelyassets/css/style.scss
You can configure all the colors of the site using the variables in this file.relative_include
tag from index.md
so this readme doesn't appear on the main page_data/schedule.csv
The file _data/schedule.csv
specifies the details of all course content and is used to populate the site dynamically.
This should be a comma separated value file with the following columns:
Date
Any format (e.g. 1/27/2023)Day
Day of week (e.g. M, T, W, etc)Lec
Lecture number as integers (e.g. 1,2,3,...)Topic
Human-readable name of lectureTopic Tag
Machine-readable tag for lectureTopic Slide Link
Publish URL for google slidesAssignment
Human-readable name of assignmentAssignment Tag
Machine-readable tag for lectureThe first row of schedule.csv
should have the exact column names as above in that order. Each row of the spreadsheet
causes a row in the Schedule table to be created as follows:
Date
, Day
, and Lec
columns are added as-isTopic
column is populated dynamically based on the data in the row:Lec
has no value, the row is colored white. This is useful for semester dates when class is not held, e.g.
spring break.Lec
has a value, the row is colored normally, and the field contains:Topic Tag
has a value, a link to the page _lectures/<Topic Tag>.html
with the text in Topic
Topic Tag
does not have a value, the Topic
text is placed in the column with no linkAssignment
column follows the same logic as the Topic
column, except with Assignment
and Assignment Tag
values, and links are to _assignments/<Assignment Tag>.html
nschedule.md
The Tag
column values should have no spaces in them and no special characters other than hyphens -
.
The template expects there to be an individual markdown document under _lectures
or _assignments
for
each Topic Tag
or Assignment Tag
, respectively. For example, if a Topic Tag
is intro-lecture-1
, the template
looks for the file _lectures/intro-lecture-1.md
. Similarly for Assignment Tag
. The contents of the file must include
the standard markdown header at minimum:
---
---
This is additional text for the page that you can write
There are two special features on lecture pages:
Lec
value in the spreadsheet. Topic Slide Link
has a value, the slides are embedded at the top of the pageThe site is designed specifically to show Google Slides decks that have been published. The link in schedule.csv
must
be the link obtained as follows:
This work is licensed under a Creative
Commons Attribution-NonCommercial-NoDerivs 3.0 United States License.