Front matter, Taksonomier, sql, mysql, sqlite, markdown, wordpress, hugo, lotus notes

Migrering af 30.000 dokumenters website fra Lotus Notes til Hugo

Artikel 15-06-17 ~3 minutters læsning · 629 ord

Statiske side generatorer går deres sejrsgang verden over, men de bliver oftest brugt til at rendere blogs, personlige websteder eller mindre niche-sites. Altså opgaver, som WordPress i mange år har været brugt til at løse.

Det nye open source værktøj er dog forlængst blevet modent til at rendere endog meget store websteder. Et eksempel er web-portalen Udvandrerne.dk, som mit firma JLKM har kørt siden 2002.

Portalen blev de første 15 år afviklet ved hjælp af dokumentdatabasen Lotus Notes/Domino, men her i foråret er de knap 30.000 dokumenter inkl. billeder, bilag, formatering og meta-tags trukket ud og blevet til lige så mange filer i markdown. Det er en åben standard til håndtering af formateret tekst, som de fleste statiske side generatorer - men også mange andre (især open source-) systemer - gør brug af.

6 websteder, 3 sprog, 225.000 html-filer

Nu vises siderne ved hjælp af den statiske side generator Hugo, som hører til de absolut førende på verdensplan. Og det drejer sig vel at mærke om et websted rummer: - 30.000 tekster og artikler - 6 websites - 3 sprog - 19 taksonomier, dvs. kategorier inkl. under-kategorier, som stoffet er opdelt på og kan søges frem på - 225.000 html-filer

Mange har været nødt til at overvinde betydelige udfordringer i bestræbelserne på at smide Notes ud. En af årsagerne skal efter min bedste overbevisning ses i forskellen på den måde, data er lagret på. Lotus Notes gemmer data som semi-strukturerede dokumenter, mens de fleste andre systemer gemmer data som tabeller i relationelle databaser (SQL, MySQL, SQLite).

Et udtræk fra Notes til en platform baseret på relations-databaser indebærer derfor også et skift i data-struktur. I og med at stort set alle statiske side generatorer renderer markdown-sider, er der ikke behov for at skifte data-struktur i forbindelse med en konvertering fra Lotus Notes til f.eks. Hugo.

Sorterede oversigter

Foruden at få al formatering og de såkaldte inline billeder med over i pæn tilstand er en af de største hurdler ved migrering fra Lotus Notes at få bevaret de mange overskuelige og brugervenlige oversigter, som Notes er kendt for.

Alle kategorier og øvrige rubriceringer af stoffet i Notes overføres til den såkaldte front matter, som ligger i toppen af hvert enkelt markdown-dokument. Front matter opsuges herefter af Hugo, som opfatter her enkelt kategori og term som en såkaldt taksonomi. Dette gør, at Hugo er som skabt til at håndtere og vise indhold fordelt på kategorier, og der er ingen grænser for, hvor mange typer af kategorier, som dokumenterne kan filtreres på. Derfor kan alle sorterede oversigter med et udsnit af dokumenterne i en Notes-database uden videre vises med Hugo.

Kategoriserede oversigter

En klassisk showstopper ved udtræk fra Notes er at få genskabt de såkaldte kategoriserede oversigter. Det er dem, hvor brugeren f.eks. kan klikke på et nøgleord, hvorefter alle tilhørende under-nøgleord dukker frem nedenunder. Herefter kan der i nogle tilfælde også klikkes på endnu et under-nøgleord, hvorefter et antal under-under-nøgleord kommer frem. Og så fremdeles.

Hugo er imidlertid også i stand til også at vise disse hierarkiske nøgleord uden det mindste tab af information eller funktionalitet. Dette kan bl.a. ses af de hierarkiske emne-oversigter, hvor det er muligt at klikke sig frem og tilbage mellem kategorier og under-kategorier - og få et overblik om de relevante dokumenter.

Surfingen op og ned i hierarkierne får lidt ekstra turbo på i lande-oversigterne. Her er alle dokumenterne for det første filtreret i tre niveauer - lande > regioner > byer. Men niveauerne går også på flere dimensioner - lande > nøgleord > under-nøgleord. Dermed kan brugeren fortsat browse op og ned i de kendte Notes-kategorier. Nu blot på web og i to dimensioner.

Læs evt. denne udførlige gennemgang af, hvordan en konvertering fra Lotus Notes til en statisk side generator kan gribes an i praksis.