diff --git a/linuxservice b/linuxservice new file mode 100755 index 0000000..13e9968 Binary files /dev/null and b/linuxservice differ diff --git a/main.go b/main.go index c1980af..a43fd02 100644 --- a/main.go +++ b/main.go @@ -38,6 +38,9 @@ type PageData struct { ErrorMessage string SuccessMessage string FormData ContactForm + AboutName string + AgeYears int + SonAgeYears int } // ContactForm holds form data @@ -311,6 +314,29 @@ func (s *Server) healthHandler(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`{"status":"healthy","service":"linuxservice"}`)) } +// aboutHandler handles the About Me page +func (s *Server) aboutHandler(w http.ResponseWriter, r *http.Request) { + data := s.createPageData("Over mij - "+s.config.CompanyName, "about") + // Populate dynamic About fields + data.AboutName = "Brendon Bosman" + now := time.Now() + birthYear, birthMonth, birthDay := 1990, time.October, 17 + age := now.Year() - birthYear + if now.Month() < birthMonth || (now.Month() == birthMonth && now.Day() < birthDay) { + age-- + } + data.AgeYears = age + + sonYear, sonMonth, sonDay := 2022, time.March, 11 + sonAge := now.Year() - sonYear + if now.Month() < sonMonth || (now.Month() == sonMonth && now.Day() < sonDay) { + sonAge-- + } + data.SonAgeYears = sonAge + + s.renderTemplate(w, "over-mij.html", data) +} + // setupRoutes configures all HTTP routes func (s *Server) setupRoutes() { // Static files @@ -320,6 +346,7 @@ func (s *Server) setupRoutes() { // Page routes http.HandleFunc("/", s.homeHandler) http.HandleFunc("/contact", s.contactHandler) + http.HandleFunc("/over-mij", s.aboutHandler) http.HandleFunc("/health", s.healthHandler) } diff --git a/static/TuxAinrom.png b/static/TuxAinrom.png new file mode 100644 index 0000000..7bbbd35 Binary files /dev/null and b/static/TuxAinrom.png differ diff --git a/static/style.css b/static/style.css index 7065aff..ca8e213 100644 --- a/static/style.css +++ b/static/style.css @@ -927,6 +927,41 @@ footer { color: #6b7280; } +/* About page */ +.about { + padding: 5rem 0; +} + +.about-grid { + display: grid; + grid-template-columns: 1.5fr 1fr; + gap: 3rem; + align-items: start; +} + +.about-text p { + margin: 1rem 0; + line-height: 1.8; + color: #374151; +} + +.about-cta { + margin-top: 2rem; +} + +.about-photo img { + width: 100%; + height: auto; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0,0,0,0.08); +} + +@media (max-width: 900px) { + .about-grid { + grid-template-columns: 1fr; + } +} + /* Responsive Design */ @media (max-width: 1024px) { .container { diff --git a/templates/footer.html b/templates/footer.html index 49b727c..521222a 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -21,6 +21,7 @@
Lid van Nederlandse Linux Gebruikers Groep (NLLGG.nl)
Actief bij Buurtlinux.nl initiatief
Wij ondersteunen de End-of-10-beweging voor duurzaam computergebruik.
+