Introduce aliases for team members

This commit is contained in:
Dennis Reimann
2023-11-16 13:48:29 +01:00
parent 99138086e1
commit a564b928dc
4 changed files with 36 additions and 16 deletions

View File

@@ -1,8 +1,8 @@
const { writeFileSync } = require('fs')
const { join, resolve } = require('path')
const { replacements, slugify, stripHTML } = require('../helpers')
const { replacements, slugify, stripHTML, teamWithAliases } = require('../helpers')
const { masterFeedUrl, publicFeedUrl } = require('../content/meta.json')
const team = require('../content/team.json')
const teamRaw = require('../content/team.json')
const request = require('sync-request')
const { XMLParser, XMLBuilder, XMLValidator } = require('fast-xml-parser')
const xmlFormat = require('xml-formatter')
@@ -13,6 +13,8 @@ const write = (name, data) => writeFileSync(join(dir, name), data)
const writeJSON = (name, data) =>
write(`generated/${name}.json`, JSON.stringify(data, null, 2))
const team = teamWithAliases(teamRaw)
const commonOpts = {
attributeNamePrefix: '',
attributesGroupName: '__attr',
@@ -34,11 +36,6 @@ const json2xmlOpts = {
indentBy: ' '
}
Object.values(team).forEach(member => {
const alias = member.name.toLowerCase()
if (!team[alias]) team[alias] = member
})
const parser = new XMLParser(xml2jsonOpts, true)
const builder = new XMLBuilder(json2xmlOpts)

View File

@@ -1,13 +1,13 @@
const pug = require('pug')
const { mkdirSync, writeFileSync } = require('fs')
const { dirname, resolve } = require('path')
const { slugify } = require('../helpers')
const { slugify, teamWithAliases } = require('../helpers')
const config = require('../pug.config')
const site = require('../generated/site-data.json')
const episodes = require('../generated/episodes.json')
const spendenregister = require('../generated/spendenregister.json')
const spendenuebersicht = require('../content/spendenuebersicht.json').reverse()
const team = require('../content/team.json')
const teamRaw = require('../content/team.json')
const shops = require('../content/shops.json')
const soundboard = require('../content/soundboard.json')
const adventskalender = require('../content/adventskalender-2022.json')
@@ -21,6 +21,8 @@ const categories = {
'verschiedenes': 'Verschiedenes'
}
const team = teamWithAliases(teamRaw)
const changedFile = process.argv.length > 2 && process.argv[2]
const renderPage = (template, out, data = {}) => {
@@ -55,9 +57,9 @@ renderPage('adventskalender', 'adventskalender', { adventskalender })
episodes.forEach(episode => renderPage('episode', `podcast/${episode.slug}`, { navCurrent: 'podcast', episode, team }))
Object.keys(categories).forEach(category => renderPage('category', `podcast/${slugify(categories[category])}`, { navCurrent: 'podcast', category, categoryName: categories[category], episodes: episodes.filter(e => e.category === category), team }))
Object.keys(team).forEach(id => {
const member = team[id]
const alias = member.name.toLowerCase()
const eps = episodes.filter(e => e.participants.find(p => [id, alias].includes(p.toLowerCase())))
Object.keys(teamRaw).forEach(id => {
const member = teamRaw[id]
const aliases = (member.aliases || []).map(m => m.toLowerCase()).concat(member.name.toLowerCase())
const eps = episodes.filter(e => e.participants.find(p => [id, ...aliases].includes(p.toLowerCase())))
renderPage('member', `team/${slugify(id)}`, { navCurrent: 'podcast', member, episodes: eps, team })
})