Browse Source

Sort sitemap elements by permalink

Closes #257
index-subcmd
Vincent Prouillet 6 years ago
parent
commit
3a2dab5974
3 changed files with 23 additions and 19 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +20
    -19
      components/site/src/lib.rs
  3. +2
    -0
      docs/content/documentation/templates/sitemap.md

+ 1
- 0
CHANGELOG.md View File

@@ -3,6 +3,7 @@
## 0.3.3 (unreleased) ## 0.3.3 (unreleased)


- Fixed config flag in CLI - Fixed config flag in CLI
- Sitemap entries are now sorted by permalinks to avoid random ordering




## 0.3.2 (2018-03-05) ## 0.3.2 (2018-03-05)


+ 20
- 19
components/site/src/lib.rs View File

@@ -632,27 +632,26 @@ impl Site {


let mut context = Context::new(); let mut context = Context::new();


context.add(
"pages",
&self.pages
.values()
.filter(|p| !p.is_draft())
.map(|p| {
let date = match p.meta.date {
Some(ref d) => Some(d.to_string()),
None => None,
};
SitemapEntry::new(p.permalink.clone(), date)
})
.collect::<Vec<_>>()
);
context.add(
"sections",
&self.sections
let mut pages = self.pages
.values()
.filter(|p| !p.is_draft())
.map(|p| {
let date = match p.meta.date {
Some(ref d) => Some(d.to_string()),
None => None,
};
SitemapEntry::new(p.permalink.clone(), date)
})
.collect::<Vec<_>>();
pages.sort_by(|a, b| a.permalink.cmp(&b.permalink));
context.add("pages", &pages);

let mut sections = self.sections
.values() .values()
.map(|s| SitemapEntry::new(s.permalink.clone(), None)) .map(|s| SitemapEntry::new(s.permalink.clone(), None))
.collect::<Vec<_>>()
);
.collect::<Vec<_>>();
sections.sort_by(|a, b| a.permalink.cmp(&b.permalink));
context.add("sections", &sections);


let mut categories = vec![]; let mut categories = vec![];
if let Some(ref c) = self.categories { if let Some(ref c) = self.categories {
@@ -664,6 +663,7 @@ impl Site {
); );
} }
} }
categories.sort_by(|a, b| a.permalink.cmp(&b.permalink));
context.add("categories", &categories); context.add("categories", &categories);


let mut tags = vec![]; let mut tags = vec![];
@@ -676,6 +676,7 @@ impl Site {
); );
} }
} }
tags.sort_by(|a, b| a.permalink.cmp(&b.permalink));
context.add("tags", &tags); context.add("tags", &tags);
context.add("config", &self.config); context.add("config", &self.config);




+ 2
- 0
docs/content/documentation/templates/sitemap.md View File

@@ -21,3 +21,5 @@ all the variables above are arrays of `SitemapEntry` with the following type:
permalink: String; permalink: String;
date: String?; date: String?;
``` ```

All `SitemapEntry` are sorted in each variable by their permalink.

Loading…
Cancel
Save