Prskavčí blog

Sep 28, 2017 - Comments

Migrace na statický generátor Hugo z Ghost a Octopress

Mám dva blogy, tento v češtině, který poháněl nejdříve Wordpress potom jsem ho migroval na Jekyll a Octopress, a druhý v angličtině, který běžel na publikačním systému Ghost.

V posledním roce se objevili problémy na Ghostu s novou verzí, nexistoval přímý upgrade. Tak jsem musel udělat export a když jsem se snažil instalovat novou verzi tak jsem zjistil, že nefuguje zase s poslední verzí NodeJS 8, kterou jsem měl na serveru.

Tak jsem se rozhodl pro radikální změnu, delší dobu jsem chtěl vyřešit několik věcí.

  • migraci na TLS od Let’s encrypt
  • mít CDN pro static assety
  • zrychlit publikační workflow, abych vystačil jen s Githubem
  • otestovat Netlify o kterém jsem mluvil v předchozím příspěvku
  • přejít z NodeJS a Ruby na Golang statický generátor Hugo, který je rychlý, dobře udržovaný a není pro mě problém si tam upravit co potřebuju
  • neměnit vzhled
  • zachovat obsah

Migrace z ghostu na hugo

Tak jako první jsem začal s migrací www.prskavec.net, který běžel na Ghostu 0.x.

  1. našel jsem odpovídající casper theme pro hugo
  2. udělal jsem export z Ghost adminu
  3. použil jsem ghostToHugo utilitu pro import obsahu.
1hugo new site www.prskavec.net-hugo
2
3ghostToHugo —location "Europe/Prague" prskavec-net.ghost.2017-08-22.json --hugo ./www.prskavec.net-hugo
4
5cd themes
6git clone https://github.com/vjeantet/hugo-theme-casper casper

Pro deploy jsem potom použil Netlify, které nahradilo můj VPS server, kde před tím běžel blog.

Migrace z octopress na hugo

  1. našel jsem podobný vzhled octopress pro hugo
  2. použil jsem import v hugo
1hugo import jekyll blog.prskavec.net/source blog.prskavec.net-hugo
  1. potom jsem musel projít všechny posty (150+) a udělat trochu úpravy v metadatech, protože tam byli věci ješte z dob importu Wordpressu.

  2. upravil jsem theme podle toho, aby se to co nejvíce podobalo původnímu blogu a snažil jsem se zachovat url apod.

Pro deploy jsem potom použil Netlify, které nahradilo můj Github pages, kde před tím běžel blog.

Jak vidíte na obrázku v administraci mám oba blogy, nic to nestojí a CDN s TLS máte v ceně a build process funguje automaticky z github master, případně si můžete upravit konfiguraci jak potřebujete pokud používáte něco jiného než Hugo.

Možná se budete ptát proč nepoužívám pro themes gitmodules, ale zjistil jsem, že dělám do těch vzhledů celkem dost úprav, které jsou specifické pro mne, tak si vzhledy raději přidám přímo do repozitáře.

Závěr

Co jsem tím získal? Hlavně méně starostí s údržbou, nemusím řešit kompatibilitu a nainstalovené verze ruby, nodejs a v klidu si přes homebrew jen udržovat poslední verzi Huga a na psaní vystačím s jakýmkoliv markdown editorem, aktuálně s VSCode, který používám jak pro vývoje v Go tak pro NodeJS i na psaní.