summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.rs7
-rw-r--r--src/page.rs4
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(())
}
}