1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/*
This file is part of jellything (https://codeberg.org/metamuffin/jellything)
which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
use crate::{
Page,
locale::{Language, tr, trs},
node_card::NodeCard,
};
use jellycommon::api::ApiHomeResponse;
use markup::DynRender;
markup::define! {
HomePage<'a>(lang: &'a Language, r: ApiHomeResponse) {
h2 { @trs(lang, "home.bin.root") } //.replace("{title}", &CONF.brand) }
ul.children.hlist {@for (node, udata) in &r.toplevel {
li { @NodeCard { node, udata, lang: &lang } }
}}
@for (name, nodes) in &r.categories {
@if !nodes.is_empty() {
h2 { @trs(&lang, &name) }
ul.children.hlist {@for (node, udata) in nodes {
li { @NodeCard { node, udata, lang: &lang } }
}}
}
}
}
}
impl Page for HomePage<'_> {
fn title(&self) -> String {
tr(*self.lang, "home").to_string()
}
fn to_render(&self) -> DynRender {
markup::new!(@self)
}
}
|