This repository hosts the published syllabi (as PDF) for some recent courses:
- "Exploring Poetry" (ENGL 271) spring 2024
- "History of the English Language" (ENGL 300) spring 2023
- "Introduction to Old English" (ENGL 321/441) spring 2024
- "Studies in Medieval Literature" (ENGL 323) fall 2024
- "English Poetry from Manuscript to Print" (ENGL 390) fall 2022
- "Interpreting Literature" (UCLR 100) fall 2024
Plain text components are maintained in the directories frames
, schedules
, and partials
.
Markdown files (one per course). These supply document outlines and code blocks for loading content. (See [Build], below.)
Course schedules as csv
and markdown
.
The markdown
files are created from the corresponding csv
by script.
(See [scripts].)
This directory houses all syllabus content except course schedules. Files are queryable with ZettelGeist. To do that, clone the repository. Then, assuming you have installed ZettelGeist, and activated the Python virtual environment, do the following:
$ cd path/to/zg-syllabi/partials
$ zimport --database index.db --create --fullpath --dir .
$ zfind --database index.db --get-all-tags | less
To view metadata for documents with a given tag, run (e.g.)
$ zfind --database index.db --query-string 'tags:presentation' --show-all
To view the document payloads, add the option --show-document
to the above command, or open or view the files themselves.
Filenames are included among the metadata printed by --show-all
.
For more on queries, see the ZettelGeist manual. (ZettelGeist queries have some known bugs, described in this issue).
Syllabi are built with Pandoc and LaTeX. This is done in two steps.
First, atomized components are gathered into a single Markdown file, using the lua filter include-files
.
This operation is done with build-markdown.sh
, which should be run locally.
The resulting Markdown file is read-only: editing should be done in the atomized source components.
Second, the read-only Markdown file is converted to PDF.
This is done with build-pdf.sh
, which may be run locally for testing purposes.
Deployment is done with GitHub Actions (see .github/workflows/action.yaml
).
The reason for the two-step build is transparency: the intermediate Markdown file provides a single plain-text document with clear version history.
Python scripts to generate skeleton schedules as csv
and transform the csv
into well-structured markdown
.
See comments at the head of the files.
Bibliographical details for use by Pandoc's citeproc
.
Configuration files for document conversion and formatting, including formatting of bibliographical references.