feat(11ty): add filter for subterm output

This commit is contained in:
Oscar 2019-11-17 19:49:50 +01:00
parent 488a5cdafd
commit 42d525279b

View File

@ -1,11 +1,12 @@
const makeItemLink = (slug) => `#${slug}` const makeItemLink = (slug) => `#${slug}`
const findExistingDefinition = (word, collection) => collection.find(item => item.data.title === word)
module.exports = function (config) { module.exports = function (config) {
// Add a filter using the Config API // Add a filter using the Config API
config.addFilter('linkTarget', makeItemLink); config.addFilter('linkTarget', makeItemLink);
config.addFilter('linkIfExistsInCollection', (word, collection) => { config.addFilter('linkIfExistsInCollection', (word, collection) => {
const existingDefinition = collection.find(item => item.data.title === word) const existingDefinition = findExistingDefinition(word, collection)
if (existingDefinition) { if (existingDefinition) {
return `<a href=${makeItemLink(existingDefinition.data.slug)}>${word}</a>` return `<a href=${makeItemLink(existingDefinition.data.slug)}>${word}</a>`
@ -14,6 +15,16 @@ module.exports = function (config) {
return word return word
}) })
config.addFilter('linkSubTermIfDefined', (subTermData, collection) => {
const existingDefinition = findExistingDefinition(subTermData.full_title, collection)
if (existingDefinition) {
return `<a href=${makeItemLink(existingDefinition.data.slug)} aria-label="${subTermData.full_title}">${subTermData.text}</a>`
}
return subTermData.text
})
// just a debug filter to lazily inspect the content of anything in a template // just a debug filter to lazily inspect the content of anything in a template
config.addFilter('postInspect', function (post) { config.addFilter('postInspect', function (post) {
console.log(post); console.log(post);