aboutsummaryrefslogtreecommitdiff
path: root/server/tools/src/book.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-06 10:11:27 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-06 10:11:27 +0200
commitfeaeca3880f1a17ba6775137b873cee71376b884 (patch)
treee6f09450554c0ee1e6ab265f920a214316cbbb6c /server/tools/src/book.rs
parentd9aa659010f8ffd443133657cca6c541097cc1aa (diff)
downloadhurrycurry-feaeca3880f1a17ba6775137b873cee71376b884.tar
hurrycurry-feaeca3880f1a17ba6775137b873cee71376b884.tar.bz2
hurrycurry-feaeca3880f1a17ba6775137b873cee71376b884.tar.zst
Add table of contents
Diffstat (limited to 'server/tools/src/book.rs')
-rw-r--r--server/tools/src/book.rs17
1 files changed, 13 insertions, 4 deletions
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<Book> {
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<Book> {
});
}
+ if let BookPage::Contents { table } = &mut pages[0] {
+ *table = toc;
+ } else {
+ unreachable!()
+ }
+
Ok(Book { pages })
}