Az utolsó posztom 2021 márciusában jelent meg, és azóta szinte semmi sem történt a bloggal – annak ellenére, hogy közben költözés, szervercsere és számos más változás is történt. A WordPress már régóta inkább idegesített, mint segítette volna a posztok írásához való visszatérést: lassú volt, folyamatos plugin frissítések és biztonsági rések záporoztak rá, miközben egy évente pár bejegyzésből álló blog számára túlzottan bonyolult rendszer.

Évek óta fontolgattam a statikus oldalgenerátorokra való átállást, de a migráció gondolata – 87 bejegyzés, rengeteg HTML maradvány, médiafájlok – mindig elrettentett. Aztán rátaláltam az OpenCode-ra, és minden megváltozott.

A migrációs terv#

Az OpenCode egy terminálból működő AI eszköz, ami lehetővé tette, hogy a migráció nagy részét automatizáljam. A terv öt fő lépésből állt:

  1. WordPress tartalom exportálása és Markdown konverzió Hugo struktúrába
  2. Régi HTML maradványok eltávolítása
  3. PrivateBin (ZoliBin) szolgáltatás áthelyezése
  4. Többnyelvű Hugo oldal konfigurálása
  5. Minden bejegyzés lefordítása négy nyelvre

Az utolsó két pont különösen ambiciózusnak tűnt, de végül mégis sikerült megvalósítani.

Tartalom exportálás és konverzió#

A WordPress beépített exportáló funkciójával kinyertem az összes tartalmat XML formátumban. Kiadtam a feladatot az AIünak, hogy írjon egy scriptet, ami ezt Hugo kompatibilis Markdown formátumba konvertálta, megőrizve a címeket, dátumokat, kategóriákat és címkéket. A shortcode-ok HTML/Markdown megfelelőkre lettek átalakítva, a Disqus komment azonosítók pedig megmaradtak a front matterben.

A médiafájlokat a Hugo static/ mappájába másolta, így a régi linkek továbbra is működnek.

HTML tisztítás#

A WordPress tartalom számos HTML maradványt tartalmazott, amikkel a Hugo nem tudott megfelelően dolgozni: felesleges   karakterek, speciális kódblokkok, WordPress-specifikus képtagek és egyéb formázások.

Az AI átnézte az összes bejegyzést, és ahol lehetett, átkonvertálta a HTML-t Markdown-ra. A komplexebb formázásokat meghagyta, a Hugo config.toml-ban beállított unsafe = true paraméternek köszönhetően. Ez lehetővé tette, hogy a régi HTML tartalom továbbra is megjelenjen, anélkül, hogy mindent kézzel kellett volna átírni.

ZoliBin áthelyezése#

A ZoliBin (PrivateBin) paste szolgáltatást meghagytam az eredeti helyén, az nginx reverse proxy-n keresztül továbbra is elérhető. Mivel a Hugo statikus oldal, nem igényel PHP-t, de a paste funkció továbbra is szükséges volt. A konfiguráció változatlan maradt: file-based tárolás, 1 hetes lejárat, jelszavas védelem.

Többnyelvűség beállítása#

A Hugo többnyelvű támogatását konfiguráltam négy nyelven: magyar (alapértelmezett), angol, portugál és német. A defaultContentLanguageInSubdir = true beállítás lehetővé tette, hogy a magyar tartalom továbbra is a root domain alatt legyen elérhető.

A menüpontokat lefordítottam minden nyelvre, de az URL slugok magyarul maradtak a migrációs egyszerűség kedvéért. A médiafájlok továbbra is a régi útvonalakon érhetők el a Hugo static/ mappájának köszönhetően.

Fordítási folyamat#

Meglehetősen eseménytelenül ment a fordítás, egy szimpla prompt volt az egész (természetesen az AGENTS.md-t folyamatosan update-elte az AI, valamint a dokumentáció is oda került az oldal struktúráját illetően).

Főoldal problémák#

A Hugo 0.146 verzióval felmerült egy érdekes hiba: a content/index.md fájl leaf bundle-t hozott létre, ami megakadályozta a többi tartalom renderelését. A megoldás a fájl törlése és a főoldal konfigurációjának config.toml-ra való áthelyezése volt.

A Terminal téma sablonját is módosítania kellett, mert a többnyelvű főoldal nem szűrte helyesen a bejegyzéseket. A .Site.RegularPages használatával oldotta meg a problémát, így csak a magyar nyelvű tartalom jelenik meg a magyar főoldalon.

Eredmények és tanulságok#

A migráció pár órát vett igénybe, amiből a legtöbb idő az AI agent re-promptálására ment, miközben figyeltem, hogy miképp alakul a migráció és a különböző problémákat láttam az épülő oldalon.

Az eredmény egy gyors, statikus Hugo oldal, ami nem igényel PHP-t és minimális erőforrást fogyaszt. Automatikus frissítések biztosítják, hogy mindig a legújabb verzió fusson.

Mindez lehetővé tette, hogy a 261 fordítás és HTML tisztítás ne egy hónapos, hanem egy pár órás munka legyen. A GLM 5.1 modell jó fordításokat produkált, és ahol hibázott, ott következetesen, ami gyors javítást tett lehetővé. Sajnos a fordítások minősége nem volt mindig tökéletes, így utána rá kellett még engednem a deepseek-v3.1.671b modelt is, az utolsó simításokhoz.

Őszintén megmondva, nem gondoltam volna, hogy egy AI agent képes lesz ilyen komplex migrációt végrehajtani, és el is gondolkodtat, hogy mennyire is lesz szükség sysadminokra a jövőben. Programozói subredditeket olvasva már ott is látszik, hogy sima kódolás helyett az emberek már inkább project manager/product owner pozícióba kerülnek át.

A kérdés az, hogy miképp fogja a szakma így kitermelni a jövő informatikusait, ha már nincs szükség kezdő (1st level) helpdesk-esekre. Nem hiszem, hogy sokat kell már várnunk a válaszra…