adulbrich/cs312

Textbook ๐Ÿ“• for "CS 312 System Administration" at Oregon State University ๐Ÿฆซ

โ˜… 0Forks 0MDXGitHub โ†—Compare

Project website โ†—

README

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:

Command Action
bun install Installs dependencies
bun run dev Starts local dev server at localhost:4321
bun run build Build your production site to ./dist/
bun run preview Preview your build locally, before deploying
bun run astro ... Run CLI commands like astro add, astro check
bun run astro -- --help Get 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.

Contributors

adulbrich

Issues