diff --git a/scripts/update-docs.js b/scripts/update-docs.js index ed897b5..37a10f8 100644 --- a/scripts/update-docs.js +++ b/scripts/update-docs.js @@ -4,40 +4,62 @@ import {markdownTable} from 'https://cdn.skypack.dev/markdown-table@3?dts' // SPEAKERS const speakers = load(await Deno.readTextFile('./src/speakers.yaml')) -// SPEAKERS - table -const speakersTableArr = [[ 'Jméno', 'Organizace' ]] -for (const speaker of speakers) { - speakersTableArr.push([ - (speaker.twitter ? `[${speaker.name}](https://twitter.com/${speaker.twitter})` : speaker.name) + (speaker.nickname ? ` (${speaker.nickname})` : ''), - speaker.orgs - ]) -} -const speakersTable = `_(abecedně)_\n\n` + markdownTable(speakersTableArr, { alignDelimiters: false }) -//console.log(speakersTable) -// SPEAKERS - leads -const speakersLeadsArr = [] -for (const speaker of speakers.filter(speaker => speaker.lead)) { - const orgs = speaker.orgs ? `\n* ${speaker.orgs}` : `\n` - const socials = [] - if (speaker.twitter) { - socials.push(`Twitter: [@${speaker.twitter}](https://twitter.com/${speaker.twitter})`) +const methods = { + + // SPEAKERS - table + async speakersTableGen () { + + const speakersTableArr = [[ 'Jméno', 'Organizace' ]] + for (const speaker of speakers) { + speakersTableArr.push([ + (speaker.twitter ? `[${speaker.name}](https://twitter.com/${speaker.twitter})` : speaker.name) + (speaker.nickname ? ` (${speaker.nickname})` : ''), + speaker.orgs ? speaker.orgs.trim() : '' + ]) + } + const speakersTable = `_(abecedně)_\n\n` + markdownTable(speakersTableArr) + //console.log(speakersTable) + return speakersTable + }, + + // SPEAKERS - leads + async speakersLeadsGen () { + + const speakersLeadsArr = [] + for (const speaker of speakers.filter(speaker => speaker.lead)) { + const orgs = speaker.orgs ? `\n* ${speaker.orgs}` : `\n` + const socials = [] + if (speaker.twitter) { + socials.push(`Twitter: [@${speaker.twitter}](https://twitter.com/${speaker.twitter})`) + } + if (speaker.web) { + socials.push(`Web: [${speaker.web.name ? speaker.web.name : speaker.name}](${speaker.web.url})`) + } + const img = `![](https://spec.utxo.cz/photos/speakers/${speaker.id}-sm.png)` + const item = `### ${img} ${speaker.name}\n\n* ${speaker.bio.trim()}${orgs ? orgs.trim("\n") : ''}* ${socials.join(', ')}`; + speakersLeadsArr.push(item) + } + + const speakersLeads = `_(abecedně)_\n\n` + speakersLeadsArr.join('\n\n') + //console.log(speakersLeads) + return speakersLeads + }, + + // SPEAKERS - write file + + async speakersBuild () { + const speakersDocFile = './docs/prednasejici.md' + const speakersText = await Deno.readTextFile(speakersDocFile) + let output = speakersText.replace(/## Seznam všech přednášejících([\s\S]+)/m, `## Seznam všech přednášejících\n\n${await methods.speakersTableGen()}`) + output = output.replace(/## Významní hosté([\s\S]*)## /m, `## Významní hosté\n\n${await methods.speakersLeadsGen()}\n\n## `) + await Deno.writeTextFile(speakersDocFile, output) } - if (speaker.web) { - socials.push(`Web: [${speaker.web.name ? speaker.web.name : speaker.name}](${speaker.web.url})`) - } - const img = `![](https://spec.utxo.cz/photos/speakers/${speaker.id}.png)` - const item = `### ${img} ${speaker.name}\n\n* ${speaker.bio.trim()}${orgs}* ${socials.join(', ')}`; - speakersLeadsArr.push(item) } -const speakersLeads = `_(abecedně)_\n\n` + speakersLeadsArr.join('\n\n') -//console.log(speakersLeads) - -// SPEAKERS - write file -const speakersDocFile = './docs/prednasejici.md' -const speakersText = await Deno.readTextFile(speakersDocFile) -let output = speakersText.replace(/## Seznam všech přednášejících([\s\S]+)/m, `## Seznam všech přednášejících\n\n${speakersTable}`) -output = output.replace(/## Významní hosté([\s\S]*)## /m, `## Významní hosté\n\n${speakersLeads}\n\n## `) -await Deno.writeTextFile(speakersDocFile, output) +if (!Deno.args[0]) { + await methods.speakersBuild() + console.log('done') +} else { + console.log(await methods[Deno.args[0]]()) +} diff --git a/src/photos/speakers/juraj-bednar-sm.png b/src/photos/speakers/juraj-bednar-sm.png new file mode 100644 index 0000000..7addff7 Binary files /dev/null and b/src/photos/speakers/juraj-bednar-sm.png differ diff --git a/src/photos/speakers/mario-havel-sm.png b/src/photos/speakers/mario-havel-sm.png new file mode 100644 index 0000000..9a8461f Binary files /dev/null and b/src/photos/speakers/mario-havel-sm.png differ diff --git a/src/photos/speakers/petr-mara-sm.png b/src/photos/speakers/petr-mara-sm.png new file mode 100644 index 0000000..650312f Binary files /dev/null and b/src/photos/speakers/petr-mara-sm.png differ diff --git a/src/photos/speakers/robert-chovanculiak-sm.png b/src/photos/speakers/robert-chovanculiak-sm.png new file mode 100644 index 0000000..014a226 Binary files /dev/null and b/src/photos/speakers/robert-chovanculiak-sm.png differ