Skip to content

Repository files navigation

CS 312: System Administration

This repository contains the source code for the CS312 website.

Contributing

Course-design and content work is tracked in issues, organised by area (area:lectures, area:labs, ...) and by kind of work (type:content, type:decision, ...). The Next Iteration milestone holds what is committed for the next offering; Backlog holds what is wanted but not yet scheduled.

Found a typo, a broken link, or an instruction that does not work? Please open an issue.

The per-term instructor checklist lives in .github/ISSUE_TEMPLATE/term-setup.md; open a fresh copy of it at the start of each term.

PDFs

The scripts/generate-pdfs.sh helper will retrieve and generate individual PDFs for all lectures, studios, assignments, and practicalities from the live deployment. It will then generate a combined version of all files. To run it, use:

cd scripts
chmod +x ./generate-pdfs.sh
./generate-pdfs.sh

You can change the BASE variable in the script to point to a different deployment if needed.

To generate slides from marp, use:

cd slides
bun x @marp-team/marp-cli@latest intro.md --pdf --allow-local-files

To generate a PDF from a single MD file, use:

# TODO: improve because this is very average
pandoc input.md --pdf-engine=wkhtmltopdf -V margin=1in -o output.pdf

🚀 Project Structure

Inside of your Astro + Starlight project, you'll see the following folders and files:

.
├── .claude/
│ └── skills/
├── .github/
│ └── ISSUE_TEMPLATE/
├── canvas/
├── public/
├── scripts/
├── slides/
├── src/
│ ├── assets/
│ ├── components/
│ ├── content/
│ │ ├── docs/
│ │ └── config.ts
│ └── env.d.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json

Important directories and files include:

  • .claude/skills/: authoring skills that define the house style for lectures, labs, activities, and assignments
  • canvas/: assets for Canvas LMS (TSV rubrics, HTML assignments). The assignment pages import these TSVs at build time, so they are not optional
  • scripts/: helper scripts for generating PDFs, etc.
  • slides/: slide decks for lectures in Marp Markdown format
  • src/content/docs/: all lecture notes, studios, assignments, practicalities, and other documentation, in mdx format
  • src/components/: reusable components for assignments and lectures, including a LaTeX component, and reactive Svelte components for assignments
  • astro.config.mjs: Astro configuration file, update sidebar entries here

🧞 Commands

All commands are run from the root of the project, from a terminal:

CommandAction
bun installInstalls dependencies
bun run devStarts local dev server at localhost:4321
bun run buildBuild your production site to ./dist/
bun run previewPreview your build locally, before deploying
bun run astro ...Run CLI commands like astro add, astro check
bun run astro -- --helpGet help using the Astro CLI

Resources

License

Licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). See LICENSE.

You may share and adapt this material, including commercially, provided you give appropriate credit and license your adaptations under the same terms.

About

Textbook 📕 for "CS 312 System Administration" at Oregon State University 🦫

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages