From 56ad5070d2b60d68813872a6052c65139a562332 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 21 Aug 2024 13:49:50 +0200 Subject: [PATCH 01/11] Update rinja to 0.3.1 --- Cargo.lock | 14 ++++++++------ Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c3779ccc7..73dc2e742 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5006,9 +5006,9 @@ dependencies = [ [[package]] name = "rinja" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3762e3740cdbf2fd2be465cc2c26d643ad17353cc2e0223d211c1b096118bd" +checksum = "a277b2c2c91c4837a83e294e915853a3045bfc916940985e8bd6895bbc2805e0" dependencies = [ "humansize", "itoa 1.0.11", @@ -5019,9 +5019,9 @@ dependencies = [ [[package]] name = "rinja_derive" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd01fd8e15e7d19c8b8052c1d428325131e02ff1633cdcf695190c2e56ab682c" +checksum = "e122959e84d33680230169545c71498b8f162612c3a448006f746477c05062d7" dependencies = [ "basic-toml", "memchr", @@ -5031,18 +5031,20 @@ dependencies = [ "proc-macro2", "quote", "rinja_parser", + "rustc-hash", "serde", "syn 2.0.72", ] [[package]] name = "rinja_parser" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2f6bf7cef118c6de21206edf0b3f19f5ede60006be674a58ca21b6e003a1b57" +checksum = "530f3486f922197485c273f317c73a547f9e358cd8f9f421acdd935dec4c845e" dependencies = [ "memchr", "nom", + "serde", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 78daf7903..901a4f8e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ tempfile = "3.1.0" fn-error-context = "0.2.0" # Templating -rinja = "0.3" +rinja = "0.3.1" walkdir = "2" # Date and Time utilities From 12a59681d1a2b146754c532aad9f0291216a7a40 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 21 Aug 2024 14:29:26 +0200 Subject: [PATCH 02/11] Simplify some rustdoc template structs --- src/utils/html.rs | 4 ++-- src/web/page/templates.rs | 25 ++++++++++++++++++++++--- templates/crate/source.html | 1 - templates/rustdoc/head.html | 2 +- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/utils/html.rs b/src/utils/html.rs index c84867e15..239c9587c 100644 --- a/src/utils/html.rs +++ b/src/utils/html.rs @@ -19,8 +19,8 @@ pub(crate) fn rewrite_lol( use lol_html::{HtmlRewriter, MemorySettings, Settings}; let head_html = Head::new(data).render().unwrap(); - let vendored_html = Vendored::new(data).render().unwrap(); - let body_html = Body::new(data).render().unwrap(); + let vendored_html = Vendored.render().unwrap(); + let body_html = Body.render().unwrap(); let topbar_html = Topbar::new(data).render().unwrap(); // Before: ... rustdoc content ... diff --git a/src/web/page/templates.rs b/src/web/page/templates.rs index f00cbe92c..87cdf86c0 100644 --- a/src/web/page/templates.rs +++ b/src/web/page/templates.rs @@ -36,9 +36,28 @@ macro_rules! rustdoc_page { }; } -rustdoc_page!(Head, "rustdoc/head.html"); -rustdoc_page!(Vendored, "rustdoc/vendored.html"); -rustdoc_page!(Body, "rustdoc/body.html"); +#[derive(Template)] +#[template(path = "rustdoc/head.html")] +pub struct Head<'a> { + rustdoc_css_file: &'a Option, +} + +impl<'a> Head<'a> { + pub fn new(inner: &'a RustdocPage) -> Self { + Self { + rustdoc_css_file: &inner.metadata.rustdoc_css_file, + } + } +} + +#[derive(Template)] +#[template(path = "rustdoc/vendored.html")] +pub struct Vendored; + +#[derive(Template)] +#[template(path = "rustdoc/body.html")] +pub struct Body; + rustdoc_page!(Topbar, "rustdoc/topbar.html", get_metadata); /// Holds all data relevant to templating diff --git a/templates/crate/source.html b/templates/crate/source.html index 482a74488..167450d67 100644 --- a/templates/crate/source.html +++ b/templates/crate/source.html @@ -6,7 +6,6 @@ {%- endblock title -%} {%- block topbar -%} - {%- set metadata = metadata -%} {%- set current_target = String::new() -%} {%- set latest_version = "" -%} {%- set latest_path = "" -%} diff --git a/templates/rustdoc/head.html b/templates/rustdoc/head.html index c7e1fa22a..3320daa4a 100644 --- a/templates/rustdoc/head.html +++ b/templates/rustdoc/head.html @@ -1,5 +1,5 @@ {%- import "macros.html" as macros -%} - + From d0df773e21dc4e75ecdd349dc1dfdc0fc4c3d20b Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 21 Aug 2024 14:56:20 +0200 Subject: [PATCH 03/11] Remove `permalink_path` method --- src/web/build_details.rs | 3 -- src/web/builds.rs | 3 -- src/web/crate_details.rs | 4 --- src/web/features.rs | 3 -- src/web/page/templates.rs | 58 ++++++++++++++++------------------- src/web/rustdoc.rs | 5 --- src/web/source.rs | 3 -- templates/rustdoc/topbar.html | 2 +- 8 files changed, 28 insertions(+), 53 deletions(-) diff --git a/src/web/build_details.rs b/src/web/build_details.rs index 4bfbe5718..8934baf46 100644 --- a/src/web/build_details.rs +++ b/src/web/build_details.rs @@ -48,9 +48,6 @@ impl BuildDetailsPage { pub(crate) fn krate(&self) -> Option<&CrateDetails> { None } - pub(crate) fn permalink_path(&self) -> &str { - "" - } pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } diff --git a/src/web/builds.rs b/src/web/builds.rs index 45a1b6e3a..1c71eb27c 100644 --- a/src/web/builds.rs +++ b/src/web/builds.rs @@ -58,9 +58,6 @@ impl BuildsPage { pub(crate) fn krate(&self) -> Option<&CrateDetails> { None } - pub(crate) fn permalink_path(&self) -> &str { - "" - } pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } diff --git a/src/web/crate_details.rs b/src/web/crate_details.rs index a6218dd9b..d58fcfbd7 100644 --- a/src/web/crate_details.rs +++ b/src/web/crate_details.rs @@ -430,10 +430,6 @@ impl CrateDetailsPage { None } - pub(crate) fn permalink_path(&self) -> &str { - "" - } - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.details.metadata) } diff --git a/src/web/features.rs b/src/web/features.rs index db3e5be93..929e8948c 100644 --- a/src/web/features.rs +++ b/src/web/features.rs @@ -116,9 +116,6 @@ impl FeaturesPage { pub(crate) fn krate(&self) -> Option<&CrateDetails> { None } - pub(crate) fn permalink_path(&self) -> &str { - "" - } pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } diff --git a/src/web/page/templates.rs b/src/web/page/templates.rs index 87cdf86c0..833f8c0a7 100644 --- a/src/web/page/templates.rs +++ b/src/web/page/templates.rs @@ -6,36 +6,6 @@ use rinja::Template; use std::{fmt, ops::Deref, sync::Arc}; use tracing::trace; -macro_rules! rustdoc_page { - ($name:ident, $path:literal $(, $meta:ident)?) => { - #[derive(Template)] - #[template(path = $path)] - pub struct $name<'a> { - inner: &'a RustdocPage, - } - - impl<'a> $name<'a> { - pub fn new(inner: &'a RustdocPage) -> Self { - Self { inner } - } - - $( - pub(crate) fn $meta(&self) -> Option<&MetaData> { - Some(&self.inner.metadata) - } - )? - } - - impl<'a> Deref for $name<'a> { - type Target = RustdocPage; - - fn deref(&self) -> &Self::Target { - self.inner - } - } - }; -} - #[derive(Template)] #[template(path = "rustdoc/head.html")] pub struct Head<'a> { @@ -58,7 +28,33 @@ pub struct Vendored; #[template(path = "rustdoc/body.html")] pub struct Body; -rustdoc_page!(Topbar, "rustdoc/topbar.html", get_metadata); +#[derive(Template)] +#[template(path = "rustdoc/topbar.html")] +pub struct Topbar<'a> { + inner: &'a RustdocPage, + permalink_path: &'a str, +} + +impl<'a> Topbar<'a> { + pub fn new(inner: &'a RustdocPage) -> Self { + Self { + inner, + permalink_path: &inner.permalink_path, + } + } + + pub(crate) fn get_metadata(&self) -> Option<&MetaData> { + Some(&self.inner.metadata) + } +} + +impl<'a> Deref for Topbar<'a> { + type Target = RustdocPage; + + fn deref(&self) -> &Self::Target { + self.inner + } +} /// Holds all data relevant to templating #[derive(Debug)] diff --git a/src/web/rustdoc.rs b/src/web/rustdoc.rs index bb3d99c1a..50500dc1f 100644 --- a/src/web/rustdoc.rs +++ b/src/web/rustdoc.rs @@ -318,11 +318,6 @@ impl RustdocPage { Some(&self.krate) } - // Used for template rendering. - pub(crate) fn permalink_path(&self) -> &str { - &self.permalink_path - } - pub(crate) fn use_direct_platform_links(&self) -> bool { !self.latest_path.contains("/target-redirect/") } diff --git a/src/web/source.rs b/src/web/source.rs index c1cbb55f3..e8e9c6f6c 100644 --- a/src/web/source.rs +++ b/src/web/source.rs @@ -174,9 +174,6 @@ impl SourcePage { pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } - pub(crate) fn permalink_path(&self) -> &str { - "" - } pub(crate) fn krate(&self) -> Option<&CrateDetails> { None } diff --git a/templates/rustdoc/topbar.html b/templates/rustdoc/topbar.html index 392179fa6..123d12c9f 100644 --- a/templates/rustdoc/topbar.html +++ b/templates/rustdoc/topbar.html @@ -34,7 +34,7 @@ {%- if metadata.req_version|to_string == "latest" -%}
  • -
  • From c0d54a72b088cc7b3e28f0a448e022894524a869 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 21 Aug 2024 15:02:48 +0200 Subject: [PATCH 04/11] Remove `krate` methods --- src/web/build_details.rs | 4 ---- src/web/builds.rs | 4 ---- src/web/crate_details.rs | 4 ---- src/web/features.rs | 4 ---- src/web/page/templates.rs | 3 +++ src/web/rustdoc.rs | 5 ----- src/web/source.rs | 7 ++----- templates/rustdoc/topbar.html | 2 +- 8 files changed, 6 insertions(+), 27 deletions(-) diff --git a/src/web/build_details.rs b/src/web/build_details.rs index 8934baf46..b2637f1bf 100644 --- a/src/web/build_details.rs +++ b/src/web/build_details.rs @@ -2,7 +2,6 @@ use crate::{ db::types::BuildStatus, impl_axum_webpage, web::{ - crate_details::CrateDetails, error::{AxumNope, AxumResult}, extractors::{DbConnection, Path}, file::File, @@ -45,9 +44,6 @@ impl_axum_webpage! { BuildDetailsPage } // Used for template rendering. impl BuildDetailsPage { - pub(crate) fn krate(&self) -> Option<&CrateDetails> { - None - } pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } diff --git a/src/web/builds.rs b/src/web/builds.rs index 1c71eb27c..a4b1b194a 100644 --- a/src/web/builds.rs +++ b/src/web/builds.rs @@ -9,7 +9,6 @@ use crate::{ impl_axum_webpage, utils::spawn_blocking, web::{ - crate_details::CrateDetails, error::AxumResult, extractors::{DbConnection, Path}, filters, match_version, MetaData, ReqVersion, @@ -55,9 +54,6 @@ struct BuildsPage { impl_axum_webpage! { BuildsPage } impl BuildsPage { - pub(crate) fn krate(&self) -> Option<&CrateDetails> { - None - } pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } diff --git a/src/web/crate_details.rs b/src/web/crate_details.rs index d58fcfbd7..e1b6b625c 100644 --- a/src/web/crate_details.rs +++ b/src/web/crate_details.rs @@ -426,10 +426,6 @@ impl_axum_webpage! { // Used by templates. impl CrateDetailsPage { - pub(crate) fn krate(&self) -> Option<&CrateDetails> { - None - } - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.details.metadata) } diff --git a/src/web/features.rs b/src/web/features.rs index 929e8948c..46255ca0e 100644 --- a/src/web/features.rs +++ b/src/web/features.rs @@ -3,7 +3,6 @@ use crate::{ impl_axum_webpage, web::{ cache::CachePolicy, - crate_details::CrateDetails, error::{AxumNope, AxumResult}, extractors::{DbConnection, Path}, filters, @@ -113,9 +112,6 @@ impl_axum_webpage! { } impl FeaturesPage { - pub(crate) fn krate(&self) -> Option<&CrateDetails> { - None - } pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } diff --git a/src/web/page/templates.rs b/src/web/page/templates.rs index 833f8c0a7..21cd9ba0e 100644 --- a/src/web/page/templates.rs +++ b/src/web/page/templates.rs @@ -1,4 +1,5 @@ use crate::error::Result; +use crate::web::crate_details::CrateDetails; use crate::web::rustdoc::RustdocPage; use crate::web::MetaData; use anyhow::Context; @@ -33,6 +34,7 @@ pub struct Body; pub struct Topbar<'a> { inner: &'a RustdocPage, permalink_path: &'a str, + krate: &'a CrateDetails, } impl<'a> Topbar<'a> { @@ -40,6 +42,7 @@ impl<'a> Topbar<'a> { Self { inner, permalink_path: &inner.permalink_path, + krate: &inner.krate, } } diff --git a/src/web/rustdoc.rs b/src/web/rustdoc.rs index 50500dc1f..a07afff74 100644 --- a/src/web/rustdoc.rs +++ b/src/web/rustdoc.rs @@ -313,11 +313,6 @@ impl RustdocPage { .into_response()) } - // Used for template rendering. - pub(crate) fn krate(&self) -> Option<&CrateDetails> { - Some(&self.krate) - } - pub(crate) fn use_direct_platform_links(&self) -> bool { !self.latest_path.contains("/target-redirect/") } diff --git a/src/web/source.rs b/src/web/source.rs index e8e9c6f6c..fc87e1b47 100644 --- a/src/web/source.rs +++ b/src/web/source.rs @@ -4,8 +4,8 @@ use crate::{ impl_axum_webpage, storage::PathNotFoundError, web::{ - cache::CachePolicy, crate_details::CrateDetails, error::AxumNope, extractors::Path, - file::File as DbFile, filters, headers::CanonicalUrl, MetaData, ReqVersion, + cache::CachePolicy, error::AxumNope, extractors::Path, file::File as DbFile, filters, + headers::CanonicalUrl, MetaData, ReqVersion, }, AsyncStorage, }; @@ -174,9 +174,6 @@ impl SourcePage { pub(crate) fn get_metadata(&self) -> Option<&MetaData> { Some(&self.metadata) } - pub(crate) fn krate(&self) -> Option<&CrateDetails> { - None - } pub(crate) fn use_direct_platform_links(&self) -> bool { true } diff --git a/templates/rustdoc/topbar.html b/templates/rustdoc/topbar.html index 123d12c9f..ef0c364de 100644 --- a/templates/rustdoc/topbar.html +++ b/templates/rustdoc/topbar.html @@ -16,7 +16,7 @@ "version": {{ metadata.version|json_encode|safe }} } - {%- if let Some(krate) = krate() -%} + {%- if krate is defined -%}
  • {{ "cube"|fas(false, false, "") }} From 86fc567e1bf0a4c972b69ed56411cfca3a447a79 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 21 Aug 2024 15:46:11 +0200 Subject: [PATCH 05/11] Remove `get_metadata` method --- src/web/build_details.rs | 3 -- src/web/builds.rs | 3 -- src/web/crate_details.rs | 46 ++++++++------------- src/web/features.rs | 3 -- src/web/mod.rs | 6 --- src/web/page/templates.rs | 8 ++-- src/web/releases.rs | 32 +-------------- src/web/sitemap.rs | 14 +------ src/web/source.rs | 3 -- templates/crate/build_details.html | 1 - templates/crate/builds.html | 1 - templates/crate/details.html | 64 +++++++++++++++--------------- templates/crate/features.html | 1 - templates/crate/source.html | 1 - templates/header/topbar_begin.html | 2 +- templates/rustdoc/platforms.html | 2 +- templates/rustdoc/topbar.html | 7 +++- 17 files changed, 61 insertions(+), 136 deletions(-) diff --git a/src/web/build_details.rs b/src/web/build_details.rs index b2637f1bf..d0fee0a58 100644 --- a/src/web/build_details.rs +++ b/src/web/build_details.rs @@ -44,9 +44,6 @@ impl_axum_webpage! { BuildDetailsPage } // Used for template rendering. impl BuildDetailsPage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - Some(&self.metadata) - } pub(crate) fn use_direct_platform_links(&self) -> bool { true } diff --git a/src/web/builds.rs b/src/web/builds.rs index a4b1b194a..c63ef98f2 100644 --- a/src/web/builds.rs +++ b/src/web/builds.rs @@ -54,9 +54,6 @@ struct BuildsPage { impl_axum_webpage! { BuildsPage } impl BuildsPage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - Some(&self.metadata) - } pub(crate) fn use_direct_platform_links(&self) -> bool { true } diff --git a/src/web/crate_details.rs b/src/web/crate_details.rs index e1b6b625c..d45d4136d 100644 --- a/src/web/crate_details.rs +++ b/src/web/crate_details.rs @@ -1,7 +1,6 @@ use super::{match_version, MetaData}; use crate::registry_api::OwnerKind; use crate::utils::{get_correct_docsrs_style_file, report_error}; -use crate::web::rustdoc::RustdocHtmlParams; use crate::{ db::types::BuildStatus, impl_axum_webpage, @@ -12,6 +11,7 @@ use crate::{ error::{AxumNope, AxumResult}, extractors::{DbConnection, Path}, page::templates::filters, + rustdoc::RustdocHtmlParams, MatchedRelease, ReqVersion, }, AsyncStorage, @@ -32,6 +32,8 @@ use std::sync::Arc; // TODO: Add target name and versions +#[derive(Template)] +#[template(path = "crate/details.html")] #[derive(Debug, Clone, PartialEq)] pub(crate) struct CrateDetails { pub(crate) name: String, @@ -66,6 +68,12 @@ pub(crate) struct CrateDetails { pub(crate) crate_id: i32, /// Database id for this release pub(crate) release_id: i32, + pub(crate) csp_nonce: String, +} + +impl_axum_webpage! { + CrateDetails, + cpu_intensive_rendering = true, } #[derive(Debug, Clone, PartialEq)] @@ -251,6 +259,7 @@ impl CrateDetails { items_with_examples: krate.items_with_examples, crate_id: krate.crate_id, release_id: krate.release_id, + csp_nonce: String::new(), }; // get owners @@ -342,6 +351,11 @@ impl CrateDetails { pub fn latest_release(&self) -> Result<&Release> { latest_release(&self.releases).ok_or_else(|| anyhow!("crate without releases")) } + + // Used by templates. + pub(crate) fn use_direct_platform_links(&self) -> bool { + true + } } pub(crate) fn latest_release(releases: &[Release]) -> Option<&Release> { @@ -411,30 +425,6 @@ pub(crate) async fn releases_for_crate( Ok(releases) } -#[derive(Template)] -#[template(path = "crate/details.html")] -#[derive(Debug, Clone, PartialEq)] -struct CrateDetailsPage { - details: CrateDetails, - csp_nonce: String, -} - -impl_axum_webpage! { - CrateDetailsPage, - cpu_intensive_rendering = true, -} - -// Used by templates. -impl CrateDetailsPage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - Some(&self.details.metadata) - } - - pub(crate) fn use_direct_platform_links(&self) -> bool { - true - } -} - #[derive(Deserialize, Clone, Debug)] pub(crate) struct CrateDetailHandlerParams { name: String, @@ -471,11 +461,7 @@ pub(crate) async fn crate_details_handler( Err(e) => warn!("error fetching readme: {:?}", &e), } - let mut res = CrateDetailsPage { - details, - csp_nonce: String::new(), - } - .into_response(); + let mut res = details.into_response(); res.extensions_mut() .insert::(if req_version.is_latest() { CachePolicy::ForeverInCdn diff --git a/src/web/features.rs b/src/web/features.rs index 46255ca0e..9182c175a 100644 --- a/src/web/features.rs +++ b/src/web/features.rs @@ -112,9 +112,6 @@ impl_axum_webpage! { } impl FeaturesPage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - Some(&self.metadata) - } pub(crate) fn use_direct_platform_links(&self) -> bool { true } diff --git a/src/web/mod.rs b/src/web/mod.rs index b0cc58de6..319dd9db7 100644 --- a/src/web/mod.rs +++ b/src/web/mod.rs @@ -731,12 +731,6 @@ pub(crate) struct AxumErrorPage { pub csp_nonce: String, } -impl AxumErrorPage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - impl_axum_webpage! { AxumErrorPage, status = |err| err.status, diff --git a/src/web/page/templates.rs b/src/web/page/templates.rs index 21cd9ba0e..393b5ee40 100644 --- a/src/web/page/templates.rs +++ b/src/web/page/templates.rs @@ -35,6 +35,8 @@ pub struct Topbar<'a> { inner: &'a RustdocPage, permalink_path: &'a str, krate: &'a CrateDetails, + metadata: &'a MetaData, + current_target: &'a str, } impl<'a> Topbar<'a> { @@ -43,12 +45,10 @@ impl<'a> Topbar<'a> { inner, permalink_path: &inner.permalink_path, krate: &inner.krate, + metadata: &inner.metadata, + current_target: &inner.current_target, } } - - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - Some(&self.inner.metadata) - } } impl<'a> Deref for Topbar<'a> { diff --git a/src/web/releases.rs b/src/web/releases.rs index 477a05c80..61c3fee1a 100644 --- a/src/web/releases.rs +++ b/src/web/releases.rs @@ -12,7 +12,7 @@ use crate::{ extractors::{DbConnection, Path}, match_version, page::templates::filters, - MetaData, ReqVersion, + ReqVersion, }, BuildQueue, Config, InstanceMetrics, }; @@ -312,12 +312,6 @@ impl_axum_webpage! { cache_policy = |_| CachePolicy::ShortInCdnAndBrowser, } -impl HomePage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - pub(crate) async fn home_page(mut conn: DbConnection) -> AxumResult { let recent_releases = get_releases(&mut conn, 1, RELEASES_IN_HOME, Order::ReleaseTime, true).await?; @@ -366,12 +360,6 @@ struct ViewReleases { impl_axum_webpage! { ViewReleases } -impl ViewReleases { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - #[derive(Debug, Copy, Clone, PartialEq, Eq)] pub(crate) enum ReleaseType { Recent, @@ -525,12 +513,6 @@ impl Default for Search { } } -impl Search { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - async fn redirect_to_random_crate( config: Arc, metrics: Arc, @@ -739,12 +721,6 @@ struct ReleaseActivity { csp_nonce: String, } -impl ReleaseActivity { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - impl_axum_webpage! { ReleaseActivity } pub(crate) async fn activity_handler(mut conn: DbConnection) -> AxumResult { @@ -814,12 +790,6 @@ struct BuildQueuePage { impl_axum_webpage! { BuildQueuePage } -impl BuildQueuePage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - pub(crate) async fn build_queue_handler( Extension(build_queue): Extension>, Extension(pool): Extension, diff --git a/src/web/sitemap.rs b/src/web/sitemap.rs index 614521e72..ca74417c8 100644 --- a/src/web/sitemap.rs +++ b/src/web/sitemap.rs @@ -7,7 +7,7 @@ use crate::{ error::{AxumNope, AxumResult}, extractors::{DbConnection, Path}, page::templates::filters, - AxumErrorPage, MetaData, + AxumErrorPage, }, Config, }; @@ -122,12 +122,6 @@ struct AboutBuilds { csp_nonce: String, } -impl AboutBuilds { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } -} - impl_axum_webpage!(AboutBuilds); pub(crate) async fn about_builds_handler( @@ -158,12 +152,6 @@ macro_rules! about_page { } impl_axum_webpage! { $ty } - - impl $ty { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - None - } - } }; } diff --git a/src/web/source.rs b/src/web/source.rs index fc87e1b47..840532c18 100644 --- a/src/web/source.rs +++ b/src/web/source.rs @@ -171,9 +171,6 @@ impl_axum_webpage! { // Used in templates. impl SourcePage { - pub(crate) fn get_metadata(&self) -> Option<&MetaData> { - Some(&self.metadata) - } pub(crate) fn use_direct_platform_links(&self) -> bool { true } diff --git a/templates/crate/build_details.html b/templates/crate/build_details.html index 88a0270f0..d61409c51 100644 --- a/templates/crate/build_details.html +++ b/templates/crate/build_details.html @@ -10,7 +10,6 @@ {%- endblock body_classes -%} {%- block topbar -%} - {%- set current_target = String::new() -%} {%- set latest_version = "" -%} {%- set latest_path = "" -%} {%- set target = "" -%} diff --git a/templates/crate/builds.html b/templates/crate/builds.html index 9a34e6d75..957013849 100644 --- a/templates/crate/builds.html +++ b/templates/crate/builds.html @@ -14,7 +14,6 @@ {%- endblock body_classes -%} {%- block topbar -%} - {%- set current_target = String::new() -%} {%- set latest_version = "" -%} {%- set latest_path = "" -%} {%- set target = "" -%} diff --git a/templates/crate/details.html b/templates/crate/details.html index 4ccf1e88a..2a755bf28 100644 --- a/templates/crate/details.html +++ b/templates/crate/details.html @@ -2,18 +2,16 @@ {%- import "header/package_navigation.html" as navigation -%} {%- block title -%} - {% call macros::doc_title(name=details.name, version=details.version) %} + {% call macros::doc_title(name=name, version=version) %} {%- endblock title -%} {%- block meta -%} - + {%- endblock meta -%} {%- block topbar -%} - {%- set current_target = String::new() -%} - {%- set metadata = details.metadata -%} {%- set latest_path = "" -%} - {%- set inner_path = details.metadata.target_name_url() -%} + {%- set inner_path = metadata.target_name_url() -%} {%- set is_latest_version = true -%} {%- set is_prerelease = false -%} {%- include "rustdoc/topbar.html" -%} @@ -21,7 +19,7 @@ {%- block header -%} {# Set the active tab to the `crate` tab #} - {% call navigation::package_navigation(metadata=details.metadata, active_tab="crate") %} + {% call navigation::package_navigation(metadata=metadata, active_tab="crate") %} {%- endblock header -%} {%- block body -%} @@ -30,14 +28,14 @@