Imported from AudioCC-Lab/audiocc_deck_html (
AGENTS.md). Install upstream withnpx skills add AudioCC-Lab/audiocc_deck_html. Copyright stays with the author.
AGENTS.md — SJTU AudioCC Lab Slide Template
Auto-loaded by Codex CLI. Read this first, then read
BRIEF.mdfor the current deck state.
1. Project structure
slides.md ← all slide content (edit this)
index.html ← renderer: KaTeX pre-render + remark.js config
BRIEF.md ← current deck state: slide count, figures, rules (keep updated)
assets/figs/ ← all figures (PNG/SVG)
style/ ← CSS: style.css, multicolumn.css, callout.css, blockquote.css, table.css, toc.css
Only edit slides.md and BRIEF.md in normal use. Touch index.html only to update TOTAL_SLIDES.
2. Math rendering — the critical rule
index.html pre-renders all KaTeX on the raw markdown string before remark.create(). This is essential: remark.js's markdown parser would otherwise mangle raw LaTeX (_ → italic, * → emphasis).
| Type | Syntax | Notes |
|---|---|---|
| Display (block) | $$...$$ |
Safe for multi-line, \begin{aligned}, \underbrace, \lVert |
| Inline | $...$ |
Single line only; no $ or newline inside the delimiters |
Never use <img> PNG images for equations — inline KaTeX is always preferred.
If a formula fails to render: wrap in $$...$$ instead of $...$.
3. Slide syntax
---
# Slide Title
.left-column[
Left content. Inline math: $E = mc^2$
]
.right-column[
.figure[

.caption[Caption text]
]
]
???
Speaker notes (shown only in presenter mode)
---
- Slide separator:
---on its own line - Speaker notes: after
???, before the next--- - Incremental reveals:
--on its own line
4. Layout classes
| Class | Width |
|---|---|
.left-column / .right-column |
~55% / ~40% |
.left-column-55 / .right-column-44 |
55% / 44% |
.left-column-60 / .right-column-38 |
60% / 38% |
.left-column-100 |
100% full width |
5. Special slide classes
class: cover # Title / Thank-you slide
class: section # Section divider (dark blue bg, gold h1)
class: references # Small-font reference list
6. Utility CSS classes
Size: .tiny .scriptsize .footnotesize .small .midsize .normalsize .large .huge
Color: .red .blue .gray .white .darkred .darkblue .orange
Style: .bold .italic .center .right .left
Callout boxes:





Utility boxes:
<div class="box">Blue left-border box</div>
<div class="box box-orange">Orange variant</div>
<div class="box box-green">Green variant</div>
7. Figures
.figure[

.caption[Caption text]
]
All figure files live in assets/figs/. Always confirm a file exists before referencing it.
8. index.html — what to update
var TOTAL_SLIDES = N;— update when slide count changes (0= auto-count)- PPTX palette: header
#003D72· gold#F0BD47· footer-blue#0073CF· footer-orange#E37221
9. Workflow
- Read
BRIEF.mdto understand the current deck state before making any changes. - Edit
slides.mdincrementally — do not rewrite slides the user hasn't asked to change. - Write formulas as
$$...$$(display) or$...$(inline). Verify KaTeX syntax before saving. - Confirm figure files exist in
assets/figs/before adding![:scale]references. - After adding or removing slides, update
TOTAL_SLIDESinindex.htmland the state inBRIEF.md. - Keep
BRIEF.mdin sync with the actual state ofslides.mdafter every session.