Compare commits

...

2 Commits

Author SHA1 Message Date
3e3812faef lgtm 2025-09-05 12:13:23 +02:00
3e4a4636fa Partials take styling class for section as param 2025-09-05 11:39:14 +02:00
6 changed files with 70 additions and 51 deletions

20
main.go
View File

@ -98,8 +98,26 @@ func NewServer() *Server {
SonBirthDate: getEnv("SON_BIRTH_DATE", "2022-01-01"),
}
// Template Funcs
funcs := template.FuncMap{
"dict": func(values ...interface{}) (map[string]interface{}, error) {
if len(values)%2 != 0 {
return nil, fmt.Errorf("dict expects even number of args")
}
m := make(map[string]interface{}, len(values)/2)
for i := 0; i < len(values); i += 2 {
k, ok := values[i].(string)
if !ok {
return nil, fmt.Errorf("dict keys must be strings")
}
m[k] = values[i+1]
}
return m, nil
},
}
// Parse templates with error handling
templates, err := template.ParseGlob("templates/*.html")
templates, err := template.New("").Funcs(funcs).ParseGlob("templates/*.html")
if err != nil {
log.Fatalf("Failed to parse templates: %v", err)
}

View File

@ -46,7 +46,7 @@
<section class="page-hero">
<div class="container">
<h1>Diensten en tarieven</h1>
<p>Heldere prijzen en duidelijke afspraken. Tarief: €20 per half uur.</p>
<p>Linux blijft vrij. Mijn hulp is betaalbaar, met duidelijke afspraken vooraf.</p>
</div>
</section>
@ -74,19 +74,10 @@
</div>
</section>
<section class="section section--light-green services">
<section class="section section--light">
<div class="container">
<h2>Mijn aanpak</h2>
<div class="steps-grid">
<div class="card card--service"><h3>1. Kennismaking (gratis)</h3><p>We bespreken wensen, hardware en gebruik.</p></div>
<div class="card card--service"><h3>2. Proefstart</h3><p>Linux live vanaf USB om te testen op uw pc.</p></div>
<div class="card card--service"><h3>3. Installatie</h3><p>Compleet ingericht met updates, drivers en basissoftware.</p></div>
<div class="card card--service"><h3>4. Migratie</h3><p>Bestanden, fotos en documenten veilig overzetten.</p></div>
<div class="card card--service"><h3>5. Uitleg & nazorg</h3><p>Korte training en laagdrempelige ondersteuning.</p></div>
</div>
<div style="margin-top:1.5rem">
<p><strong>Daarnaast</strong> geef ik geregeld gratis informatiebijeenkomsten en help ik soms bij Repair Cafés met installaties, zonder kosten.</p>
</div>
<h2>Waarom betalen voor hulp bij Linux?</h2>
<p>Linux zelf is vrije software. Iedereen kan het downloaden en gebruiken. Wat ik aanbied, is mijn tijd, kennis en zorg: ik neem u het uitzoekwerk, de installatie en de uitleg uit handen. Zo kunt u zonder stress meteen prettig aan de slag.</p>
</div>
</section>
@ -110,6 +101,25 @@
<p>Optioneel kan ik data kopiëren naar uw USB-stick(s) of externe schijf. Zie de <a href="#backup-disclaimer">back-updisclaimer</a>.</p>
</div>
</div>
<div style="margin-top:1.5rem">
<h3>Toegankelijkheid</h3>
<p>Mijn standaardtarief is €20 per half uur. Dat is een eerlijke vergoeding voor mijn werk, waarmee ik deze service in Het Hogeland kan blijven aanbieden.</p>
<p>Heeft u een smalle beurs of zit u in een moeilijke situatie? Dan kijken we samen naar een oplossing. Ik vind dat financiële drempels geen reden mogen zijn om de overstap naar Linux te missen.</p>
<p>Ik organiseer regelmatig <b>gratis informatiebijeenkomsten</b> en help bij Repair Cafés. Dat blijft kosteloos.</p>
</div>
</div>
</section>
<section class="section section--light-green services">
<div class="container">
<h2>Mijn aanpak</h2>
<div class="steps-grid">
<div class="card card--service"><h3>1. Kennismaking (gratis)</h3><p>We bespreken wensen, hardware en gebruik.</p></div>
<div class="card card--service"><h3>2. Proefstart</h3><p>Linux live vanaf USB om te testen op uw pc.</p></div>
<div class="card card--service"><h3>3. Installatie</h3><p>Compleet ingericht met updates, drivers en basissoftware.</p></div>
<div class="card card--service"><h3>4. Migratie</h3><p>Bestanden, fotos en documenten veilig overzetten.</p></div>
<div class="card card--service"><h3>5. Uitleg & nazorg</h3><p>Korte training en laagdrempelige ondersteuning.</p></div>
</div>
</div>
</section>

View File

@ -110,7 +110,7 @@
</div>
</section>
{{template "benefits" .}}
{{template "benefits" (dict "Page" . "SectionClass" "section--light") }}
<section id="windows10-eol" class="section windows-eol">
<div class="container">
@ -322,7 +322,7 @@
</div>
</section>
{{template "linux_features" .}}
{{template "linux_features" (dict "Page" . "SectionClass" "section--light-green") }}
<section class="section cta">
<div class="container">

View File

@ -46,7 +46,7 @@
<section class="page-hero">
<div class="container">
<h1>Waarom Linux?</h1>
<p>Nieuw bij Linux? Geen zorgen. Linux is een veilig en snel besturingssysteem dat uw huidige computer nieuw leven kan geven, zonder licentiekosten. Hieronder vindt u een korte beslishulp en voorbeelden in beeld.</p>
<p>Nieuw bij Linux? Geen zorgen. Linux is een betrouwbaar en eenvoudig computersysteem dat uw computer vaak weer prettig laat werken, zonder dat u ervoor hoeft te betalen. U kunt blijven doen wat u gewend bent: internetten, e-mailen, fotos bekijken, videobellen en bankieren. Hieronder vindt u een korte uitleg en voorbeelden in beeld.</p>
</div>
</section>
@ -72,48 +72,34 @@
</div>
</section>
{{template "benefits" .}}
{{template "benefits" (dict "Page" . "SectionClass" "section--light-green") }}
<section class="section section--light distros">
<div class="container">
<h2>Welke Linux past bij u?</h2>
<p class="section-subtitle">Een paar goede keuzes met elk een duidelijk profiel.</p>
<p class="section-subtitle">Niet iedereen hoeft alle keuzes te zien. Daarom drie eenvoudige opties om mee te beginnen.</p>
<div class="distro-tiles">
<div class="distro-tile">
<img src="/static/images/mint.svg" alt="Linux Mint" class="distro-tile__img">
<h3>Linux Mint</h3>
<p>Windows-achtig, stabiel, vertrouwd voor overstappers.</p>
<p>Heel vertrouwd voor overstappers. Lijkt qua bediening op Windows en werkt stabiel.</p>
</div>
<div class="distro-tile">
<img src="/static/images/ubuntu.png" alt="Ubuntu" class="distro-tile__img">
<h3>Ubuntu LTS</h3>
<p>Populair, langetermijnupdates, breed inzetbaar.</p>
</div>
<div class="distro-tile">
<img src="/static/images/popos.svg" alt="Pop!_OS" class="distro-tile__img">
<h3>Pop!_OS</h3>
<p>Gaming-geoptimaliseerd, uitstekende NVIDIA-ondersteuning.</p>
</div>
<div class="distro-tile">
<img src="/static/images/fedora.png" alt="Fedora" class="distro-tile__img">
<h3>Fedora</h3>
<p>Nieuwste technologie, Red Hat-basis, ontwikkelaarstools.</p>
<p>Veelgebruikt en jarenlang ondersteund. Geschikt voor allerlei toepassingen.</p>
</div>
<div class="distro-tile">
<img src="/static/images/elementary.png" alt="Elementary OS" class="distro-tile__img">
<h3>Elementary OS</h3>
<p>Elegant, eenvoudig, design-gericht.</p>
</div>
<div class="distro-tile">
<img src="/static/images/garuda.svg" alt="Garuda Linux" class="distro-tile__img">
<h3>Garuda Linux</h3>
<p>Arch-basis, snelle prestaties, modern.</p>
<p>Rustig en overzichtelijk, met een eenvoudig ontwerp dat prettig oogt.</p>
</div>
</div>
<p class="section-subtitle" style="margin-top:1rem">Wilt u later meer ontdekken? Er bestaan nog veel andere varianten zoals Fedora, Pop!_OS of Garuda Linux, ideaal voor wie graag experimenteert of speciale wensen heeft.</p>
</div>
</section>
{{template "linux_features" .}}
{{template "linux_features" (dict "Page" . "SectionClass" "section--light-green") }}
<section class="section cta">
<div class="container">

View File

@ -1,37 +1,40 @@
{{define "benefits"}}
<section id="voordelen" class="section {{if eq .CurrentPage "linux"}}section--light-green{{else}}section--light{{end}} benefits">
{{/* Pass SectionClass via dict: template "benefits" (dict "Page" . "SectionClass" "section--light") */}}
{{ $sectionClass := "section--light" }}
{{ with index . "SectionClass" }}{{ $sectionClass = . }}{{ end }}
<section id="voordelen" class="section {{$sectionClass}} benefits">
<div class="container">
<h2><a href="/linux">Waarom Linux kiezen?</a></h2>
<div class="benefits-grid">
<a class="card card--benefit card-link" href="/linux">
<div class="card__icon">🛡️</div>
<h3>Veilig en betrouwbaar</h3>
<p>Linux is van nature veiliger dan Windows. Minder virussen, geen gedwongen updates en volledige controle over uw systeem.</p>
<p>Beschermd tegen virussen en zonder storende, onverwachte updates. U houdt de controle over uw computer.</p>
</a>
<a class="card card--benefit card-link" href="/linux">
<div class="card__icon">💰</div>
<h3>Volledig gratis</h3>
<p>Geen licentiekosten, geen abonnementen. Linux en alle software zijn gratis en open source.</p>
<h3>Helemaal gratis</h3>
<p>Geen licenties of abonnementen nodig. Linux en de meeste programmas zijn kosteloos.</p>
</a>
<a class="card card--benefit card-link" href="/linux">
<div class="card__icon">🔄</div>
<h3>Oude hardware hergebruiken</h3>
<p>Uw computer van 10 jaar oud? Linux maakt hem weer snel! Geen nieuwe hardware nodig.</p>
<h3>Geschikt voor oudere computers</h3>
<p>Ook een computer die al jaren meegaat kan met Linux weer soepel draaien.</p>
</a>
<a class="card card--benefit card-link" href="/linux">
<div class="card__icon">🌱</div>
<h3>Milieuvriendelijk</h3>
<p>Stop e-waste! Door Linux te gebruiken houdt u uw apparaten langer werkend en uit de afvalberg.</p>
<h3>Beter voor het milieu</h3>
<p>Door langer met uw computer te doen voorkomt u elektronisch afval (e-waste). Goed voor uw portemonnee en voor de planeet.</p>
</a>
<a class="card card--benefit card-link" href="/linux">
<div class="card__icon">🔒</div>
<h3>Privacybescherming</h3>
<p>Geen tracking en geen verborgen gegevensverzameling. Uw privacy blijft van uzelf.</p>
<h3>Uw privacy blijft van uzelf</h3>
<p>Geen verborgen gegevensverzameling of tracking.</p>
</a>
<a class="card card--benefit card-link" href="/linux">
<div class="card__icon"></div>
<h3>Snel en efficiënt</h3>
<p>Linux gebruikt minder systeembronnen, waardoor uw computer sneller opstart en soepeler werkt.</p>
<h3>Sneller werken</h3>
<p>Linux start vlot op en voelt vaak lichter aan dan andere systemen.</p>
</a>
</div>
</div>

View File

@ -1,5 +1,7 @@
{{define "linux_features"}}
<section class="section section--light-green linux-features">
{{ $sectionClass := "section--light-green" }}
{{ with index . "SectionClass" }}{{ $sectionClass = . }}{{ end }}
<section class="section {{$sectionClass}} linux-features">
<div class="container">
<h2><a href="/linux">Linux in actie</a></h2>
<p class="section-subtitle">Zie hoe Linux eruitziet en werkt in de praktijk</p>