diff options
Diffstat (limited to 'server/tools/src/book_html.rs')
-rw-r--r-- | server/tools/src/book_html.rs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/server/tools/src/book_html.rs b/server/tools/src/book_html.rs index 089fc8f9..f915444b 100644 --- a/server/tools/src/book_html.rs +++ b/server/tools/src/book_html.rs @@ -16,6 +16,7 @@ */ +use hurrycurry_locale::Locale; use hurrycurry_protocol::{ Gamedata, Message, book::{Book, BookPage, Diagram}, @@ -23,12 +24,12 @@ use hurrycurry_protocol::{ use crate::diagram_svg::diagram_svg; -pub fn render_html_book(data: &Gamedata, book: &Book) -> String { - BookR { book, data }.to_string() +pub fn render_html_book(data: &Gamedata, book: &Book, locale: &Locale) -> String { + BookR { book, data, locale }.to_string() } markup::define! { - BookR<'a>(data: &'a Gamedata, book: &'a Book) { + BookR<'a>(data: &'a Gamedata, book: &'a Book, locale: &'a Locale) { @markup::doctype() html { head { @@ -37,12 +38,12 @@ markup::define! { } body { @for (index, page) in book.pages.iter().enumerate() { - @PageR { data, page, index } + @PageR { data, locale, page, index } } } } } - PageR<'a>(index: usize, data: &'a Gamedata, page: &'a BookPage) { + PageR<'a>(index: usize, data: &'a Gamedata, locale: &'a Locale, page: &'a BookPage) { section.pagegroup[id=format!("page{index}")] { @match page { BookPage::Cover => { @@ -51,8 +52,8 @@ markup::define! { } BookPage::Recipe { title, description, diagram } => { div.page { - h1 { @MessageR { data, message: title } } - p { @MessageR { data, message: description } } + h1 { @MessageR { data, locale, message: title } } + p { @MessageR { data, locale, message: description } } } div.page { @DiagramR { data, diagram } @@ -62,10 +63,11 @@ markup::define! { div.page {} div.page {} } - BookPage::Contents { table } => { + BookPage::Contents { title, table } => { div.page { + h1 { @MessageR { data, locale, message: title } } ol { @for (label, page) in table { - li { a[href=format!("#page{page}")] { @MessageR { data, message: label } } } + li { a[href=format!("#page{page}")] { @MessageR { data, locale, message: label } } } }} } div.page {} @@ -74,7 +76,7 @@ markup::define! { } } - MessageR<'a>(data: &'a Gamedata, message: &'a Message) { + MessageR<'a>(data: &'a Gamedata, locale: &'a Locale, message: &'a Message) { @match message { Message::Translation { id, params } => { @format!("{:?}", (id, params)) } Message::Text(t) => { @t } |