From 53db27437eb3c93fe15cde063a3919a1500b5776 Mon Sep 17 00:00:00 2001 From: Florian Dieminger Date: Fri, 18 Oct 2024 17:37:13 +0200 Subject: [PATCH] feat(spa): 404 spa --- crates/rari-doc/src/pages/json.rs | 1 + crates/rari-doc/src/pages/types/spa.rs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/crates/rari-doc/src/pages/json.rs b/crates/rari-doc/src/pages/json.rs index 543fb704..532c3d5f 100644 --- a/crates/rari-doc/src/pages/json.rs +++ b/crates/rari-doc/src/pages/json.rs @@ -296,6 +296,7 @@ pub struct JsonBasicSPA { pub page_description: Option<&'static str>, pub only_follow: bool, pub no_indexing: bool, + pub page_not_found: bool, pub url: String, } diff --git a/crates/rari-doc/src/pages/types/spa.rs b/crates/rari-doc/src/pages/types/spa.rs index 4fde23f0..70041e16 100644 --- a/crates/rari-doc/src/pages/types/spa.rs +++ b/crates/rari-doc/src/pages/types/spa.rs @@ -33,6 +33,7 @@ pub struct BasicSPA { pub enum SPAData { BlogIndex, HomePage, + NotFound, BasicSPA(BasicSPA), } @@ -138,6 +139,16 @@ impl SPA { page_description: self.page_description, only_follow: basic_spa.only_follow, no_indexing: basic_spa.no_indexing, + page_not_found: false, + url: concat_strs!(self.base_slug.as_ref(), self.slug), + }))), + SPAData::NotFound => Ok(BuiltDocy::BasicSPA(Box::new(JsonBasicSPA { + slug: self.slug, + page_title: self.page_title, + page_description: self.page_description, + only_follow: false, + no_indexing: true, + page_not_found: true, url: concat_strs!(self.base_slug.as_ref(), self.slug), }))), SPAData::HomePage => Ok(BuiltDocy::HomePageSPA(Box::new(JsonHomePageSPA { @@ -281,6 +292,14 @@ static BASIC_SPAS: Map<&'static str, BuildSPA> = phf_map!( data: SPAData::HomePage, ..DEFAULT_BASIC_SPA }, + "404" => BuildSPA { + slug: "404", + page_title: "404", + page_description: None, + trailing_slash: false, + en_us_only: true, + data: SPAData::NotFound + }, "blog" => BuildSPA { slug: "blog", page_title: "MDN Blog",