From feaeca3880f1a17ba6775137b873cee71376b884 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 6 Oct 2025 10:11:27 +0200 Subject: Add table of contents --- server/tools/src/book.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'server/tools/src/book.rs') diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs index fc2a1502..ed310fc7 100644 --- a/server/tools/src/book.rs +++ b/server/tools/src/book.rs @@ -43,15 +43,18 @@ pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result { let mut pages = Vec::new(); pages.push(BookPage::Contents { table: vec![] }); + let mut toc = Vec::new(); for &RecipePageParams { name, repr_items } in RECIPE_PAGES { let mut diagram = recipe_diagram(data, serverdata, repr_items)?; diagram_layout(&mut diagram)?; + let title = Message::Translation { + id: format!("b.{name}.title"), + params: vec![], + }; + toc.push((title.clone(), pages.len())); pages.push(BookPage::Recipe { - title: Message::Translation { - id: format!("b.{name}.title"), - params: vec![], - }, + title, description: Message::Translation { id: format!("b.{name}.desc"), params: vec![], @@ -60,6 +63,12 @@ pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result { }); } + if let BookPage::Contents { table } = &mut pages[0] { + *table = toc; + } else { + unreachable!() + } + Ok(Book { pages }) } -- cgit v1.2.3-70-g09d2