config.yml: common
The central configuration file for the site
The settings listed below should be present in every _config.yml file that uses the ucsb-cs-course-repos/course-repo-jekyll-theme, including both course level repos and offering level repos.
You can click the _config.yml links for examples of what each _config.yml looks like. Comparing what is the same, and what varies as you read over the documentation below can be helpful in understanding the structure of this file.
| Level | Site | Repo | _config.yml |
|---|---|---|---|
| Course | ucsb-cs8.github.io | ucsb-cs8/ucsb-cs8.github.io | _config.yml |
| Offering | ucsb-cs8.github.io/w19-mirza/ | ucsb-cs8/w19-mirza/ | _config.yml |
| Course | ucsb-cs24.github.io | ucsb-cs24/ucsb-cs24.github.io | _config.yml |
| Offering | ucsb-cs24.github.io/w19/ | ucsb-cs24/w19/ | _config.yml |
| Course | ucsb-cs111.github.io | ucsb-cs111/ucsb-cs111.github.io | _config.yml |
| Offering | ucsb-cs111.github.io/w19/ | ucsb-cs111/w19/ | _config.yml |
plugins: and remote_theme:
plugins: is a list of Jekyll plugins to be used. Note that when using GitHub Pages to host the site, only a very limited number of whitelisted Jekyll plugins are supported.
plugins:
- jekyll-remote-theme
- jekyll-include-cache
remote_theme: ucsb-cs-course-repos/course-repo-jekyll-theme
The jekyll-remote-theme plugin is what allows us to centrally maintain many of the files that structure our sites and give them a common set of functionality, while still allowing instructors to customize their sites to their own needs and preferences.
The jekyll-include-cache allows the use of {% include-cached foo.html % } instead of {% include foo.html % } as a performance optimization
when including files.
Note that if the include file contains references to context-specific variables or parameters, you should not use {% include-cached foo.html % }
remote_theme: specifies the github repo of the remote theme used by the jekyll-remote-theme plugin. It is the name of a github.com repo, with the https://github.com part being implied and not specified:
It is possible to specify a particular branch (e.g. the develop branch) with this syntax:
remote_theme: ucsb-cs-course-repos/course-repo-jekyll-theme@develop
See the jekyll-remote-theme README.md file for more documentation of the syntax for this line.
kramdown:, exclude:, #include and timezone:
This block should typically be copied as is. You may want to change the timezone if you are outside of California.
kramdown:
parse_block_html: false
exclude: ['vendor', 'setup.sh', 'jekyll.sh']
include:
- _pages
timezone: America/Los_Angeles