Commit before this refactoring with partials and stuff gets out of control
This commit is contained in:
27
.gitignore
vendored
Normal file
27
.gitignore
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
# Binaries
|
||||
linuxservice
|
||||
*.exe
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Build directories
|
||||
/bin/
|
||||
/build/
|
||||
/dist/
|
||||
|
||||
# Logs and caches
|
||||
*.log
|
||||
*.cache
|
||||
|
||||
# OS files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Editor/project files
|
||||
.vscode/
|
||||
.idea/
|
||||
|
||||
# Go
|
||||
*.test
|
||||
coverage.out
|
BIN
linuxservice
BIN
linuxservice
Binary file not shown.
48
main.go
48
main.go
@ -9,6 +9,7 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@ -102,6 +103,12 @@ func NewServer() *Server {
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to parse templates: %v", err)
|
||||
}
|
||||
// Optionally parse partials if any exist
|
||||
if matches, _ := filepath.Glob("templates/partials/*.html"); len(matches) > 0 {
|
||||
if _, err := templates.ParseFiles(matches...); err != nil {
|
||||
log.Fatalf("Failed to parse partial templates: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return &Server{
|
||||
config: config,
|
||||
@ -109,6 +116,21 @@ func NewServer() *Server {
|
||||
}
|
||||
}
|
||||
|
||||
// cleanupOldSubmissions periodically purges stale rate-limit entries
|
||||
func cleanupOldSubmissions() {
|
||||
for {
|
||||
time.Sleep(10 * time.Minute)
|
||||
mu.Lock()
|
||||
cutoff := time.Now().Add(-submissionCooldown)
|
||||
for ip, t := range lastSubmissionTime {
|
||||
if t.Before(cutoff) {
|
||||
delete(lastSubmissionTime, ip)
|
||||
}
|
||||
}
|
||||
mu.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
// createPageData creates PageData with the given title and current page
|
||||
func (s *Server) createPageData(title, currentPage string) PageData {
|
||||
return PageData{
|
||||
@ -208,7 +230,7 @@ func (s *Server) handleContactForm(w http.ResponseWriter, r *http.Request, data
|
||||
mu.Unlock()
|
||||
|
||||
// On success, render success message
|
||||
data.SuccessMessage = "Bedankt voor uw bericht! We nemen zo snel mogelijk contact met u op."
|
||||
data.SuccessMessage = "Bedankt voor uw bericht! Ik neem zo snel mogelijk contact met u op."
|
||||
data.FormData = ContactForm{} // Clear form data
|
||||
s.renderTemplate(w, "contact.html", *data)
|
||||
}
|
||||
@ -238,7 +260,7 @@ func (s *Server) sendToTelegram(form ContactForm) error {
|
||||
payload := map[string]interface{}{
|
||||
"chat_id": s.config.TelegramChatID,
|
||||
"text": message,
|
||||
"parse_mode": "Markdown",
|
||||
"parse_mode": "MarkdownV2",
|
||||
}
|
||||
|
||||
jsonData, err := json.Marshal(payload)
|
||||
@ -362,7 +384,7 @@ func (s *Server) linuxHandler(w http.ResponseWriter, r *http.Request) {
|
||||
func (s *Server) setupRoutes() {
|
||||
// Static files
|
||||
fs := http.FileServer(http.Dir("static/"))
|
||||
http.Handle("/static/", http.StripPrefix("/static/", fs))
|
||||
http.Handle("/static/", http.StripPrefix("/static/", cacheControlMiddleware(fs)))
|
||||
|
||||
// Page routes
|
||||
http.HandleFunc("/", s.homeHandler)
|
||||
@ -376,7 +398,27 @@ func (s *Server) setupRoutes() {
|
||||
func main() {
|
||||
server := NewServer()
|
||||
server.setupRoutes()
|
||||
// Start background cleanup for rate limiting map
|
||||
go cleanupOldSubmissions()
|
||||
|
||||
log.Printf("Server starting on %s", server.config.Port)
|
||||
log.Fatal(http.ListenAndServe(server.config.Port, nil))
|
||||
}
|
||||
|
||||
// cacheControlMiddleware sets Cache-Control headers for static assets
|
||||
func cacheControlMiddleware(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
path := r.URL.Path
|
||||
switch {
|
||||
case strings.HasSuffix(path, ".css") || strings.HasSuffix(path, ".js") ||
|
||||
strings.HasSuffix(path, ".png") || strings.HasSuffix(path, ".jpg") ||
|
||||
strings.HasSuffix(path, ".jpeg") || strings.HasSuffix(path, ".webp") ||
|
||||
strings.HasSuffix(path, ".svg") || strings.HasSuffix(path, ".ico") ||
|
||||
strings.HasSuffix(path, ".woff2"):
|
||||
w.Header().Set("Cache-Control", "public, max-age=31536000, immutable")
|
||||
default:
|
||||
w.Header().Set("Cache-Control", "public, max-age=300")
|
||||
}
|
||||
next.ServeHTTP(w, r)
|
||||
})
|
||||
}
|
||||
|
@ -8,12 +8,12 @@
|
||||
"theme_color": "#059669",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/static/android-chrome-192x192.png",
|
||||
"src": "/static/images/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/static/android-chrome-512x512.png",
|
||||
"src": "/static/images/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
<!-- Open Graph Meta Tags for Social Media -->
|
||||
<meta property="og:title" content="{{.Title}}">
|
||||
<meta property="og:description" content="Neem contact op met {{.CompanyName}} voor Linux-migratieservice. Gratis advies, installatie, datamigratie en ondersteuning in gemeente Het Hogeland.">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/TuxAinrom.webp">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/images/TuxAinrom.webp">
|
||||
<meta property="og:image:alt" content="Tux Linux mascotte banner voor Hogeland Linux service">
|
||||
<meta property="og:url" content="https://{{.Domain}}/contact">
|
||||
<meta property="og:type" content="website">
|
||||
@ -26,7 +26,7 @@
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{{.Title}}">
|
||||
<meta name="twitter:description" content="Neem contact op met {{.CompanyName}} voor Linux-migratieservice. Gratis advies en ondersteuning.">
|
||||
<meta name="twitter:image" content="https://{{.Domain}}/static/TuxAinrom.webp">
|
||||
<meta name="twitter:image" content="https://{{.Domain}}/static/images/TuxAinrom.webp">
|
||||
<meta name="twitter:image:alt" content="Tux Linux mascotte banner voor Hogeland Linux service">
|
||||
|
||||
<!-- Favicon Links -->
|
||||
@ -45,6 +45,8 @@
|
||||
|
||||
<!-- Preload Critical Resources -->
|
||||
<link rel="preload" href="/static/css/style.css" as="style">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" as="style">
|
||||
|
||||
<!-- CSS and Fonts -->
|
||||
@ -58,7 +60,7 @@
|
||||
<section class="page-hero">
|
||||
<div class="container">
|
||||
<h1>Neem contact op</h1>
|
||||
<p>Heeft u vragen over Linux migratie? Wij helpen u graag verder!</p>
|
||||
<p>Heeft u vragen over Linux‑migratie? Ik help u graag verder!</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -99,7 +101,7 @@
|
||||
|
||||
<div class="contact-hours">
|
||||
<h3>Openingstijden</h3>
|
||||
<p>Maandag - vrijdag: 09:00 - 17:00 (op afspraak)</p>
|
||||
<p>Maandag – vrijdag: 09:00 – 17:00 (op afspraak)</p>
|
||||
<p>Weekend: op afspraak</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -154,7 +156,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label for="message">Bericht *</label>
|
||||
<textarea id="message" name="message" rows="5" required placeholder="Vertel ons over uw situatie en hoe wij u kunnen helpen...">{{.FormData.Message}}</textarea>
|
||||
<textarea id="message" name="message" rows="5" required placeholder="Vertel iets over uw situatie en hoe ik u kan helpen...">{{.FormData.Message}}</textarea>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Verstuur bericht</button>
|
||||
@ -167,11 +169,11 @@
|
||||
<section class="section section--light-green contact-cta">
|
||||
<div class="container">
|
||||
<h2>Waarom kiezen voor {{.CompanyName}}?</h2>
|
||||
<div class="card card--ctas">
|
||||
<div class="cta-benefits">
|
||||
<div class="card card--cta">
|
||||
<div class="card__icon">🎯</div>
|
||||
<h3>Persoonlijke aanpak</h3>
|
||||
<p>Elke klant is uniek, en wij bieden maatwerkoplossingen.</p>
|
||||
<p>Elke klant is uniek. Ik lever maatwerkoplossingen.</p>
|
||||
</div>
|
||||
<div class="card card--cta">
|
||||
<div class="card__icon">🛠️</div>
|
||||
@ -181,12 +183,12 @@
|
||||
<div class="card card--cta">
|
||||
<div class="card__icon">🤝</div>
|
||||
<h3>Volledige ondersteuning</h3>
|
||||
<p>Van installatie tot training, wij begeleiden u door het hele proces.</p>
|
||||
<p>Van installatie tot training: ik begeleid u door het hele proces.</p>
|
||||
</div>
|
||||
<div class="card card--cta">
|
||||
<div class="card__icon">💚</div>
|
||||
<h3>Duurzame keuze</h3>
|
||||
<p>Samen bouwen we aan een duurzamere digitale toekomst.</p>
|
||||
<p>U kiest voor een duurzamere digitale toekomst.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@
|
||||
<!-- Open Graph Meta Tags for Social Media -->
|
||||
<meta property="og:title" content="{{.Title}}">
|
||||
<meta property="og:description" content="Diensten en tarieven: Linux-installaties, advies, datamigratie en ondersteuning. Tarief: €20 per half uur.">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/TuxAinrom.webp">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/images/TuxAinrom.webp">
|
||||
<meta property="og:image:alt" content="Diensten van {{.CompanyName}}">
|
||||
<meta property="og:url" content="https://{{.Domain}}/diensten">
|
||||
<meta property="og:type" content="website">
|
||||
@ -86,7 +86,7 @@
|
||||
<div class="cta-benefit">
|
||||
<div class="benefit-icon">🧾</div>
|
||||
<h3>Voorbeelden</h3>
|
||||
<p>Installatie + basisinrichting: 1–2 uur. Migratie van gegevens: afhankelijk van volume en snelheid van opslag.</p>
|
||||
<p>Installatie + basisinrichting: 1 à 2 uur. Migratie van gegevens: afhankelijk van volume en snelheid van opslag.</p>
|
||||
</div>
|
||||
<div class="cta-benefit">
|
||||
<div class="benefit-icon">🔁</div>
|
||||
@ -99,9 +99,9 @@
|
||||
|
||||
<section class="contact-content">
|
||||
<div class="container">
|
||||
<h2>Belangrijke disclaimer over back-ups</h2>
|
||||
<p>Ik lever in de kern een Linux-installatie- en migratieservice en ben geen back-updienst. <strong>Back-ups maken en bewaren is in principe de verantwoordelijkheid van de klant.</strong> Als extra service kan ik — op uw verzoek — data kopiëren naar door u aangeleverde USB-sticks of een externe schijf.</p>
|
||||
<p>Hoewel ik zorgvuldig werk, kan er bij datakopie of -migratie altijd een risico op dataverlies bestaan (bijvoorbeeld door defecte schijven, corrupte data of hardwarefouten). <strong>U blijft verantwoordelijk voor uw eigen data</strong>. Ik ben niet aansprakelijk voor verlies of beschadiging van gegevens. Ik adviseer altijd om vooraf een eigen back-up te maken.</p>
|
||||
<h2>Belangrijk over back‑ups</h2>
|
||||
<p>Ik lever een Linux‑installatie‑ en migratieservice en ben geen back‑updienst. <strong>Back‑ups maken en bewaren is in principe de verantwoordelijkheid van de klant.</strong> Als extra service kan ik, op uw verzoek, data kopiëren naar door u aangeleverde USB‑sticks of een externe schijf.</p>
|
||||
<p>Hoewel ik zorgvuldig werk, kan er bij datakopie of migratie altijd een risico op dataverlies bestaan (bijvoorbeeld door defecte schijven, corrupte data of hardwarefouten). <strong>U blijft verantwoordelijk voor uw eigen data</strong>. Ik ben niet aansprakelijk voor verlies of beschadiging van gegevens. Ik adviseer altijd om vooraf een eigen back‑up te maken.</p>
|
||||
<div class="about-cta">
|
||||
<a href="/contact" class="btn btn-primary">Vrijblijvend contact opnemen</a>
|
||||
</div>
|
||||
|
@ -20,7 +20,7 @@
|
||||
<h3>Gemeenschap</h3>
|
||||
<p>Lid van <a href="https://nllgg.nl" target="_blank">Nederlandse Linux Gebruikers Groep</a> (NLLGG.nl)</p>
|
||||
<p>Actief bij <a href="https://buurtlinux.nl" target="_blank">Buurtlinux.nl</a> initiatief</p>
|
||||
<p>Wij ondersteunen de <a href="https://endof10.org" target="_blank">End-of-10</a>-beweging voor duurzaam computergebruik.</p>
|
||||
<p>Ik ondersteun de <a href="https://endof10.org" target="_blank">End‑of‑10</a>-beweging voor duurzaam computergebruik.</p>
|
||||
<p><a href="/over-mij">Over mij</a> · <a href="/contact">Contact</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -11,14 +11,12 @@
|
||||
<meta name="author" content="{{.CompanyName}}">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="language" content="nl">
|
||||
<meta name="revisit-after" content="7 days">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="rating" content="general">
|
||||
|
||||
|
||||
<!-- Open Graph Meta Tags for Social Media -->
|
||||
<meta property="og:title" content="{{.Title}}">
|
||||
<meta property="og:description" content="Windows 10-ondersteuning eindigt binnenkort? Geef uw computer nieuw leven met Linux! Professionele Linux-migratieservice in gemeente Het Hogeland.">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/TuxAinrom.webp">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/images/TuxAinrom.webp">
|
||||
<meta property="og:image:alt" content="Tux Linux mascotte banner voor Hogeland Linux service">
|
||||
<meta property="og:url" content="https://{{.Domain}}/">
|
||||
<meta property="og:type" content="website">
|
||||
@ -29,7 +27,7 @@
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{{.Title}}">
|
||||
<meta name="twitter:description" content="Windows 10-ondersteuning eindigt binnenkort? Geef uw computer nieuw leven met Linux! Professionele Linux-migratieservice.">
|
||||
<meta name="twitter:image" content="https://{{.Domain}}/static/TuxAinrom.webp">
|
||||
<meta name="twitter:image" content="https://{{.Domain}}/static/images/TuxAinrom.webp">
|
||||
<meta name="twitter:image:alt" content="Tux Linux mascotte banner voor Hogeland Linux service">
|
||||
|
||||
<!-- Favicon Links -->
|
||||
@ -49,6 +47,8 @@
|
||||
<!-- Preload Critical Resources -->
|
||||
<link rel="preload" href="/static/css/style.css" as="style">
|
||||
<link rel="preload" href="/static/images/TuxAinrom.webp" as="image">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" as="style">
|
||||
|
||||
<!-- CSS and Fonts -->
|
||||
@ -110,43 +110,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="voordelen" class="section section--light 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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{template "benefits" .}}
|
||||
|
||||
<section id="windows10-eol" class="section windows-eol">
|
||||
<div class="container">
|
||||
@ -344,47 +308,7 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section section--light-green 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>
|
||||
|
||||
<div class="features-grid">
|
||||
<div class="feature-showcase">
|
||||
<div class="feature-image">
|
||||
<img src="/static/images/Zorin-17-desktop.webp" alt="Zorin OS 17 Desktop Interface" loading="lazy">
|
||||
<div class="image-caption">
|
||||
<small>Bron: <a href="https://www.debugpoint.com/wp-content/uploads/2023/12/Zorin-17-desktop.jpg" target="_blank" rel="noopener">DebugPoint.com</a></small>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Moderne desktopinterface</h3>
|
||||
<p>Linux ziet er vertrouwd en professioneel uit. Deze Zorin OS desktop lijkt op Windows maar is veel sneller en veiliger.</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-showcase">
|
||||
<div class="feature-image">
|
||||
<img src="/static/images/LinuxMintCinnamonSoftwareManager.webp" alt="Linux Mint Software Manager" loading="lazy">
|
||||
<div class="image-caption">
|
||||
<small>Bron: <a href="https://linuxmint.com" target="_blank" rel="noopener">LinuxMint.com</a></small>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Eenvoudig software installeren</h3>
|
||||
<p>Duizenden gratis programma's met één klik installeren via de Software Manager. Net zo makkelijk als een app store.</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-showcase">
|
||||
<div class="feature-image">
|
||||
<img src="/static/images/GamingBenchmarkLinuxvsWindows.webp" alt="Gaming Performance Linux vs Windows" loading="lazy">
|
||||
<div class="image-caption">
|
||||
<small>Bron: <a href="https://www.youtube.com/watch?v=4LI-1Zdk-Ys" target="_blank" rel="noopener">Linux vs Windows Gaming Performance</a></small>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Gamingprestaties</h3>
|
||||
<p>Linux kan vaak betere gamingprestaties leveren dan Windows, dankzij minder overhead en optimalisaties voor moderne games.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{template "linux_features" .}}
|
||||
|
||||
<section class="section cta">
|
||||
<div class="container">
|
||||
|
@ -15,7 +15,7 @@
|
||||
<!-- Open Graph Meta Tags for Social Media -->
|
||||
<meta property="og:title" content="{{.Title}}">
|
||||
<meta property="og:description" content="Maak kennis met populaire Linux-distributies en zie Linux in actie.">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/TuxAinrom.webp">
|
||||
<meta property="og:image" content="https://{{.Domain}}/static/images/TuxAinrom.webp">
|
||||
<meta property="og:image:alt" content="Linux distributies en functies">
|
||||
<meta property="og:url" content="https://{{.Domain}}/linux">
|
||||
<meta property="og:type" content="website">
|
||||
@ -46,47 +46,11 @@
|
||||
<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 leest u kort de voordelen en ziet u voorbeelden en populaire keuzes.</p>
|
||||
<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, mijn aanpak en voorbeelden in beeld.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section section--light benefits">
|
||||
<div class="container">
|
||||
<h2>Voordelen van Linux</h2>
|
||||
<div class="benefits-grid">
|
||||
<div class="card card--benefit">
|
||||
<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>
|
||||
</div>
|
||||
<div class="card card--benefit">
|
||||
<div class="card__icon">💰</div>
|
||||
<h3>Volledig gratis</h3>
|
||||
<p>Geen licentiekosten, geen abonnementen. Linux en alle software zijn gratis en open source.</p>
|
||||
</div>
|
||||
<div class="card card--benefit">
|
||||
<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>
|
||||
</div>
|
||||
<div class="card card--benefit">
|
||||
<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>
|
||||
</div>
|
||||
<div class="card card--benefit">
|
||||
<div class="card__icon">🔒</div>
|
||||
<h3>Privacybescherming</h3>
|
||||
<p>Geen tracking en geen verborgen gegevensverzameling. Uw privacy blijft van uzelf.</p>
|
||||
</div>
|
||||
<div class="card card--benefit">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{template "benefits" .}}
|
||||
|
||||
<section class="section section--light-green distros">
|
||||
<div class="container">
|
||||
|
40
templates/partials/benefits.html
Normal file
40
templates/partials/benefits.html
Normal file
@ -0,0 +1,40 @@
|
||||
{{define "benefits"}}
|
||||
<section id="voordelen" class="section section--light 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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</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>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
|
41
templates/partials/linux_features.html
Normal file
41
templates/partials/linux_features.html
Normal file
@ -0,0 +1,41 @@
|
||||
{{define "linux_features"}}
|
||||
<section class="section section--light-green 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>
|
||||
<div class="features-grid">
|
||||
<div class="feature-showcase">
|
||||
<div class="feature-image">
|
||||
<img src="/static/images/Zorin-17-desktop.webp" alt="Zorin OS 17 Desktop" loading="lazy">
|
||||
<div class="image-caption">
|
||||
<small>Bron: <a href="https://www.debugpoint.com/wp-content/uploads/2023/12/Zorin-17-desktop.jpg" target="_blank" rel="noopener">DebugPoint.com</a></small>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Moderne desktopinterface</h3>
|
||||
<p>Ziet er vertrouwd uit, werkt snel en stabiel. Ideaal voor dagelijks gebruik.</p>
|
||||
</div>
|
||||
<div class="feature-showcase">
|
||||
<div class="feature-image">
|
||||
<img src="/static/images/LinuxMintCinnamonSoftwareManager.webp" alt="Linux Mint Softwarebeheer" loading="lazy">
|
||||
<div class="image-caption">
|
||||
<small>Bron: <a href="https://linuxmint.com" target="_blank" rel="noopener">LinuxMint.com</a></small>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Eenvoudig software installeren</h3>
|
||||
<p>Duizenden gratis programma’s met één klik via Softwarebeheer.</p>
|
||||
</div>
|
||||
<div class="feature-showcase">
|
||||
<div class="feature-image">
|
||||
<img src="/static/images/GamingBenchmarkLinuxvsWindows.webp" alt="Gamingprestaties Linux versus Windows" loading="lazy">
|
||||
<div class="image-caption">
|
||||
<small>Bron: <a href="https://www.youtube.com/watch?v=4LI-1Zdk-Ys" target="_blank" rel="noopener">Linux vs Windows Gaming Performance</a></small>
|
||||
</div>
|
||||
</div>
|
||||
<h3>Gamingprestaties</h3>
|
||||
<p>Prima geschikt voor gaming dankzij moderne drivers en optimalisaties.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
|
Reference in New Issue
Block a user