-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path.eleventy.js
44 lines (41 loc) · 1.79 KB
/
.eleventy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const pluginSEO = require("eleventy-plugin-seo");
const xmlFiltersPlugin = require('eleventy-xml-plugin');
const getSimilarCategories = function(categoriesA, categoriesB) {
return categoriesA.filter(Set.prototype.has, new Set(categoriesB)).length;
}
module.exports = function(eleventyConfig) {
eleventyConfig.addPassthroughCopy('styles');
eleventyConfig.addPassthroughCopy('js');
eleventyConfig.addPassthroughCopy('static');
eleventyConfig.addPassthroughCopy('favicon.ico');
eleventyConfig.addPlugin(xmlFiltersPlugin);
eleventyConfig.addPlugin(pluginSEO, {
title: "Sarah L. Fossheim",
description: "I'm a multidisciplinary developer and designer, with a strong interest in data science, AI, ethics and accessibility.",
url: "https://fossheim.io",
author: "Sarah L. Fossheim"
});
eleventyConfig.addCollection("sortedPosts", function(collection) {
return collection.getFilteredByTag("posts").sort((a,b) => b.date - a.date);
});
eleventyConfig.addCollection("featuredPosts", function(collection){
return collection.getFilteredByTag("posts").filter((post)=>{
return post.data.featured;
}).sort((a,b) => {
const featuredDateA = new Date(a.data.featured);
const featuredDateB = new Date(b.data.featured);
return featuredDateB - featuredDateA;
});
});
eleventyConfig.addLiquidFilter("similarPosts", (collection, inputPath, categories) => {
const similar = collection.filter((post) => {
return getSimilarCategories(post.data.categories, categories) >= 1 && post.data.page.inputPath !== inputPath;
}).sort((a,b) => {
return getSimilarCategories(b.data.categories, categories) - getSimilarCategories(a.data.categories, categories);
});
return similar.length >= 2 ? similar : [];
});
return {
passthroughFileCopy: true
}
}