Nå er bloggen gjennoppstått! Denne gangen med hjelp av Hugo :)

Hva er Hugo?

Hugo er en statisk side-generator. Du skriver innlegg i markdown, også rendres disse til HTML. Når du har HTML-en, kan du egentlig gjøre det du vil med den: Servere den fra en webserver, redigere den i VScode, eller sende den til kompisen din og si at du kan lage nettsider.

Motivasjon

Den forrige bloggen min var laget med Wordpress, en grafisk nettsidebygger som er laget med PHP og MySQL. Programmet kan brukes til å lage alt fra blogger til nettbutikker. For mitt bruk, fungerte det egentlig ganske greit, men det var et par punkter gjorde at det ikke var helt optimalt.

En ting jeg ikke likte med Wordpress, var fokuset på utseende. Programmet er designet slik at man lett skal kunne plassere ulike elementer i et brukerdefinert layout. Det kan være kjekt om man:

  1. Ønsker å definere layout selv
  2. Ikke kan HTML

For meg gjelder ingen av delene. Jeg ønsker først og fremst å skrive tekster, og i de tilfellene jeg bry meg om layout, klarer jeg fint å skrive litt HTML.

Det at at Wordpress er designet for å gjøre det lett å endre layout, gjør det krunglete å skrive innlegg. Hvis jeg for eksempel skal skrive et innlegg med to overskrifter, er det 4 elementer som må opprettes (et for hver overskrift og hver tekst). Dette tar vekk fokuset fra skrivingen.

Med Hugo derimot, er fokuset rettet mot skrivingen. Når man skal lage et nytt innlegg, kan man få Hugo til å generere en ny markdownfil for deg.

hugo new content posts/hugo

Nå har jeg en fil ny fil (content/posts/hugo.md). Denne kan man fint begynne å skrive i og endre på med ditt yndlingstekstredigeringsprogram. Personlig bruker jeg Neovim. Det at jeg nå kan klare meg uten datamusa når jeg lager et nytt innlegg, ser jeg på som en veldig positiv ting.

En annen fordel med at alle innleggene mine er markdown filer, er at det er ekstremt kjekt å jobbe med tekstfiler! Om jeg skal endre på innholdet, kan jeg bruke Neovim. Om jeg skal finne ut av når jeg skrev om en spesifikk ting, kan jeg bruke ripgrep. Om jeg har lyst til å slutte å bruke Hugo kan jeg også det, fordi det kun er tekst!

Fremgangsmåte

Det å sette opp bloggen var egentlig veldig lett! Slik var fremgangsmåten:

Sett opp Hugo

  1. Installer Hugo.
    sudo snap install hugo
    
  2. Start et nytt prosjekt.
    hugo new site blog
    cd blog
    git init
    
  3. Last ned et tema.
    git add submodule https://github.com/rhazdon/hugo-theme-hello-friend-ng themes/hello-friend-ng
    
  4. Fiks hugo.toml i henhold til dokumentasjonen.
  5. Enjoy!

Deployment

Jeg er så heldig å ha tilgang til en server der jeg kan servere hva enn jeg måtte ønske! Det gjør jobben veldig lett :) På serveren har jeg en mappe (/var/www/kaholaz.net/), der jeg putter ferdiggenerert HTML. Får å gjøre denne forflytningen lettvint, har jeg laget et kort skript for å generere HTML og flytte det over til serveren.

hugo || exit
rsync public/ vsbugge@navi.samfundet.no:/var/www/kaholaz.net/ -r --delete -P

Når dette er på plass, trenger vi bare et søtt lite Apache-config for å gjøre susen.

<VirtualHost *:80>
	ServerName kaholaz.net
	DocumentRoot /var/www/kaholaz.net/
	<Location />
		Options -Indexes
	</Location>

	ErrorDocument 404 /404.html
</VirtualHost>

Konklusjon

Jeg tror dette er en veldig flott løsning for en personlig blogg. Jeg kommer til å tilgjegeliggjøre kildekoden på min GitHub, og fortsette å oppdatere bloggen gjenvlig. Det er en del ting å fikse, slik som tagger og innleggstyper. Alt i alt vil jeg anbefale Hugo om man ønsker en no-nonsense måte å skrive en blogg på!