-- home/controller.wo — the CONTROLLER for `/`: query the model, fill the -- view components that sit beside it, answer a Resp. One feature = one -- directory = one module, view and controller together. -- -- It reaches the chapter nav through `use chapter` and the query through -- the model's `Chapters.links()` static — a class crosses module lines, -- a free fn does not. use porch/http use layout use chapter pub class Home { fn handle(req: Req) -> Resp { let nav = ChapterNav { items: Chapters.links(), current: 0 }; let page = HomePage { chapter_nav: nav }; let shell = wide_shell("writeonce — learn the language", page.render()); return ok_html(shell.render()); } }