Introduce an array of document elements.

This commit is contained in:
Tom Alexander 2023-10-24 00:01:40 -04:00
parent 3cfcae25a9
commit 77f8375d7a
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
6 changed files with 40 additions and 1 deletions

View File

@ -39,7 +39,12 @@ pub(crate) fn convert_blog_post_page_to_render_context<D: AsRef<Path>, F: AsRef<
output_file.strip_prefix(output_directory)?,
)?;
let ret = RenderBlogPostPage::new(global_settings, page.title.clone(), Some(link_to_blog_post));
let ret = RenderBlogPostPage::new(
global_settings,
page.title.clone(),
Some(link_to_blog_post),
Vec::new(),
);
Ok(ret)
}

View File

@ -1,6 +1,7 @@
use serde::Serialize;
use super::GlobalSettings;
use super::RenderDocumentElement;
#[derive(Debug, Serialize)]
#[serde(tag = "type")]
@ -12,6 +13,8 @@ pub(crate) struct RenderBlogPostPage {
title: Option<String>,
self_link: Option<String>,
children: Vec<RenderDocumentElement>,
}
impl RenderBlogPostPage {
@ -19,11 +22,13 @@ impl RenderBlogPostPage {
global_settings: GlobalSettings,
title: Option<String>,
self_link: Option<String>,
children: Vec<RenderDocumentElement>,
) -> RenderBlogPostPage {
RenderBlogPostPage {
global_settings,
title,
self_link,
children,
}
}
}

View File

@ -0,0 +1,11 @@
use serde::Serialize;
use super::RenderHeading;
use super::RenderSection;
#[derive(Debug, Serialize)]
#[serde(untagged)]
pub(crate) enum RenderDocumentElement {
Heading(RenderHeading),
Section(RenderSection),
}

6
src/types/heading.rs Normal file
View File

@ -0,0 +1,6 @@
use serde::Serialize;
#[derive(Debug, Serialize)]
#[serde(tag = "type")]
#[serde(rename = "heading")]
pub(crate) struct RenderHeading {}

View File

@ -1,5 +1,11 @@
mod blog_post_page;
mod document_element;
mod global_settings;
mod heading;
mod section;
pub(crate) use blog_post_page::RenderBlogPostPage;
pub(crate) use document_element::RenderDocumentElement;
pub(crate) use global_settings::GlobalSettings;
pub(crate) use heading::RenderHeading;
pub(crate) use section::RenderSection;

6
src/types/section.rs Normal file
View File

@ -0,0 +1,6 @@
use serde::Serialize;
#[derive(Debug, Serialize)]
#[serde(tag = "type")]
#[serde(rename = "section")]
pub(crate) struct RenderSection {}