From 94d9a95967a27167c0d7b343df240b0bf0d49487 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Tue, 19 Dec 2023 14:13:29 -0500 Subject: [PATCH] Add a basic template for the blog stream page. --- .../templates/html/blog_stream.dust | 31 ++++++++++++++++++ default_environment/templates/html/main.dust | 1 + src/context/blog_stream.rs | 32 ++++++++++++++++--- 3 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 default_environment/templates/html/blog_stream.dust diff --git a/default_environment/templates/html/blog_stream.dust b/default_environment/templates/html/blog_stream.dust new file mode 100644 index 0000000..d0b5caf --- /dev/null +++ b/default_environment/templates/html/blog_stream.dust @@ -0,0 +1,31 @@ +
+ {#.children} +
+
+ {?.title}{?.self_link}{.title}{:else}
{.title}
{/.self_link}{/.title} + {! TODO: date? !} +
+ + {! TODO: Table of contents? !} + +
+ {#.children} + {>document_element/} + {/.children} + + {?.footnotes} +

Footnotes:

+ {#.footnotes} + {>real_footnote_definition/} + {/.footnotes} + {/.footnotes} +
+
+ {/.children} + {#.stream_pagination} +
+ {?.older_link}Older{/.older_link} + {?.newer_link}Newer{/.newer_link} +
+ {/.stream_pagination} +
diff --git a/default_environment/templates/html/main.dust b/default_environment/templates/html/main.dust index 375d21b..9f0f5ed 100644 --- a/default_environment/templates/html/main.dust +++ b/default_environment/templates/html/main.dust @@ -11,6 +11,7 @@
{@select key=.type} {@eq value="blog_post_page"}{>blog_post_page/}{/eq} + {@eq value="blog_stream"}{>blog_stream/}{/eq} {@none}{!TODO: make this panic!}ERROR: Unrecognized page content type{/none} {/select}
diff --git a/src/context/blog_stream.rs b/src/context/blog_stream.rs index 5c2c7a9..3cab6dc 100644 --- a/src/context/blog_stream.rs +++ b/src/context/blog_stream.rs @@ -19,8 +19,7 @@ pub(crate) struct RenderBlogStream { global_settings: GlobalSettings, page_header: Option, children: Vec, - older_link: Option, - newer_link: Option, + stream_pagination: Option, } impl RenderBlogStream { @@ -64,12 +63,17 @@ impl RenderBlogStream { }) .collect::, _>>()?; + let stream_pagination = if older_link.is_some() || newer_link.is_some() { + Some(RenderBlogStreamPagination::new(older_link, newer_link)?) + } else { + None + }; + Ok(RenderBlogStream { global_settings, page_header: Some(page_header), children, - older_link, - newer_link, + stream_pagination, }) } } @@ -87,7 +91,7 @@ pub(crate) struct RenderBlogStreamEntry { } impl RenderBlogStreamEntry { - pub(crate) fn new( + fn new( config: &Config, output_directory: &Path, output_file: &Path, @@ -123,3 +127,21 @@ impl RenderBlogStreamEntry { }) } } + +#[derive(Debug, Serialize)] +pub(crate) struct RenderBlogStreamPagination { + older_link: Option, + newer_link: Option, +} + +impl RenderBlogStreamPagination { + fn new( + older_link: Option, + newer_link: Option, + ) -> Result { + Ok(RenderBlogStreamPagination { + older_link, + newer_link, + }) + } +}