Opprette Cue Filer fra Markdown

0
93

Ganske spesifikke, ikke sant? Mens vi kommer til å gjøre akkurat hva tittelen sier, dette innlegget handler mer om en lærerik øvelse, og et eksempel for å få hjelp på internett.

Min podcast editor, Chris Enns, er alltid på utkikk etter måter å forbedre sitt arbeide og gjøre podcasting bedre. En ganske kul måte å gjøre det på er å tilby “kapitler”, slik at folk kan gå rundt i en podcast til bestemte punkter.

Gjennom TimeJump, vi allerede tilbyr, som på selve nettsiden. De skje i form av hash-koblinger som dette: #t=12:18. Tro det eller ikke, i forhold linker som at, i vis notater, faktisk fungerer i noen podcatchers (podcast lytte apps).

Hoppe rundt en lyd-element med TimeJump JavaScript-bibliotek.

Men ved hjelp av “kapitler” er vel mer riktig måte å håndtere dette. Med kapitler, en podcatcher kan tilby sin egen native-GRENSESNITT for å vise og tillater brukeren å hoppe mellom kapitler.

Selv iOS 11 er nå å støtte dem i podcast-appen:

Dette er det Podcast appen som er innebygd i iOS, men alle slags forskjellige podcatchers vise kapitler på sin egen måte.

Hvordan kan du legge dem til en podcast? Jeg er ingen ekspert her, men det er en ekte Mac app som heter Podcast Kapitler som gjør dette:

Dette er akkurat hva Chris Enns bruker til å legge til kapitler, noe som fører oss til Chris’ arbeidsflyt. Chris skriver vis notater for podcaster, og gjør at i Markdown-format. Det viser at han redigeringer for (i hvert fall noen av dem) post vis notater på internett og CMS-er den kraft bruke Markdown.

Han vil lage en Markdown liste (TimeJump kompatibel) av hva som skjer i podcast, som dette:

* **[1:49](#t=1:49)** Leker fra fremtiden.
* **[8:40](#t=8:40)** Snakker om å snu.

En annen brikke i puslespillet her er at Podcast Kapitler app gjør sine ting, ved å gi det en `.cue fil. Cue filer ser ut som dette:

UTØVER “ShopTalk Show”
TITTELEN “Episode 273”
FILE “shoptalk-273.mp3” MP3
SPOR 01 LYD
UTØVER “”
TITTELEN “Leker fra fremtiden.”
INDEX 01 01:49:00
SPOR 02 LYD
UTØVER “”
TITTELEN “Snakker om å snu.”
INDEX 01 08:40:00

Det er en veldig bestemt format. Det er hånd-writable, sikker, men i hovedsak har de samme data som Markdown listen, bare i et annet format.

Det er enda en online generator for å bidra til å gjøre dem:

Alle som ting jeg bare forklarte jeg bare forstår fordi Chris selv forklarte det. Dette er min favoritt del. Han forklarte det med å spørre om hjelp gjennom en YouTube-video som gjør problemet klart som dagen.

Chris visste nøyaktig hva han trengte for å gjøre dette arbeidsflyt arbeid, han kunne bare ikke finne ut en liten del av det, så spurte han.

For å være ærlig, jeg gjorde egentlig ikke vet hvordan de skal løse det heller. Men, kanskje bare kanskje, jeg visste bare litt mer, nok til å få prosessen i gang.

  1. Jeg vet hvordan å lage et grensesnitt som ville gjøre jobben her: side-by-side <textarea>s for enkelt kopiere og lime inn.
  2. Jeg vet JavaScript kan få dette gjort, fordi det kan ta string-verdier ut av textareas og har rikelig med streng behandling metoder.
  3. Jeg vet det er sannsynlig å være RegEx territorium.

Jeg vet også dette er programmering ting på kanten av mine evner. Jeg vedder på at jeg kan gjøre det, men det kan ta meg hele dagen, og virkelig utfordre meg.

Så i stedet jeg igjen satt problemet opp for noen andre til å hoppe inn og hjelpe.

Jeg skrev et manus (“et skript i skrive manus eller teater sense”) for å forklare hva jeg mente var nødvendig å skje. Jeg laget en Penn, og i JavaScript-området, skrev ut…

/*
Trinn 1
Bryte markdown i første textarea inn utvalg av linjer
Loop over hver linje

Trinn 2
Trekke verdien “1:49” fra line

Trinn 3
Konvertere verdien til “01:49:00”

Trinn 4
Trekke ut verdi “Leker fra fremtiden.” fra line

Trinn 5
Plasser disse to verdiene inn i en mal som du kan se i andre textarea
*/

Da James Padolsey hoppet i en hjalp til med den endelige løsningen:

Se Pennen VIA: Opprette Cuefile fra Markdown av James Padolsey (@padolsey) på CodePen.

Den gjør akkurat hva alle hadde håpet at den ville gjøre! Takk James!

Det gjør egentlig hva jeg lagt ut i min lille skriptet.

Deler på nye linjer og looper over tabellen:

markdown.split(‘n’).kart((linje, i) => {

Trekke ut deler av strengen som er best til å jobbe med:

const title = ” – linjen.split(‘** ‘)[1];
const tid = linje.match(/d+:d+/)[0];

Deretter manipulerer de biter i form og til slutt bruker malen verdiane til å lage en ny string å slenger tilbake inn i tekstboksene.

Jeg er sikker på at dette er ikke den eneste måten, og du kan reagere sterkt på skjørheten og kanskje klosset arten av denne type analyse. Men det er også løser en svært reell og umiddelbar arbeidsflyt problemet.