From ccd1852f65781a73f82ff8955e17b1ee9e13ec10 Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Mon, 31 May 2021 02:10:23 +0200 Subject: [PATCH] Add Nunjucks rendered `get` filter. Given an argument consisting of an array of objects and an attribute name `attr`, it returns an array of all `attr` attributes. --- lib/www/server/lib/render.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/www/server/lib/render.js b/lib/www/server/lib/render.js index 5651f36..7194330 100644 --- a/lib/www/server/lib/render.js +++ b/lib/www/server/lib/render.js @@ -29,6 +29,10 @@ function njkCollect (entries, key, collectables) { return out; } +function njkGet (entries, key) { + return entries.map(i => i[key]); +} + function njkUnique (entries) { return entries.filter((element, index, array) => array.indexOf(element) === index); } @@ -81,6 +85,7 @@ async function render (data, template) { nenv.addFilter('find', njkFind); nenv.addFilter('unique', njkUnique); nenv.addFilter('collect', njkCollect); + nenv.addFilter('get', njkGet); nenv.addFilter('padStart', njkPadStart); nenv.addFilter('timestamp', njkTimestamp); nenv.addFilter('markdown', njkMarkdown);