Update
This commit is contained in:
rodič
c9986dad61
revize
81ec6b561f
|
@ -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]]())
|
||||
}
|
||||
|
||||
|
|
Binární soubor nebyl zobrazen.
Za Šířka: | Výška: | Velikost: 6.8 KiB |
Binární soubor nebyl zobrazen.
Za Šířka: | Výška: | Velikost: 12 KiB |
Binární soubor nebyl zobrazen.
Za Šířka: | Výška: | Velikost: 11 KiB |
Binární soubor nebyl zobrazen.
Za Šířka: | Výška: | Velikost: 12 KiB |
Načítá se…
Odkázat v novém úkolu