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)

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


## 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();

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()
.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![];
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);

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("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;
date: String?;
```

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

Loading…
Cancel
Save