<dl>
-{% set articleslist = collections.articles %}
-{%- for article in articleslist | reverse %}
+{% if maxPosts %}
+ {% set numPosts = collections.articles | length | min(maxPosts) %}
+ {% set articleslist = collections.articles | reverse | head(numPosts)%}
+{% else %}
+ {% set articleslist = collections.articles | reverse %}
+{% endif %}
+{%- for article in articleslist %}
<dt><a href="{{ article.url }}">{{ article.data.title }}</a></dt>
<dd>{{ article.data.description }}</dd>
{%- endfor %}
eleventyConfig.addFilter("cssmin", function (code) {
return new cleanCSS({}).minify(code).styles;
});
+ eleventyConfig.addFilter("head", (array, n) => {
+ // Get the first `n` elements of a collection.
+ if(!Array.isArray(array) || array.length === 0) {
+ return [];
+ }
+ if( n < 0 ) {
+ return array.slice(n);
+ }
+
+ return array.slice(0, n);
+ });
eleventyConfig.addFilter("htmlDateString", (dateObj) => {
// dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('yyyy-LL-dd');
// Formatting tokens for Luxon: https://moment.github.io/luxon/#/formatting?id=table-of-tokens
return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toISO();
});
+ eleventyConfig.addFilter("min", (...numbers) => {
+ // Return the smallest number argument
+ return Math.min.apply(null, numbers);
+ });
eleventyConfig.addPassthroughCopy({ "./static/": "/" });
eleventyConfig.addPlugin(feedPlugin, {
type: "atom",