use crate::*; struct Member { name: String, website: String, title: String, } impl From<&(&str, &str, &str)> for Member { fn from(tuple: &(&str, &str, &str)) -> Self { Member { name: tuple.0.to_string(), website: tuple.1.to_string(), title: tuple.2.to_string(), } } } #[derive(Template)] #[template(path = "main_page.html.j2")] struct MainPageTemplate { members: Vec, } pub fn main_page(ctx: &BuildContext) -> Result<()> { log_info("Rendering main pageā€¦"); let members = [ ("charlotte som", "https://char.lt/", "founder"), ( "agatha lovelace", "https://technogothic.net/", "vampy wolfy", ), ( "annie versario", "https://versary.town", "marquee technician", ), ("ella paws", "#", ""), ( "maia arson crimew", "https://maia.crimew.gay/", "tiny kitten", ), ("easrng", "https://easrng.net/", "cursed code contributor"), ("luna nova", "https://luna.mint.lgbt", "local anime catgirl/ruby enthusiast"), ]; ctx.write( "index.html", MainPageTemplate { members: members.iter().map(|x| x.into()).collect(), } .render()?, )?; Ok(()) }