aboutsummaryrefslogtreecommitdiff
path: root/server/tools/src/book_html.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/tools/src/book_html.rs')
-rw-r--r--server/tools/src/book_html.rs22
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 }