Follow-up to #1424. The link-rot tracker reported 405 broken URLs on
the Slides site, dominated by `tinyMLx/courseware/raw/master/edX/...`
references. After de-duplicating, only 6 unique URLs were actually
broken — the other ~325 occurrences were references to those same
6 dead targets repeated across the deck inventory pages.
Cross-checking each broken path against the upstream repo's actual
contents (via the GitHub Contents API) revealed two categories:
CATEGORY A — file exists with extended title; URL needs encoding
- readings/5-11-1.pdf → readings/5-11-1%20Responsible%20AI%20Intro.pdf
- readings/5-11-3.pdf → readings/5-11-3%20Sustainable%20AI.pdf
Both upstream files contain the title in the filename
(e.g. "5-11-1 Responsible AI Intro.pdf"). The bare-number form in our
source matched the upstream README, which is itself broken; the
URL-encoded extended form returns 200.
CATEGORY B — file genuinely missing in upstream repo
- other/2-1-14.pdf ("Assignment Solution")
- readings/4-7-11.pdf ("Deploying a Multi-Tenant Application")
- slides/3-1-6.pdf ("What You'll Learn in This Course")
- slides/5-6-X.pdf ("Model Conversion") — `X` is a literal placeholder
in the upstream README too
No correct URL exists; the upstream README references these as
broken links. Replaced the entire `<a>` cell content with an em-dash
(—), preserving the table layout and the topic name in the adjacent
cell, but removing the broken link.
Files touched:
slides/tinyml-mlops.qmd (2 URL fixes + 1 em-dash)
slides/tinyml-applications.qmd (1 em-dash)
slides/tinyml-deploying.qmd (1 em-dash)
slides/tinyml-fundamentals.qmd (1 em-dash)
After this lands, the next nightly link-rot run should report Slides
site clean of `tinyMLx/courseware` failures.
Quarto strips <a> tags without href, so the data-tinyml JS approach
didn't work. Replaced with direct URLs on the badge elements:
topic name is plain text, SLIDES/READING/COLAB badges are <a> links
pointing to github.com/tinyMLx/courseware/raw/master/edX/...
- Removed JS script blocks from all TinyML pages
- 325 badge links now point directly to source PDFs
- Badge CSS updated for link styling with hover state
- Split single long tinyml.qmd into overview + 4 course detail pages
(fundamentals, applications, deploying, mlops)
- Each section now renders as its own module-card box
- Topic names with Slides/Reading/Colab badges instead of numbers
- Overview page shows 4 course cards with material counts
- Added Related Resources section linking syllabus, kits, textbook
- Moved shared styles (vol-grid, vol-card, section-header, inv-table)
from index.qmd inline to styles.css for reuse across pages
- Renamed navbar/sidebar to "TinyML Courseware"