use std::path::Path; use serde::Serialize; use crate::config::Config; use crate::context::RenderDocumentElement; use crate::context::RenderRealFootnoteDefinition; use crate::error::CustomError; use crate::intermediate::BlogPost; use super::GlobalSettings; use super::PageHeader; #[derive(Debug, Serialize)] #[serde(tag = "type")] #[serde(rename = "blog_stream")] pub(crate) struct RenderBlogStream { global_settings: GlobalSettings, page_header: Option, children: Vec, older_link: Option, newer_link: Option, } impl RenderBlogStream { pub(crate) fn new( config: &Config, output_directory: &Path, output_file: &Path, original: &[&BlogPost], older_link: Option, newer_link: Option, ) -> Result { todo!() } } #[derive(Debug, Serialize)] pub(crate) struct RenderBlogStreamEntry { /// The title that will be shown visibly on the page. title: Option, self_link: Option, children: Vec, footnotes: Vec, }