Het maken van Cue-Bestanden van Markdown

0
16

Vrij specifieke, huh? Terwijl we precies wat de titel zegt, dit bericht is meer informatie over een leerervaring en een voorbeeld van de help-informatie op het internet.

Mijn podcast-editor Chris Enns, is altijd op zoek naar manieren om te verbeteren zijn werk en het maken van podcasting beter. Een beetje koel manier om dat te doen is het bieden van “hoofdstukken”, zodat mensen kunnen springen rond in een podcast op specifieke punten.

Door TimeJump, we bieden nu al dat op de website zelf. Die gebeuren in de vorm van hasj links, zoals deze: #t=12:18. Geloof het of niet, relatieve links zoals dat in de show notes, eigenlijk werk in sommige podcatchers (podcast te luisteren apps).

Springen rond een audio-element met de TimeJump JavaScript-bibliotheek.

Maar met behulp van de “hoofdstukken” is, denk ik, de meer correcte manier om dit te behandelen. Met hoofdstukken, een podcatcher kunnen bieden zijn eigen GEBRUIKERSINTERFACE voor het weergeven en waarmee de gebruiker om te springen tussen de hoofdstukken.

Zelfs iOS-11 is nu ondersteunt hen in de podcast app:

Dit is de Podcast-app van iOS, maar allerlei andere podcatchers display hoofdstukken op hun eigen manier.

Hoe kunt u ze toevoegen aan een podcast? Ik ben geen expert, maar er is een native Mac app genaamd Podcast Hoofdstukken die dit doet:

Dit is precies wat Chris Enns gebruikt voor het toevoegen van de hoofdstukken, die ons leidt naar Chris’ workflow. Chris schrijft tonen voor podcasts, en doet dat in Markdown-formaat. Het toont hij bewerkingen voor (in ieder geval) na de show notes op de website en het CMS is die kracht die gebruik Markdown.

Hij zal het maken van een Markdown-lijst (TimeJump compatibel) van wat er gebeurt in de podcast, zoals deze:

* **[1:49](#t=1:49)** Speelgoed van de toekomst.
* **[8:40](#t=8:40)** Praten over flip.

Een ander stuk van de puzzel hier is dat de Podcast Hoofdstukken app doet zijn ding met het geven van een `.cue` bestand. Cue-bestanden als volgt uitzien:

PERFORMER “ShopTalk Show”
TITEL “Aflevering 273”
BESTAND “shoptalk-273.mp3:” MP3
TRACK 01 AUDIO
PERFORMER “”
De TITEL ‘ Speelgoed van de toekomst.”
INDEX 01 01:49:00
TRACK 02 AUDIO
PERFORMER “”
De TITEL ‘ Praten over flip.”
INDEX 01 08:40:00

Dat is een zeer specifieke indeling. Het is met de hand geschreven worden, zeker, maar het is in wezen allemaal dezelfde gegevens als die Markdown lijst, maar dan in een andere indeling.

Er is zelfs een online generator om hen te helpen:

Alle spullen die ik zojuist heb ik alleen begrijpen omdat Chris zich uitgelegd. Dit is mijn favoriete onderdeel. Hij legde uit dat het door het vragen om hulp door middel van een YouTube-video die het probleem helder als de dag.

Chris wist precies wat hij nodig had om deze workflow te werken, hij kon het gewoon niet achter een klein onderdeel van, daarom vroeg hij.

Om eerlijk te zijn, ik wist niet echt hoe het op te lossen. Maar, misschien heel misschien, ik wist slechts een klein beetje, genoeg om het starten van het proces.

  1. Ik weet hoe te maken van een interface dat zou doen hier het werk: side-by-side <textarea>s voor het eenvoudig kopiëren en plakken.
  2. Ik weet JavaScript kunnen dit doen, omdat het kan grijpen string-waarden uit textareas en heeft veel van de verwerking van tekenreeksen methoden.
  3. Ik weet dat het waarschijnlijk RegEx grondgebied.

Ik weet ook, dit is het programmeren van spullen op de rand van mijn capaciteiten. Ik wed dat ik het kon doen, maar zou het kunnen dat ik de hele dag en echt me uit te dagen.

Dus in plaats daarvan heb ik weer het probleem voor iemand anders om te springen en je te helpen.

Ik schreef een script (‘een script in de scenarioschrijven of theater sense”) uit te leggen wat ik dacht nodig te gebeuren. Ik heb een Pen, en in de JavaScript-gebied, schreef…

/*
Stap 1
Breken markdown in het eerste tekstveld in een reeks van lijnen
Loop over elke lijn

Stap 2
Extract waarde “1:49” uit de lijn

Stap 3
Zetten in op waarde “01:49:00”

Stap 4
Extract waarde “Speelgoed van de toekomst.” van de lijn

Stap 5
Plaats deze twee waarden in een sjabloon die u kunt zien in de tweede textarea
*/

Dan James Padolsey sprong in een geholpen met de definitieve oplossing:

Zie de WIP-Pen: het Creëren van Cuefile van Markdown door James Padolsey (@padolsey) op CodePen.

Het doet precies wat iedereen hoopte dat het zou doen! Dankzij James!

Het is in wezen wat ik heb vastgelegd in mijn script.

Splitst op nieuwe lijnen en lussen over de matrix:

markdown.split(‘n’).kaart((lijn i) => {

Extract delen van de string die het beste zijn om te werken met:

const title = lijn.split(‘** ‘)[1];
const tijd = lijn.match(/d+:d+/)[0];

Vervolgens manipuleert die stukjes in vorm te komen en uiteindelijk gebruikt sjabloon letters te craft een nieuwe string te plop terug in het tekstveld.

Ik ben er zeker van dat dit niet de enige manier, en je zou kunnen slagen er niet in de kwetsbaarheid en het misschien lastig aard van dit type van het te ontleden. Maar het lost ook een zeer reële en onmiddellijke workflow probleem.