Skip to content

Teknik

Så är sajten byggd: övergången från Wordpress till en statisk sajt med Markdown, MkDocs och Material-temat, versionshantering i Git på Codeberg, och deploy via SFTP med ett eget Pythonprogram. Här tar vi också upp bildformat (webp) och valet av domänen trainfo.eu.


Wordpress

Sajten fanns tidigare på Wordpress.com, efter en incident där deras spamfilter stängde ned sajten började jag kolla alternativ. Wordpress nån annanstans var ett alternativ, men jag hamnade snart på "statisk sajt"-spåret.

Statisk sajt

Markdown

Ett formatteringsspråk för att kunna få in rubriker, länkar, bilder mm men ändå definiera allt som ren text.

MkDocs

MkDocs är ett verktyg för att göra html-sidor utifrån Markdown-sidorna. Menyerna byggs upp efter hur filerna är organiserade i kataloger. Namnen i menyerna tas från metadata "Frontmatter" i varje fil. I Frontmatter finns även "tags" mm.

Git

När filerna är ren text blir de lätta att hantera i ett versionshanteringssystem som Git. Allt finns på Codeberg Att jag lade det på Codeberg var för att prova nåt nytt och som ett europeiskt alternativ

Commit hash

Den version du läser nu är: https://codeberg.org/oskard/trainfo/commit/2cc9c24fe933afa817f7428b26821093a3783e70

Uppdateringsdatum

Samtliga sidor har info (under delningsknapparna) om när de senast uppdaterades.

Ändringar

När filerna i stort set är ren text blir det enkelt att göra sök-ersätt och att se skillnad på vad jag ändrat innan jag lägger ut det. Det är även möjligt att göra större ändringar som att döpa om bilderna till nåt som matchar filen de hör till. Jag har även skrivit Pythonprogram för att gå igenom filerna och göra diverse ändringar.

Granskningar

Det finns program ("linters") som granskar om markdown-filerna är korrekta. Även användbarhet tas upp, som att det skall finnas "alt-text" på bilder

Menyer

MkDocs och MkDocs-Material skapar menyerna utifrån katalogstrukturen. Det går även att definiera menyer själv. Material Design är ett populärt ramverk så menyerna borde ge igenkänning från andra webbplatser. Innehållsförteckningen på varje sida skapas utifrån rubrikerna och rubriknivåerna

Deploy

Jag fick tips om Netlify som gjorde det enkelt att ta filer från ett Git-repository, bygga dem till en statisk sajt med MkDocs och sen deploya så att den blir publikt åtkomlig som en webbsajt. De bygger även en sajt som man kan kolla på innan den riktiga skapas. Men det funkade inte ihop med "social cards" (som gör att delningen på andra siter blir tydlig och enhetlig). Tills vidare gör jag ändringar på min dator och laddar upp med sftp. Jag skrev ett Pythonprogram som sköter allt och förhindrar misstag.

Bildformat

Övergång från jpeg/png till webp är genomförd. Filerna blir ungefär en tredjedel i storlek. I samband med det minskades storleken på stora bilder.

Generativ AI / LLM

LLM:er har använts för att skapa förslag på förbättringar, jämföra texter med de officiella reglerna mm. Även en del JavaScript och CSS har tagits fram på det här sättet. Alla ändringar och tillägg är granskade innan publicering.
Rent praktiskt har jag använt Claude Code för dessa ändringsförslag som sedan har anpassats för att passa in.

Domän

Jag köpte domänen trainfo.eu (nån annan hade .se och .com, men att köpa upp domäner är inte så relevant idag när det är normalt med andra toppdomäner som .eu). Det gör det enkelt att flytta sajten vid behov.

ActivityPub

Wordpress kan göra publiceringar via ActivityPub, men jag tyckte inte det blev speciellt bra. Istället för att använda den förhandsvisning som används vid delning skickade de hela bloggposten. Det blir inte så bra när bilder förutsätts vara på ett visst ställe i texten, inte bilagor.

Det blir manuella inlägg från Mastodonkontot i fortsättningen.

Fler som skriver?

Ifall nån mer vill skriva: Den som är van vid Wordpress får lära sig en del. Den som jobbat med källkodsfiler och git förstår direkt. Eller så kan eventuella skribenter skicka text till mig så löser jag resten.

Ändra från mobilen

Det finns ingen app, men jag kan ändra i Codebergs web gui. Ändringarna hämtas av min server som bygger en ny version av sajten och laddar upp den. I nödfall kan jag logga in på servern med en ssh-klient på mobilen, och ändra i sidorna med vi.

Markdown-exempel

## Wordpress
 Sajten fanns tidigare på Wordpress.com, efter en incident där deras spamfilter stängde ned sajten började jag kolla alternativ. Wordpress nån annanstans var ett alternativ, men jag hamnade snart på "statisk sajt"-spåret. 

## Statisk sajt

### Markdown
Ett [formatteringsspråk](https://www.markdownguide.org) för att kunna få in rubriker, länkar, bilder mm men ändå definiera allt som ren text.

#### MkDocs
[MkDocs](https://www.mkdocs.org) är ett verktyg för att göra html-sidor utifrån Markdown-sidorna.

Dela på Dela på Dela på Dela via e-post Kopiera länk