From 2981fea089104a017ddea2f8b56e25a6b1f8802c Mon Sep 17 00:00:00 2001 From: Florian Dieminger Date: Mon, 16 Sep 2024 16:55:08 +0200 Subject: [PATCH] fix(homepage): use hyData --- crates/rari-doc/src/pages/json.rs | 13 ++++--- crates/rari-doc/src/pages/types/spa.rs | 47 +++++++++++++------------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/crates/rari-doc/src/pages/json.rs b/crates/rari-doc/src/pages/json.rs index 097bab66..3ce60c90 100644 --- a/crates/rari-doc/src/pages/json.rs +++ b/crates/rari-doc/src/pages/json.rs @@ -346,10 +346,7 @@ where } #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] -pub struct JsonHomePageSPA { - pub slug: &'static str, - pub url: String, - pub page_title: &'static str, +pub struct JsonHomePageSPAHyData { pub page_description: Option<&'static str>, pub featured_articles: Vec, pub featured_contributor: Option, @@ -357,6 +354,14 @@ pub struct JsonHomePageSPA { pub recent_contributions: ItemContainer, } +#[derive(Debug, Clone, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct JsonHomePageSPA { + pub hy_data: JsonHomePageSPAHyData, + pub page_title: &'static str, + pub url: String, +} + #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] pub struct JsonGenericHyData { diff --git a/crates/rari-doc/src/pages/types/spa.rs b/crates/rari-doc/src/pages/types/spa.rs index 7dc14591..045299e2 100644 --- a/crates/rari-doc/src/pages/types/spa.rs +++ b/crates/rari-doc/src/pages/types/spa.rs @@ -17,7 +17,7 @@ use crate::cached_readers::blog_files; use crate::error::DocError; use crate::pages::json::{ BlogIndex, BuiltDocy, HyData, ItemContainer, JsonBasicSPA, JsonBlogPost, JsonBlogPostDoc, - JsonHomePageSPA, + JsonHomePageSPA, JsonHomePageSPAHyData, }; use crate::pages::page::{Page, PageLike, PageReader}; use crate::pages::title::page_title; @@ -129,30 +129,31 @@ impl SPA { url: strcat!(self.base_slug.as_ref() self.slug), }))), SPAData::HomePage => Ok(BuiltDocy::HomePageSPA(Box::new(JsonHomePageSPA { - slug: self.slug, url: strcat!("/" self.locale().as_url_str() "/" self.slug), page_title: self.page_title, - page_description: self.page_description, - featured_articles: featured_articles( - &[ - "/en-US/blog/mdn-scrimba-partnership/", - "/en-US/blog/learn-javascript-console-methods/", - "/en-US/blog/introduction-to-web-sustainability/", - "/en-US/docs/Web/API/CSS_Custom_Highlight_API", - ], - self.locale, - )?, - featured_contributor: featured_contributor(self.locale)?, - latest_news: ItemContainer { - items: lastet_news(&[ - "/en-US/blog/mdn-scrimba-partnership/", - "/en-US/blog/mdn-http-observatory-launch/", - "/en-US/blog/mdn-curriculum-launch/", - "/en-US/blog/baseline-evolution-on-mdn/", - ])?, - }, - recent_contributions: ItemContainer { - items: recent_contributions()?, + hy_data: JsonHomePageSPAHyData { + page_description: self.page_description, + featured_articles: featured_articles( + &[ + "/en-US/blog/mdn-scrimba-partnership/", + "/en-US/blog/learn-javascript-console-methods/", + "/en-US/blog/introduction-to-web-sustainability/", + "/en-US/docs/Web/API/CSS_Custom_Highlight_API", + ], + self.locale, + )?, + featured_contributor: featured_contributor(self.locale)?, + latest_news: ItemContainer { + items: lastet_news(&[ + "/en-US/blog/mdn-scrimba-partnership/", + "/en-US/blog/mdn-http-observatory-launch/", + "/en-US/blog/mdn-curriculum-launch/", + "/en-US/blog/baseline-evolution-on-mdn/", + ])?, + }, + recent_contributions: ItemContainer { + items: recent_contributions()?, + }, }, }))), }