diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 7 | ||||
| -rw-r--r-- | src/page.rs | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index b1312ad..ec38670 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,12 @@ impl page::Page for Vec<Story> { ) } - fn prepare_content(&self) -> Result<()> { + fn prepare_content(&mut self) -> Result<()> { + self.sort_by(|a, b| { + let date1 = a.update_date.unwrap_or(a.upload_date); + let date2 = b.update_date.unwrap_or(b.upload_date); + date2.cmp(&date1) + }); for story in self { std::fs::copy(&story.path, story.format_local_pdf_path())?; } diff --git a/src/page.rs b/src/page.rs index 5e1a22e..e05f2e2 100644 --- a/src/page.rs +++ b/src/page.rs @@ -142,7 +142,7 @@ pub trait Page: Sized { )(Self::render_content(self))) } - fn write_page(self) -> Result<()> { + fn write_page(mut self) -> Result<()> { self.prepare_content()?; let page_html = self.render_page().into_string(); let mut cfg = Cfg::new(); @@ -156,7 +156,7 @@ pub trait Page: Sized { } // use this to validate and prepare the content for the page, e.g. files - fn prepare_content(&self) -> Result<()> { + fn prepare_content(&mut self) -> Result<()> { Ok(()) } } |
