Databehandling

11-04-2023

På det ovenstående billede, er et eksempel på hvordan bibelteksten bliver præsenteret på 'Den frie bibel's nuværende hjemmeside. Bemærk at der er versnumre, indryk, og fodnoter (i billedet den lille blå cirkel). Denne slags formatering af teksten, vil de gerne have bevaret til den nye hjemmeside, så spørgsmålet er hvordan dette skal gøres.

Teksterne opbevares på deres Github som en række .txt filer, hvor hver fil er et givent kapitel i en given bog.


Teksten i filen er formateret på en særlig måde (Læs mere her), som ikke er lige så læselig, som på deres hjemmeside, men som indeholder information som php-koden omdanner. Grunden til at dette gøres, er fordi brugeren skal kunne tilpasse deres læseoplevelse, og så teksten indeholder forskellige ting, som php-koden så kan inkludere eller ekskludere, alt efter brugerens indstillinger. Eksempelvis: //n, hvor n er et heltal, der angiver hvor mange indryk der skal være før en linje.


Formatet fungere fint til deres formål, men jeg vil gerne skifte til JSON-formatet i det nye projekt, da det er et format jeg er mere bekendt med, og som jeg også tror har plads til mere tilpasning over tid. På den måde ville man nemmere kunne tilføje flere features senere, eller ændre formatet igen, da der findes mange libraries i forskellige programmeringssprog, som kan læse JSON.

Til dette formål, valgte jeg at lave et JavaScript/Node.js script, som ville kunne omdanne fra det gamle format, til det nye JSON format. På den måde vil de kunne fortsætte med at bruge det format de kender, og jeg vil kunne automatisk omdanne formatet løbende, i takt med at de opdatere bibelteksten.

Tanken var derfor, scriptet skulle tage hver .txt fil, og putte dem i mapper, som var navngivet efter den bog som kapitlet befinder sig i, og så ville hvert kapitel bare være en json-fil nummeret efter kapitlets nummer.


I toppen af JSON-filen, ville der så være en række elementer, som angiver bogens navn, forkortelse, kapitelnummer, og tekstens version (JavaScript date som nummer). Derudover skal der være et array, som indeholder alle vers i teksten, og et array til alle fodnoter i teksten.