{"id":21206639,"url":"https://github.com/oncomouse/jekyll-syllabus","last_synced_at":"2026-01-02T13:33:53.488Z","repository":{"id":149628183,"uuid":"273019521","full_name":"oncomouse/jekyll-syllabus","owner":"oncomouse","description":null,"archived":false,"fork":false,"pushed_at":"2020-06-22T18:27:28.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T15:48:42.673Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oncomouse.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-17T16:04:02.000Z","updated_at":"2020-06-22T18:27:30.000Z","dependencies_parsed_at":"2023-07-08T05:01:07.793Z","dependency_job_id":null,"html_url":"https://github.com/oncomouse/jekyll-syllabus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Fjekyll-syllabus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Fjekyll-syllabus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Fjekyll-syllabus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Fjekyll-syllabus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oncomouse","download_url":"https://codeload.github.com/oncomouse/jekyll-syllabus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243658270,"owners_count":20326467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T20:56:17.658Z","updated_at":"2026-01-02T13:33:53.430Z","avatar_url":"https://github.com/oncomouse.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jekyll-syllabus\n\nThis is a stand-alone, Github-Pages-compatible means to generate a course schedule—complete with holidays and any redefined days—from a relatively simple data file.\n\nThis inclusion is a standalone spin-off from the more complete [jekyll-course-site](https://github.com/oncomouse/jekyll-course-site), which provides an entire, simple GitHub-Pages compatible syllabus website.\n\n## What This Does\n\nInstead of having to work out a day-by-day schedule grid for a course each semester you teach it, this inclusion allows you to describe course activities in a list (if you had 30 course meetings in a semester, you could describe 30 activities) and to describe the semester in terms of start and end dates, holidays, and any redefined days. From these two collections of data, the inclusion will generate a properly-styled, responsive schedule on your website.\n\nUsing software like this allows you to keep one data file describing a course that you can use to easily generate new course websites each semester you teach the course. [Click here to see an example](https://oncomouse.github.io/jekyll-course-site/).\n\n## How To Use It\n\nThere are three files in this repository:\n\n1. `_data/schedule.yml` - This is the data file that describes your semester\n1. `_include/schedule.html` - This file generates the schedule grid\n1. `_sass/schedule.scss` - This generates the CSS needed to style the grid.\n\nCopy all three files into similar directories (`_data`, `_include`, `_sass`) in your Jekyll repository and then follow the instructions below:\n\n### Editing the schedule\n\nThe only file you need to actually edit is `_data/schedule.yml`. It contains all of the information for the schedule grid and has comments explaining how to use it.\n\n#### YAML Contents\n\nThe file contains a series of keys, optional ones are marked as such. A couple of notes, dates must be written in the form `YYYY-MM-DD` ('1924-03-21' or '2000-12-14') and you must use two digits for months and days, even if they are less than 10. Days of the week must be written in lower case ('monday' or 'saturday').\n\nThe keys are as follows:\n\n* `start` - a string containing the date on which the semester starts.\n* `end` - a string containing the date on which the semester ends.\n* `meets` - a sequence (list) containing days of the week on which your course meets.\n* `classes` - a sequence (list) of strings or blocks that describe the activities of each class in order. Each item in the sequence will be formatted using Markdown.\n* `holidays` - *optional* a sequence (list) of mappings (hashes) that define holidays. Each entry has two keys:\n\t* `date` - a string containing the date of the holiday.\n\t* `name` - a string containing the name or description of the holiday.\n* `redefined` - *optional* a sequence (list) of mappings (hashes) that define redefined days. Each entry has two keys:\n\t* `date` - a string containing the date being redefined.\n\t* `is_a` - a day of the week string containing what the redefined day functions as.\n* `weeks` - *optional* a mapping (hash) of strings. Each key in the mapping must be a week number represented as a string (`1` becomes `\"1\"`, etc.) that maps to the title for a given week of instruction.\n* `units` - *optional* a sequence (list) of mappings (hashes) that defines information about any units your course is divided into. Each entry has three keys:\n\t* `start` - a number representing the week of the semester on which a given unit starts.\n\t* `title` - *optional* a string providing a unit title.\n\t* `description` - *optional* a string or block containing a description of the unit. Will be formatted as Markdown.\n\nRead more about YAML here: [YAML](https://yaml.org/)\n\n### Adding the schedule grid\n\nThe schedule can be included anywhere in a `.md` or a `.html` file anywhere in your Jekyll repo. For instance:\n\n~~~liquid\n{% include schedule.html %}\n~~~\n\n#### Using Multiple Schedules on the Same Site\n\nYou can also use multiple schedule files on the same site by passing a `schedule` argument to the include tag. For instance, say you had a syllabus stored in `_data/engl210fall2020.yml` instead of the default `_data/schedule.yml`. You could include that schedule in your site using:\n\n~~~liquid\n{% include schedule.html schedule=\"engl210fall2020\" %}\n~~~\n\n**Note**: if the YAML and Markdown files have the same base file name (ie. `_data/engl210.yml` and `2020/engl210.md`), you do not have to include the `schedule` option and can, instead, just use the following to include the schedule grid:\n\n~~~liquid\n{% include schedule.html %}\n~~~\n\nFor more on including files, [see the Jekyll documentation on the topic](https://jekyllrb.com/docs/includes/).\n\n### Adding the styles\n\nIf you are using SCSS, you can include it in your CSS by adding the following to your site's `.scss` file:\n~~~scss\n@import \"schedule\";\n~~~\n\nIf you are using CSS only, you can include the following CSS in your site:\n\n~~~css\n.schedule__date,.schedule__no-class,.schedule__redefined-day{font-weight:700}\n.schedule__no-class-name,.schedule__redefined-class{font-style:italic}\n.schedule:before,.schedule:after{content:\"\";display:table;clear:both}\n.schedule__meeting,.schedule__week{float:left;padding-left:10px;padding-right:10px}\n.schedule__week{width:100%}\n.schedule__meeting--dummy{display:none}\n@media (min-width: 768px){\n.schedule__meeting--dummy{display:block}\n.schedule--1-per-week .schedule__meeting{width:100%}\n.schedule--2-per-week .schedule__meeting{width:50%}\n.schedule--3-per-week .schedule__meeting{width:33.3333333333%}\n.schedule--4-per-week .schedule__meeting{width:25%}\n.schedule--5-per-week .schedule__meeting{width:20%}\n.schedule--6-per-week .schedule__meeting{width:16.6666666667%}\n.schedule--7-per-week .schedule__meeting{width:14.2857142857%}\n}\n~~~\n\nTo read more about SASS/SCCS in Jekyll, [see the Jekyll documentation on the topic](https://jekyllrb.com/docs/assets/#sassscss).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foncomouse%2Fjekyll-syllabus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foncomouse%2Fjekyll-syllabus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foncomouse%2Fjekyll-syllabus/lists"}