diff --git a/src/episode.pug b/src/episode.pug index 651b4ad371c..7202d89ab28 100644 --- a/src/episode.pug +++ b/src/episode.pug @@ -26,3 +26,13 @@ block main .content !=episode.content + + if episode.participants.length + h2 Teilnehmer + ul.partcipants + for participant in episode.participants + li + if participants[participant] + a(href=`/team/#${participant}`)= participant + else + = participant diff --git a/src/includes/mixins.pug b/src/includes/mixins.pug index ca978a16609..db44ccb08b7 100644 --- a/src/includes/mixins.pug +++ b/src/includes/mixins.pug @@ -3,7 +3,7 @@ mixin sprite(id) use(xlink:href=`${assetPath("/img/sprite.svg")}#${id}`) mixin member(m) - li.member + li.member(id=m.name) img(src=assetPath(m.image) alt=m.name loading="lazy") header h2=m.name diff --git a/tasks/generate_pages.js b/tasks/generate_pages.js index dff45338dd0..5c6b786a74a 100644 --- a/tasks/generate_pages.js +++ b/tasks/generate_pages.js @@ -6,6 +6,7 @@ const config = require('../pug.config') const site = require('../generated/site-data.json') const episodes = require('../generated/episodes.json') const spenden = require('../generated/spenden.json') +const participants = require('../generated/participants.json') const team = require('../content/team.json') const crew = require('../content/crew.json') const meetups = require('../content/meetups.json') @@ -36,4 +37,4 @@ renderPage('category', 'podcast/interviews', { navCurrent: 'podcast', category: renderPage('category', 'podcast/lesestunde', { navCurrent: 'podcast', category: 'lesestunde', categoryName: 'Lesestunde', episodes: episodes.filter(e => e.category === 'lesestunde') }) renderPage('category', 'podcast/der-weg', { navCurrent: 'podcast', category: 'der-weg', categoryName: 'Der Weg', episodes: episodes.filter(e => e.category === 'der-weg') }) renderPage('category', 'podcast/verschiedenes', { navCurrent: 'podcast', category: 'verschiedenes', categoryName: 'Verschiedenes', episodes: episodes.filter(e => e.category === 'verschiedenes') }) -episodes.forEach(episode => renderPage('episode', `podcast/${episode.slug}`, { navCurrent: 'podcast', episode })) +episodes.forEach(episode => renderPage('episode', `podcast/${episode.slug}`, { navCurrent: 'podcast', episode, participants })) diff --git a/tasks/generate_site_data.js b/tasks/generate_site_data.js index 59d336b88ab..f85cd4ab9b2 100644 --- a/tasks/generate_site_data.js +++ b/tasks/generate_site_data.js @@ -3,6 +3,8 @@ const { basename, join, resolve } = require('path') const request = require('sync-request') const meta = require('../content/meta.json') +const team = require('../content/team.json') +const crew = require('../content/crew.json') const soundboard = require('../content/soundboard.json') const dir = (...path) => resolve(__dirname, '..', ...path) @@ -21,6 +23,10 @@ const date = (new Date()).toJSON().split('T')[0] writeJSON(dir('generated', 'site-data.json'), { date, block, meta }) +// Participants +const participants = team.concat(crew).reduce((result, person) => Object.assign(result, { [person.name]: person }), {}) +writeJSON(dir('generated', 'participants.json'), participants) + // Soundboard const sounds = soundboard.map(group => { group.sounds = group.sounds.map(sound => {