Skip to content

Commit 11b2d7b

Browse files
committed
Add archive pages
1 parent 84f4569 commit 11b2d7b

4 files changed

Lines changed: 58 additions & 5 deletions

File tree

.eleventy.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,27 @@ module.exports = function (config) {
3636
return versions.filter((v) => v.value !== version);
3737
});
3838

39+
config.addJavaScriptFunction('filterArchives', function (archives) {
40+
archives = archives.filter((archive) => {
41+
return archive[0] && archive[0]?.pages;
42+
});
43+
44+
archives = archives.flat(1);
45+
46+
archives = archives.filter((archive) => {
47+
return archive.pages.length > 1;
48+
});
49+
50+
archives = archives.map((archive) => {
51+
archive.title = archive?.pages[0]?.data?.sectionTitle || '';
52+
archive.version = Number(archive.parent.slug.replace('v', ''));
53+
54+
return archive;
55+
});
56+
57+
return archives;
58+
});
59+
3960
// Plugins
4061
config.addPlugin(require('eleventy-plugin-toc'));
4162
// Required for sitemap.

_includes/base.njk

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
{% set version = version
2-
if version
3-
else 1
4-
%}
1+
{% if archive.version %}
2+
{% set version = archive.version %}
3+
{% endif %}
4+
5+
{% if not version %}
6+
{% set version = 1 %}
7+
{% endif %}
58

69
{% include 'html-head.njk' %}
710

_includes/page.njk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
{% block content %}
44
<article>
5-
<h1>{{ title }}</h1>
5+
{% if title|length %}
6+
<h1>{{ title }}</h1>
7+
{% endif %}
68

79
{% set toc = content|toc %}
810

content-static/archives.njk

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---js
2+
{
3+
layout: "page",
4+
pagination: {
5+
data: "collections",
6+
size: 1,
7+
alias: "archive",
8+
resolve: "values",
9+
before: function(paginationData) {
10+
return this.filterArchives(paginationData);
11+
}
12+
},
13+
permalink: "{{ archive.parent.slug }}/{{ archive.slug }}/index.html"
14+
}
15+
---
16+
17+
<h1>{{ archive.pages[0].data.sectionTitle }}</h1>
18+
19+
<p>Pages in this section:</p>
20+
21+
<ul>
22+
{% for page in archive.pages %}
23+
<li>
24+
<a href="{{ page.url|url }}">{{ page.data.title }}</a>
25+
</li>
26+
{% endfor %}
27+
</ul>

0 commit comments

Comments
 (0)