2023-10-22 15:31:45 -04:00
|
|
|
use serde::Serialize;
|
|
|
|
|
2023-10-29 15:50:09 -04:00
|
|
|
use super::footnote_definition::RenderRealFootnoteDefinition;
|
2023-10-23 23:49:35 -04:00
|
|
|
use super::GlobalSettings;
|
2023-12-17 14:30:17 -05:00
|
|
|
use super::PageHeader;
|
2023-10-24 00:01:40 -04:00
|
|
|
use super::RenderDocumentElement;
|
2023-10-23 21:51:15 -04:00
|
|
|
|
2023-10-22 15:31:45 -04:00
|
|
|
#[derive(Debug, Serialize)]
|
|
|
|
#[serde(tag = "type")]
|
2023-10-23 20:30:43 -04:00
|
|
|
#[serde(rename = "blog_post_page")]
|
|
|
|
pub(crate) struct RenderBlogPostPage {
|
2023-10-23 21:51:15 -04:00
|
|
|
global_settings: GlobalSettings,
|
|
|
|
|
2023-12-17 14:30:17 -05:00
|
|
|
page_header: Option<PageHeader>,
|
|
|
|
|
2023-10-23 21:51:15 -04:00
|
|
|
/// The title that will be shown visibly on the page.
|
2023-10-23 20:30:43 -04:00
|
|
|
title: Option<String>,
|
2023-10-23 22:38:00 -04:00
|
|
|
|
|
|
|
self_link: Option<String>,
|
2023-10-24 00:01:40 -04:00
|
|
|
|
|
|
|
children: Vec<RenderDocumentElement>,
|
2023-10-29 15:50:09 -04:00
|
|
|
|
|
|
|
footnotes: Vec<RenderRealFootnoteDefinition>,
|
2023-10-23 16:03:37 -04:00
|
|
|
}
|
|
|
|
|
2023-10-23 20:30:43 -04:00
|
|
|
impl RenderBlogPostPage {
|
2023-10-31 19:48:05 -04:00
|
|
|
// TODO: Maybe these settings should be moved into a common struct so this can have the same type signature as the others.
|
2023-10-23 21:51:15 -04:00
|
|
|
pub(crate) fn new(
|
|
|
|
global_settings: GlobalSettings,
|
2023-12-17 14:30:17 -05:00
|
|
|
page_header: Option<PageHeader>,
|
2023-10-23 21:51:15 -04:00
|
|
|
title: Option<String>,
|
2023-10-23 22:38:00 -04:00
|
|
|
self_link: Option<String>,
|
2023-10-24 00:01:40 -04:00
|
|
|
children: Vec<RenderDocumentElement>,
|
2023-10-29 15:50:09 -04:00
|
|
|
footnotes: Vec<RenderRealFootnoteDefinition>,
|
2023-10-23 21:51:15 -04:00
|
|
|
) -> RenderBlogPostPage {
|
|
|
|
RenderBlogPostPage {
|
|
|
|
global_settings,
|
2023-12-17 14:30:17 -05:00
|
|
|
page_header,
|
2023-10-23 21:51:15 -04:00
|
|
|
title,
|
2023-10-23 22:38:00 -04:00
|
|
|
self_link,
|
2023-10-24 00:01:40 -04:00
|
|
|
children,
|
2023-10-29 15:50:09 -04:00
|
|
|
footnotes,
|
2023-10-23 21:51:15 -04:00
|
|
|
}
|
2023-10-23 16:03:37 -04:00
|
|
|
}
|
2023-10-22 15:31:45 -04:00
|
|
|
}
|