Skip to content
Agentmart
Submit a tool

course-site

Build and maintain the Quarto course website the lecture decks hang off: landing page, week table, site theme, navbar, handout hook, and publishing to GitHub…

Skill by bobbyZhong10

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/bobbyzhong10-course-site

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Build and maintain the Quarto course website the lecture decks hang off: landing page, week table, site theme, navbar, handout hook, and publishing to GitHub Pages. TRIGGER on course website, syllabus page, week table, adding a week to the site, linking a new deck, publishing the course site, or GitHub Pages for a course. Writing or repairing a deck is teaching-lecture.

Use cases: presentations, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/course-site

What's inside

Skill name
course-site
Description
Build and maintain the Quarto course website the lecture decks hang off: landing page, week table, site theme, navbar, handout hook, and publishing to GitHub Pages. TRIGGER on course website, syllabus page, week table, adding a week to the site, linking a new deck, publishing the course site, or GitHub Pages for a course. Writing or repairing a deck is teaching-lecture.
License
MIT
Instructions
420 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • files: referenced but missing: assets/logo.svg, scripts/build-handouts.sh

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Course website

This file is the canonical Empirical Workflow Kit implementation. Runtime views
defined in `workflow.manifest.yaml` link here; edit only the canonical tree.

Adapted from `ericluo04/claude-academic-workflow` at commit `8958cc246e65cdf7c36604f397a1c1719b7e2c14`; see `THIRD_PARTY_NOTICES.md`. Read `runtime-profile.yaml` for local tool, state, PDF helper, and presentation-asset paths before running commands.

One Quarto website project per course, per semester. It holds the page students
bookmark, a row for every week, the theme that makes the site and the decks read
as one system, and the publish path to GitHub Pages.

The boundary with `teaching-lecture` is hard. That skill owns a deck: slide
staging, the teaching blocks, figures, pacing, the fit gate. This skill owns the
site: `_quarto.yml`, `index.qmd`, the site theme, the navbar, handout wiring, and
publishing. `teaching-lecture` carries a short course-website section for the case
where someone arrives from the deck side. `teaching-lecture/SKILL.md` owns the
deck-level YAML and this skill owns only the site-level files.

The measured numbers below come from the example course this repo's `examples/`
lecture was extracted from; the mechanisms are what transfer to yours.

## Layout

```
$EWF_COURSE_ROOT/<course>/
  _quarto.yml                  # project, website, navbar, format, post-render
  index.qmd                    # title, subtitle, instructor line, week table
  _extensions/starter/         # the deck format, installed once by `quarto add`
  assets/
    site.scss                  # your site theme (Bootstrap variables on a bootswatch base)
    logo.svg                   # the school or course mark for the navbar
    mathjax/                   # the slide tooling's MathJax copy, so deck math self-hosts
  lectures/
    _metadata.yml              # the per-course deck config, once
    w01-prediction.qmd         # content only, no format block
    w03-evaluation.qmd
    images/                    # figures with a fixed pixel size
  R/
    make-figures.R             # pre-rendered exhibits, run from the project root
  scripts/
    build-handouts.sh          # post-render hook, builds a PDF per deck
  docs/                        # render output, committed, served by Pages
    .nojekyll
```

The decks run on the `starter-revealjs` extension format from the shared slide
tooling. Adopt it once at the project root, and give the site a MathJax copy:

```bash
cd "$EWF_COURSE_ROOT/<course>"
quarto add $EWF_PRESENTATION_ASSETS --no-prompt      # installs _extensions/starter/
cp -R $EWF_PRESENTATION_ASSETS/{mathjax,fonts} assets/
```

`assets/` holds the site theme plus the mark, and `lectures/_metadata.yml` holds
the deck config so a lecture file is content from its first line. Keep the
project out of Dropbox: rendered decks run several MB each and the sync churns
on every render.

## `_quarto.yml`

```yaml
project:
  type: website
  output-dir: docs
  render:
    - index.qmd
    - lectures/*.qmd
  resources:
    - assets/mathjax
  post-render:
    - scripts/build-handouts.sh

website:
  title: "AI and Managerial Decisions"
  navbar:
    title: false
    logo: assets/logo.svg
    logo-alt: "Your School"
    left:
      - href: index.qmd
        text: Lectures

format:
  html:
    theme: [cosmo, assets/site.scss]
    toc: false
```

`render:` is a glob, so a new lecture needs no config change. `output-dir: docs` is
what lets GitHub Pages serve from a branch subdirectory with no Actions workflow.
The `resources` entry keeps `docs/assets/mathjax/` in place across renders, which
is where the deck config below points the math.

`title: false` on the navbar is required once a logo is set. With no navbar title
Quarto falls back to `website: title`, which prints the course name beside the mark
and repeats the page title 40px below it. Setting `false` is the only way to get a
brand that is the mark alone.

`toc: false` because the landing page is one screen. Turn it on for a long
syllabus page and style the contents rail in the site theme.

Leave `title-block-banner` off. It paints a coloured band directly under the
navbar, and with a navbar that already carries the brand the top of the page
becomes two stacked mastheads.

## `lectures/_metadata.yml`

The extension format carries the deck machinery (theme, staging filter,
`citeproc: false`, the refs preset, the verified reveal defaults), so this file
holds only what is per-course:

```yaml
format:
  starter-revealjs:
    # These lectures render to docs/lectures/<name>.html and the site's MathJax
    # copy is at docs/assets/mathjax/ (the `resources` entry in _quarto.yml
    # keeps it there across renders), so the url is the path from the rendered
    # page to that copy.

From bobbyZhong10/empirical-workflow-kit, MIT.

More from bobbyZhong10/empirical-workflow-kit

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 3, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from bobbyZhong10

Cite this page

course-site skill. Agent Mart. https://agentmart.dev/skills/bobbyzhong10-course-site (last updated 2026-10-24)