Prijatím zoly ako môjho nástroja na generovanie statických stránok (SSG) som úspešne dokázal opustiť Sapper. V novom nastavení blogu sa však objavil pomerne závažný problém, ktorý zostal niekoľko dní nepovšimnutý.
Konkrétne, problém bol s URL odkazmi. Je veľmi dôležité udržiavať URL rovnaké alebo aspoň zabezpečiť správne presmerovanie. Ďalšie postrehy o URL som zachytil aj v tomto príspevku. Problém bol v tom, že nové odkazy vyzerali takto:
https://peterbabic.com/upgrading-wiringpio-raspberry-pi-4/
Ale pôvodné odkazy vyzerali takto:
/blog/upgrading-wiringpio-raspberry-pi-4/
Vidíte? URL chýbala časť blog/, ktorú som sa rozhodol nazývať prefixom,
pre nedostatok lepšieho slova po ruke. Slovo po ruke? Nech už.
Príznak #
O probléme som sa vlastne dozvedel náhodou, keď som sa pokúšal vložiť nejaké odkazy na sociálne médiá, ale na odkazoch získaných z adresného riadka prehliadača som dostával 404. Vedel som, že by mali byť v poriadku, pretože som ich musel navštíviť predtým, keďže história prehliadača obsahovala záznam.
Najprv som si myslel, že môj server je možno nefunkčný, ale všetko ostatné tam bežalo. Potom bežala aj domovská stránka blogu a klikanie na odkazy na jednotlivé príspevky fungovalo, no odkazy z adresného riadka boli nefunkčné. A vtom mi to došlo.
Pridanie URL prefixu #
Keď som si uvedomil, že je to dosť závažné, zastavil som to, čo som robil,
a začal zisťovať, ako to opraviť v Zole. Potreboval som tam pridať segment
blog/, ale žiadne skutočné konfiguračné nastavenie sa mi nepodarilo
nájsť.
Samozrejme, žiadna konfigurácia neexistovala - musel som skutočne presunúť
súbory z adresára content/ do /content/blog a potom zariadiť zvyšok. Po
chvíľke boja prišlo riešenie:
- Presuňte pôvodný
_index.mdteraz sídliaci vcontent/blog/_index.mdo úroveň vyššie, späť do teraz prázdnehocontent/:
+++
sort_by = "date"
paginate_by = 7
+++
- Vytvorte ďalší
_index.mdna jeho pôvodnom mieste vcontent/blog/_index.md:
+++
transparent = true
redirect_to = "/"
+++
Jednoduché, však? Teraz sú všetky odkazy také, aké boli pred konverziou zo
Sapperu na Zolu. Možnosť redirect nie je úplne nevyhnutná, ale je pekné
ju mať. Najdôležitejšia časť je transparent = true. Tá v podstate presúva
zodpovednosť na _index.md o úroveň vyššie.
Nižšie sú uvedené odkazy, ktoré diskutujú o tom, čo robí možnosť
transparent, keďže si stále nie som celkom istý a zatiaľ mi zvolená
nomenklatúra (transparent, hm?) príde veľmi mätúca - prečítajte si to, aby
ste získali ešte lepší prehľad. Príjemné písanie.
Odkazy #
- https://www.getzola.org/documentation/content/section/#front-matter
- https://www.xypnox.com/blag/posts/migrating-to-zola/
- https://estada.ch/2021/3/28/blog-bugs-not-migrating-to-zola-for-now/
- https://zola.discourse.group/t/how-to-paginate-a-subdirectory/749
- https://github.com/getzola/zola/issues/408
- https://github.com/getzola/zola/issues/1430