Documentation site for the Intro to RL Course (Fall Guys).
Material for MkDocs is a powerful, production-ready documentation theme built on top of MkDocs. It turns plain Markdown files into a beautiful, searchable documentation site, complete with syntax highlighting, tabbed content, callout boxes, dark/light mode, and much more.
In short: you write Markdown, Material for MkDocs makes it look great.
Make sure you have uv installed. uv is a fast Python package manager used to manage this project's dependencies.
# Install uv (if you haven't already)
curl -LsSf https://astral.sh/uv/install.sh | shClone the repo and activate the virtual environment.
macOS / Linux
source .venv/bin/activateWindows
.venv\Scripts\activateIf the .venv folder doesn't exist yet, create it first:
uv syncThis will install all dependencies (including mkdocs-material) listed in pyproject.toml.
Once your environment is activated, run:
mkdocs serveThen open your browser at http://127.0.0.1:8000. The site hot-reloads whenever you save a file — no need to restart.
All documentation lives in the docs/ folder as Markdown (.md) files.
-
Create a new
.mdfile insidedocs/(or a subdirectory):docs/my-new-topic.md -
Add it to the navigation in
mkdocs.ymlunder the appropriate section:nav: - Welcome: index.md - Introduction: - Reinforcement Learning Theory: introduction/rl-theory.md - ML Agent Theory: introduction/ml-agent-theory.md - Installation: - MacOS: installation/macos.md - Windows: installation/windows.md - Tensorboard: installation/tensorboard.md - Levels: - Level 0: levels/level-0.md # ...
-
Start writing! The filename becomes the URL slug.
Code blocks use triple backticks with a language identifier for syntax highlighting. We use Pygments for language support — nearly every language is supported.
```python
def reward(state, action):
return 1 if action == optimal(state) else -1
```Add linenums="1" to enable line numbers (starting from line 1):
```python linenums="1"
def reward(state, action):
return 1 if action == optimal(state) else -1
```Use hl_lines to draw attention to specific lines:
```python linenums="1" hl_lines="2 3"
def reward(state, action):
if action == optimal(state):
return 1
return -1
```You can also highlight a range: hl_lines="2-4".
Common language identifiers:
python,javascript,typescript,bash,yaml,json,html,css,sql,rust,goSee the full list at pygments.org/docs/lexers.
Tabs are great for presenting the same concept at different depths. Use the === "Tab Name" syntax from pymdownx.superfences.
Recommended structure: use three depth tiers for every concept so readers can engage at their own level.
=== "Just the Basics"
A simple, high-level explanation here. Keep it jargon-free.
=== "Good Understanding"
Go a layer deeper. Introduce key terms and light formalism.
=== "Deep Knowledge"
Full technical depth and implementation details.
Tip: Every section of the docs should have all three tabs. The last tab ("Deep Knowledge") is where you can go as technical as you like — readers who just want the basics can safely ignore it.
Callouts highlight important information. Use the !!! type "Title" syntax.
Supported types: note, abstract, info, tip, success, question, warning, failure, danger, bug, example, quote
→ Full list at squidfunk.github.io/mkdocs-material/reference/admonitions/#supported-types
!!! tip "Pro Tip"
Use a small learning rate (e.g. `0.001`) when your reward signal is noisy.
!!! warning "Watch Out"
Setting `gamma = 1.0` can cause divergence in non-episodic environments.
!!! note
This section assumes you're familiar with Markov Decision Processes.
!!! info "Further Reading"
Check out Sutton & Barto's *Reinforcement Learning: An Introduction* for the full theory.Convention for this project: Use
tipandhint-style callouts to surface practical advice and gotchas. Avoid overusingwarningordanger— save those for genuinely risky or confusing areas.
Add a ? instead of ! to make a callout collapsible:
??? tip "Click to reveal a hint"
Try initialising Q-values optimistically (e.g. all zeros → all ones) to encourage exploration.FallGuysDocs/
├── docs/ # All Markdown source files
│ ├── index.md # Welcome / home page
│ ├── introduction/
│ │ ├── rl-theory.md
│ │ └── ml-agent-theory.md
│ ├── installation/
│ │ ├── macos.md
│ │ ├── windows.md
│ │ └── tensorboard.md
│ ├── levels/
│ │ ├── level-0.md … level-5.md
│ └── assets/ # Images, logos, custom CSS
│ ├── logo.png
│ ├── favicon.ico
│ └── custom.css
├── mkdocs.yml # Site configuration & navigation
├── pyproject.toml # Python dependencies (mkdocs-material)
└── uv.lock # Locked dependency versions
| Task | Command |
|---|---|
| Install dependencies | uv sync |
| Activate environment (mac/linux) | source .venv/bin/activate |
| Activate environment (windows) | .venv\Scripts\activate |
| Serve docs locally | mkdocs serve |
| Build static site | mkdocs build |