Browse Source

Remove paginator.pagers

index-subcmd
Vincent Prouillet 5 years ago
parent
commit
e1aaed3c04
5 changed files with 16 additions and 26 deletions
  1. +5
    -0
      CHANGELOG.md
  2. +4
    -19
      components/pagination/src/lib.rs
  3. +5
    -2
      docs/content/documentation/templates/pagination.md
  4. +1
    -1
      test_site/templates/index_paginated.html
  5. +1
    -4
      test_site/templates/section_paginated.html

+ 5
- 0
CHANGELOG.md View File

@@ -2,7 +2,12 @@

## 0.5.0 (unreleased)

### Breaking

- Gutenberg has changed name to REPLACE_ME!
- The `pagers` variable of Paginator objects has been removed

### Others
- Update dependencies, fixing a few bugs with templates
- Load only .html files in themes from the templates folder
- Background colour is set fewer times when highlighting syntaxes


+ 4
- 19
components/pagination/src/lib.rs View File

@@ -51,17 +51,6 @@ impl<'a> Pager<'a> {
pages,
}
}

/// Returns a manually cloned Pager with the pages removed
/// for use as template context
fn clone_without_pages(&self) -> Pager<'a> {
Pager {
index: self.index,
permalink: self.permalink.clone(),
path: self.path.clone(),
pages: vec![],
}
}
}

#[derive(Clone, Debug, PartialEq)]
@@ -183,27 +172,23 @@ impl<'a> Paginator<'a> {
paginator.insert("first", to_value(&self.permalink).unwrap());
let last_pager = &self.pagers[self.pagers.len() - 1];
paginator.insert("last", to_value(&last_pager.permalink).unwrap());
paginator.insert(
"pagers",
to_value(
&self.pagers.iter().map(|p| p.clone_without_pages()).collect::<Vec<_>>()
).unwrap(),
);

// Variables for this specific page
if pager_index > 0 {
let prev_pager = &self.pagers[pager_index - 1];
paginator.insert("previous", to_value(&prev_pager.permalink).unwrap());
} else {
paginator.insert("previous", to_value::<Option<()>>(None).unwrap());
paginator.insert("previous", Value::Null);
}

if pager_index < self.pagers.len() - 1 {
let next_pager = &self.pagers[pager_index + 1];
paginator.insert("next", to_value(&next_pager.permalink).unwrap());
} else {
paginator.insert("next", to_value::<Option<()>>(None).unwrap());
paginator.insert("next", Value::Null);
}
paginator.insert("number_pagers", to_value(&self.pagers.len()).unwrap());
paginator.insert("base_url", to_value(&format!("{}{}/", self.permalink, self.paginate_path)).unwrap());
paginator.insert("pages", to_value(&current_pager.pages).unwrap());
paginator.insert("current_index", to_value(current_pager.index).unwrap());



+ 5
- 2
docs/content/documentation/templates/pagination.md View File

@@ -15,6 +15,11 @@ In addition, a paginated page gets a `paginator` variable of the `Pager` type:
```ts
// How many items per page
paginate_by: Number;
// The base URL for the pagination: section permalink + pagination path
// You can concatenate an integer with that to get a link to a given pagination page.
base_url: String;
// How many pagers in this paginator
number_pagers: Number;
// Permalink to the first page
first: String;
// Permalink to the last page
@@ -25,8 +30,6 @@ previous: String?;
next: String?;
// All pages for the current page
pages: Array<Page>;
// All pagers for this section, but with their `pages` attribute set to an empty array
pagers: Array<Pagers>;
// Which page are we on
current_index: Number;
```

+ 1
- 1
test_site/templates/index_paginated.html View File

@@ -22,7 +22,7 @@
{% endfor %}
{% if paginator.previous %}has_prev{% endif %}
{% if paginator.next %}has_next{% endif %}
Num pages: {{ paginator.pagers | length }}
Num pages: {{ paginator.number_pagers }}
Current index: {{ paginator.current_index }}
First: {{ paginator.first | safe }}
Last: {{ paginator.last | safe }}


+ 1
- 4
test_site/templates/section_paginated.html View File

@@ -4,10 +4,7 @@
{% for page in paginator.pages %}
{{page.title}}
{% endfor %}
{% for pager in paginator.pagers %}
{{pager.index}}: {{pager.path | safe }}
{% endfor %}
Num pagers: {{ paginator.pagers | length }}
Num pagers: {{ paginator.number_pagers }}
Page size: {{ paginator.paginate_by }}
Current index: {{ paginator.current_index }}
First: {{ paginator.first | safe }}


Loading…
Cancel
Save