use std::sync::Arc; use askama::Template; use axum::{response::Response, Extension}; use crate::{ git::ReadmeFormat, into_response, methods::repo::{Repository, RepositoryPath, Result}, Git, }; #[derive(Template)] #[template(path = "repo/about.html")] pub struct View { repo: Repository, readme: Option<(ReadmeFormat, Arc)>, } pub async fn handle( Extension(repo): Extension, Extension(RepositoryPath(repository_path)): Extension, Extension(git): Extension>, ) -> Result { let open_repo = git.clone().repo(repository_path).await?; let readme = open_repo.readme().await?; Ok(into_response(&View { repo, readme })) }