Nový web v Pelicanu

Při posledním upgrade Debianu z Bullseye na Bookworm jsem rozbil všechno, co se dalo. Hlavně jsem současně výrazně upgradoval PHP, čímž utrpěla DokuWiki, na jejíž aktualizace jsem postupem času zapomínal, až se v novém PHP 8.2 nepustila vůbec. Jelikož tam mám několik vlastních modifikací (a díky tomu to bylo složitější upgradovat), pustil jsem se do oprav ručně. Vůbec jsem netušil, že až do verze PHP 7.4 šlo indexovat pole a textové řetězce dvěma druhy závorek. Tomu udělalo PHP 8 konec a tak se rozbilo kde co. Každopádně oprava se podařila, ale to mě utvrdilo, že se chci přejít na něco, co vyžaduje méně údržby.

Už dříve jsem pokukoval po statických generátorech stránek. Už jsem si dostatečně osvojil Markdown, takže přechod na generátory se nabízel. Github pro svoje Pages používá Jekyll, ale já prostě nemám rád Ruby. Takže jsem sáhl po druhé dostupné volbě – Pelicanu.

Pokud se tím nechcete patlat, Pelikan má dostupný velký repozitář témat tvořený komunitou. Takže stačí napsat obsah, porochnit se v konfiguračním souboru, a můžete publikovat. Na první pokusy jsem si zvolil téma Flex, abych zjistil, co jde a co nejde. Téma je hodně kvalitní, naprosto super, pokud chcete hotovou věc.

Jenže já se rád ve věcech šťourám a toto téma je příliš komplexní. Obsahuje podporu plejády služeb, ale aktuální verze je mírně outdated. Např. Font Awesome bylo první, co jsem potřeboval aktualizovat, kvůli ikonce Bluesky. Nicméně cestu vlastního forku jsem vzdal.

Takže došlo na smazání a nahrání standardního témátka “simple” z distribuce Pelicanu. Na tom jsem pochopil celkovou strukturu generátoru. S Jinjou2 už mám hodně zkušeností, takže modifikace k obrazu svému šly dobře. Pomocí pluginů i18n_subsites, related_posts, representative_image a sitemap z repozitáře pelican-plugins jsem dokopal stránku do naprosté podobnosti s původním webem v Dokuwiki. Tentokrát jsem psal celý layout od píky sám, takže je výsledkem (doufám) lehký CSS styl se vším potřebným, snadno čitelný na mobilu.

Vzhledem k tomu, že se jedná o generátor statických stránek, bylo potřeba nějak vyřešit komentáře. Původně jsem chtěl použít Disqus, ale řekl jsem si, že zkusím selfhosted řešení, tak jsem skončil u ISSO. Import z DokuWiki BlogTNG pluginu byla chvilka programování. Stačil jeden SQL dotaz, menší transformace dat a export do JSONu. Celé to běží v maličkém Docker kontejneru (91 MB).

Komentáře