@use plume_models::instance::Instance; @use plume_models::posts::Post; @use plume_models::timeline::Timeline; @use crate::templates::{base, partials::*}; @use crate::template_utils::*; @use crate::routes::*; @(ctx: BaseContext, instance: Instance, n_users: i64, n_articles: i64, all_tl: Vec<(Timeline, Vec)>) @:base(ctx, instance.name.clone(), {}, {}, {

@i18n!(ctx.1, "Welcome to {}"; instance.name.as_str())

@tabs(&vec![(format!("{}", uri!(instance::index)), i18n!(ctx.1, "Latest articles"), true)] .into_iter().chain(all_tl.clone() .into_iter() .map(|(tl, _)| { let url = format!("{}", uri!(timelines::details: id = tl.id, page = _)); (url, i18n_timeline_name(ctx.1, &tl.name), false) }) ).collect::>() ) @for (tl, articles) in all_tl { @if !articles.is_empty() {

@i18n_timeline_name(ctx.1, &tl.name)@i18n!(ctx.1, "View all")

@for article in articles { @:post_card(ctx, article) }
} } @:instance_description(ctx, instance, n_users, n_articles) })