Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
*.pdf
.DS_Store
node_modules/
_site/
1 change: 1 addition & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"default": true,
"MD013": { "line_length": 150 },
"MD024": false,
"MD025": false,
"MD033": false,
"MD041": false
}
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
_site/
27 changes: 23 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
OUTDIR ?= _site
MARKDOWNS := $(wildcard **/*.md)

# Decks live in per-curriculum subdirectories; -mindepth 2 keeps README.md out.
MARKDOWNS := $(shell find . -mindepth 2 -name '*.md' \
-not -path './node_modules/*' -not -path './$(OUTDIR)/*' | sed 's|^\./||' | sort)
PDFS := $(patsubst %.md,$(OUTDIR)/%.pdf,$(MARKDOWNS))
MDFLAGS := -f markdown -t beamer -s -H include.tex -V aspectratio:169 -V urlcolor:red
HTMLFLAGS := -f markdown -t html5 -s --template index.template.html --lua-filter index.lua

.PHONY: all check clean format format-check lint

all: $(PDFS) $(OUTDIR)/index.html

check: format-check lint

all: $(PDFS)
format:
npm run format

format-check:
npm run format-check

lint:
npm run lint

$(OUTDIR)/%.pdf: %.md
mkdir -p $(dir $@) && pandoc $(MDFLAGS) --output $@ $^

.PHONY: clean
$(OUTDIR)/index.html: README.md index.template.html index.lua
mkdir -p $(dir $@) && pandoc $(HTMLFLAGS) --output $@ $<

clean:
rm -f $(PDFS)
rm -f $(PDFS) $(OUTDIR)/index.html
39 changes: 27 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@

Here you can find slides for Clean Code conversations or classes.

## Development

Install Node.js 24 or later, Pandoc, and LaTeX. Then install the development dependencies and run
the validation and rendering steps:

```shell
npm ci --ignore-scripts
make check
make -j
```

Everything under `_site` is generated. Each deck renders to a PDF, and the published index page is
built from the Curriculum section below via `index.template.html` and `index.lua`, so the tables
here are the only place the curriculum is edited.

## Curriculum

### Fundamentals (Yellow Belt)
Expand Down Expand Up @@ -94,15 +109,15 @@ Here you can find slides for Clean Code conversations or classes.

### Legacy Code (Blue Belt)

| # | Session Type | Name |
| --: | ------------ | ------------------------------------------------------------------------------------------------------ |
| 1 | Discussion | [Understanding Legacy Code](legacy-code/01-understanding-legacy.md) |
| 2 | Kata | [Identifying Legacy Code Kata](legacy-code/02-kata-identifying.md) |
| 3 | Discussion | [Building a Safety Net](legacy-code/03-safety-net.md) |
| 4 | Kata | [Characterization Testing Kata](legacy-code/04-kata-characterization-testing.md) |
| 5 | Discussion | [Safe, Non-Invasive Changes](legacy-code/05-safe-changes.md) |
| 6 | Kata | [Sprouting & Wrapping Kata](legacy-code/06-kata-sprouting-wrapping.md) |
| 7 | Discussion | [Core Dependency Breaking Techniques](legacy-code/07-dependency-breaking.md) |
| 8 | Kata | [Dependency Breaking Kata](legacy-code/08-kata-dependency-breaking.md) |
| 9 | Discussion | [Advanced Topics & Large-Scale Strategy](legacy-code/09-advanced-topics.md) |
| 10 | Kata | [Large-Scale Refactoring Kata](legacy-code/10-kata-large-scale-refactoring.md) |
| # | Session Type | Name |
| --: | ------------ | -------------------------------------------------------------------------------- |
| 1 | Discussion | [Understanding Legacy Code](legacy-code/01-understanding-legacy.md) |
| 2 | Kata | [Identifying Legacy Code Kata](legacy-code/02-kata-identifying.md) |
| 3 | Discussion | [Building a Safety Net](legacy-code/03-safety-net.md) |
| 4 | Kata | [Characterization Testing Kata](legacy-code/04-kata-characterization-testing.md) |
| 5 | Discussion | [Safe, Non-Invasive Changes](legacy-code/05-safe-changes.md) |
| 6 | Kata | [Sprouting & Wrapping Kata](legacy-code/06-kata-sprouting-wrapping.md) |
| 7 | Discussion | [Core Dependency Breaking Techniques](legacy-code/07-dependency-breaking.md) |
| 8 | Kata | [Dependency Breaking Kata](legacy-code/08-kata-dependency-breaking.md) |
| 9 | Discussion | [Advanced Topics & Large-Scale Strategy](legacy-code/09-advanced-topics.md) |
| 10 | Kata | [Large-Scale Refactoring Kata](legacy-code/10-kata-large-scale-refactoring.md) |
Loading
Loading