diff --git a/src/command/build/render.rs b/src/command/build/render.rs index 55a56f4..a40f158 100644 --- a/src/command/build/render.rs +++ b/src/command/build/render.rs @@ -7,6 +7,7 @@ use include_dir::Dir; use crate::config::Config; use crate::error::CustomError; use crate::intermediate::convert_blog_post_page_to_render_context; +use crate::intermediate::get_web_path; use crate::intermediate::BlogPost; use crate::render::DusterRenderer; use crate::render::RendererIntegration; @@ -122,8 +123,41 @@ impl SiteRenderer { // For each group, create a RenderBlogStream. let num_stream_pages = stream_chunks.len(); - for chunk in stream_chunks { - // foo + for (page_num, chunk) in stream_chunks.into_iter().enumerate() { + let output_file = if page_num == 0 { + self.output_directory.join("index.html") + } else { + self.output_directory + .join("stream") + .join(format!("{}.html", page_num)) + }; + let newer_link = if page_num == 0 { + None + } else if page_num == 1 { + Some(get_web_path( + config, + &self.output_directory, + &output_file, + "index.html", + )?) + } else { + Some(get_web_path( + config, + &self.output_directory, + &output_file, + format!("stream/{}.html", page_num - 1), + )?) + }; + let older_link = if page_num == (num_stream_pages - 1) { + None + } else { + Some(get_web_path( + config, + &self.output_directory, + &output_file, + format!("stream/{}.html", page_num + 1), + )?) + }; } Ok(()) } diff --git a/src/context/blog_stream.rs b/src/context/blog_stream.rs index 25f21b6..f0b2846 100644 --- a/src/context/blog_stream.rs +++ b/src/context/blog_stream.rs @@ -27,7 +27,7 @@ impl RenderBlogStream { config: &Config, output_directory: &Path, output_file: &Path, - original: &Vec, + original: &[&BlogPost], ) -> Result { todo!() } diff --git a/src/intermediate/convert.rs b/src/intermediate/convert.rs index f830fcf..49bc45d 100644 --- a/src/intermediate/convert.rs +++ b/src/intermediate/convert.rs @@ -90,7 +90,7 @@ pub(crate) fn convert_blog_post_page_to_render_context, F: AsRef< Ok(ret) } -fn get_web_path, F: AsRef, P: AsRef>( +pub(crate) fn get_web_path, F: AsRef, P: AsRef>( config: &Config, output_directory: D, containing_file: F, diff --git a/src/intermediate/mod.rs b/src/intermediate/mod.rs index df8f1b2..2f165a2 100644 --- a/src/intermediate/mod.rs +++ b/src/intermediate/mod.rs @@ -77,6 +77,7 @@ pub(crate) use code::ICode; pub(crate) use comment::IComment; pub(crate) use comment_block::ICommentBlock; pub(crate) use convert::convert_blog_post_page_to_render_context; +pub(crate) use convert::get_web_path; pub(crate) use diary_sexp::IDiarySexp; pub(crate) use document_element::IDocumentElement; pub(crate) use drawer::IDrawer;