From a54d8d6bd0d52ce0a97a95808d9a2dd4927012d4 Mon Sep 17 00:00:00 2001 From: samantha42 Date: Fri, 11 Sep 2026 09:08:49 +0200 Subject: [PATCH] moved static into source --- main.go | 25 +++++++++++------- source/favicon.ico | Bin 0 -> 13476 bytes {static => source/static}/.DS_Store | Bin .../static}/components/background.html | 0 {static => source/static}/components/eq.html | 0 .../static}/components/games.html | 0 .../static}/components/themetoggle.html | 0 {static => source/static}/cv.pdf | 0 .../static}/gamesbanners/Tombraider.png | Bin .../static}/gamesbanners/baldursgate3.jpg | Bin .../gamesbanners/detroitbecomehuman.jpg | Bin .../static}/gamesbanners/factorio.jpg | Bin .../static}/gamesbanners/gtav.webp | Bin .../static}/gamesbanners/minecraft.webp | Bin .../static}/gamesbanners/planetzoo.webp | Bin .../static}/gamesbanners/riskofrain2.jpg | Bin .../static}/gamesbanners/slaythespire2.png | Bin .../static}/icons/Invoice-OKZP3LVL-0011.pdf | Bin {static => source/static}/icons/arcade.svg | 0 {static => source/static}/icons/at-sign.svg | 0 {static => source/static}/icons/half-moon.svg | 0 ...he-eevees-and-umbreon-l3kahsutrpv30hko.jpg | Bin {static => source/static}/icons/lovesun.png | Bin .../static}/icons/magic-moon.png | Bin {static => source/static}/icons/moon.png | Bin {static => source/static}/icons/mooncloud.png | Bin {static => source/static}/icons/sleepmoon.png | Bin {static => source/static}/icons/sun-light.svg | 0 {static => source/static}/icons/sun.png | Bin .../static}/images/97143-200.png | Bin .../Screenshot 2024-10-07 at 12.24.11.png | Bin {static => source/static}/images/book.png | Bin {static => source/static}/images/books.png | Bin {static => source/static}/images/calc.png | Bin {static => source/static}/images/coffe.png | Bin .../static}/images/directory.png | Bin {static => source/static}/images/dragon.png | Bin {static => source/static}/images/files.png | Bin {static => source/static}/images/games.png | Bin {static => source/static}/images/image.png | Bin {static => source/static}/images/keyboard.png | Bin {static => source/static}/images/mac.png | Bin {static => source/static}/images/map.png | Bin {static => source/static}/images/program.png | Bin {static => source/static}/images/rabbit.svg | 0 {static => source/static}/images/rice.png | Bin {static => source/static}/images/sql.png | Bin {static => source/static}/input.css | 0 {static => source/static}/movies.md | 0 {static => source/static}/output.css | 0 {static => source/static}/pdf/.DS_Store | Bin {static => source/static}/pdf/mstr.pdf | 0 {static => source/static}/pdf/novo.pdf | Bin .../static}/posters/AcureForWellness.jpg | Bin .../static}/posters/Adolescence.webp | Bin {static => source/static}/posters/Avatar.webp | Bin .../static}/posters/Breaking Bad.webp | Bin .../static}/posters/Chernobyl.webp | Bin .../static}/posters/Dracula.webp | Bin .../static}/posters/Fightclub.jpg | Bin .../static}/posters/Succession.webp | Bin .../posters/TheGirlwiththeDragonTattoo.webp | Bin .../static}/posters/bladerunner2049.jpg | Bin .../static}/posters/foundation.jpg | Bin {static => source/static}/posters/matrix.jpg | Bin .../static}/posters/risetr-banner.png | Bin .../static}/scripts/posteranimation.js | 0 67 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 source/favicon.ico rename {static => source/static}/.DS_Store (100%) rename {static => source/static}/components/background.html (100%) rename {static => source/static}/components/eq.html (100%) rename {static => source/static}/components/games.html (100%) rename {static => source/static}/components/themetoggle.html (100%) rename {static => source/static}/cv.pdf (100%) rename {static => source/static}/gamesbanners/Tombraider.png (100%) rename {static => source/static}/gamesbanners/baldursgate3.jpg (100%) rename {static => source/static}/gamesbanners/detroitbecomehuman.jpg (100%) rename {static => source/static}/gamesbanners/factorio.jpg (100%) rename {static => source/static}/gamesbanners/gtav.webp (100%) rename {static => source/static}/gamesbanners/minecraft.webp (100%) rename {static => source/static}/gamesbanners/planetzoo.webp (100%) rename {static => source/static}/gamesbanners/riskofrain2.jpg (100%) rename {static => source/static}/gamesbanners/slaythespire2.png (100%) rename {static => source/static}/icons/Invoice-OKZP3LVL-0011.pdf (100%) rename {static => source/static}/icons/arcade.svg (100%) rename {static => source/static}/icons/at-sign.svg (100%) rename {static => source/static}/icons/half-moon.svg (100%) rename {static => source/static}/icons/leafeon-the-eevees-and-umbreon-l3kahsutrpv30hko.jpg (100%) rename {static => source/static}/icons/lovesun.png (100%) rename {static => source/static}/icons/magic-moon.png (100%) rename {static => source/static}/icons/moon.png (100%) rename {static => source/static}/icons/mooncloud.png (100%) rename {static => source/static}/icons/sleepmoon.png (100%) rename {static => source/static}/icons/sun-light.svg (100%) rename {static => source/static}/icons/sun.png (100%) rename {static => source/static}/images/97143-200.png (100%) rename {static => source/static}/images/Screenshot 2024-10-07 at 12.24.11.png (100%) rename {static => source/static}/images/book.png (100%) rename {static => source/static}/images/books.png (100%) rename {static => source/static}/images/calc.png (100%) rename {static => source/static}/images/coffe.png (100%) rename {static => source/static}/images/directory.png (100%) rename {static => source/static}/images/dragon.png (100%) rename {static => source/static}/images/files.png (100%) rename {static => source/static}/images/games.png (100%) rename {static => source/static}/images/image.png (100%) rename {static => source/static}/images/keyboard.png (100%) rename {static => source/static}/images/mac.png (100%) rename {static => source/static}/images/map.png (100%) rename {static => source/static}/images/program.png (100%) rename {static => source/static}/images/rabbit.svg (100%) rename {static => source/static}/images/rice.png (100%) rename {static => source/static}/images/sql.png (100%) rename {static => source/static}/input.css (100%) rename {static => source/static}/movies.md (100%) rename {static => source/static}/output.css (100%) rename {static => source/static}/pdf/.DS_Store (100%) rename {static => source/static}/pdf/mstr.pdf (100%) rename {static => source/static}/pdf/novo.pdf (100%) rename {static => source/static}/posters/AcureForWellness.jpg (100%) rename {static => source/static}/posters/Adolescence.webp (100%) rename {static => source/static}/posters/Avatar.webp (100%) rename {static => source/static}/posters/Breaking Bad.webp (100%) rename {static => source/static}/posters/Chernobyl.webp (100%) rename {static => source/static}/posters/Dracula.webp (100%) rename {static => source/static}/posters/Fightclub.jpg (100%) rename {static => source/static}/posters/Succession.webp (100%) rename {static => source/static}/posters/TheGirlwiththeDragonTattoo.webp (100%) rename {static => source/static}/posters/bladerunner2049.jpg (100%) rename {static => source/static}/posters/foundation.jpg (100%) rename {static => source/static}/posters/matrix.jpg (100%) rename {static => source/static}/posters/risetr-banner.png (100%) rename {static => source/static}/scripts/posteranimation.js (100%) diff --git a/main.go b/main.go index 5d1544b..992bfa5 100644 --- a/main.go +++ b/main.go @@ -10,20 +10,20 @@ import ( "net/http" ) -//go:embed source static +//go:embed source var sourceFS embed.FS func main() { port := flag.Int("port", 8081, "port to listen on") flag.Parse() - staticRoot, err := fs.Sub(sourceFS, "source") + sourceRoot, err := fs.Sub(sourceFS, "source") if err != nil { log.Fatal(err) } // print exactly what got embedded - fs.WalkDir(staticRoot, ".", func(path string, d fs.DirEntry, err error) error { + fs.WalkDir(sourceRoot, ".", func(path string, d fs.DirEntry, err error) error { if err != nil { log.Println("walk error:", err) return nil @@ -34,7 +34,7 @@ func main() { mux := http.NewServeMux() mux.HandleFunc("GET /{$}", func(w http.ResponseWriter, r *http.Request) { - tmpl, err := template.ParseFS(staticRoot, "templates/main.html", "pages/index.html") + tmpl, err := template.ParseFS(sourceRoot, "templates/main.html", "pages/index.html") if err != nil { log.Println("parse error:", err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -58,7 +58,7 @@ func main() { }) mux.HandleFunc("GET /research", func(w http.ResponseWriter, r *http.Request) { - tmpl, err := template.ParseFS(staticRoot, "templates/main.html", "pages/research.html") + tmpl, err := template.ParseFS(sourceRoot, "templates/main.html", "pages/research.html") if err != nil { log.Println("parse error:", err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -82,7 +82,7 @@ func main() { }) mux.HandleFunc("GET /bookkeeping", func(w http.ResponseWriter, r *http.Request) { - tmpl, err := template.ParseFS(staticRoot, "templates/main.html", "pages/bookkeeping.html") + tmpl, err := template.ParseFS(sourceRoot, "templates/main.html", "pages/bookkeeping.html") if err != nil { log.Println("parse error:", err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -106,7 +106,7 @@ func main() { }) mux.HandleFunc("GET /personal", func(w http.ResponseWriter, r *http.Request) { - tmpl, err := template.ParseFS(staticRoot, "templates/main.html", "pages/interests.html") + tmpl, err := template.ParseFS(sourceRoot, "templates/main.html", "pages/interests.html") if err != nil { log.Println("parse error:", err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -129,9 +129,16 @@ func main() { } }) - assetsRoot, err := fs.Sub(sourceFS, "static") + staticRoot, err := fs.Sub(sourceFS, "source/static") + if err != nil { + log.Fatal(err) + } - mux.Handle("/static/", http.StripPrefix("/static/", http.FileServerFS(assetsRoot))) + mux.Handle("/static/", http.StripPrefix("/static/", http.FileServerFS(staticRoot))) + + mux.HandleFunc("/favicon.ico", func(w http.ResponseWriter, r *http.Request) { + http.ServeFileFS(w, r, staticRoot, "favicon.ico") + }) addr := fmt.Sprintf(":%d", *port) log.Printf("running on http://localhost%s/\n", addr) diff --git a/source/favicon.ico b/source/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c0e17d5a23163ee3e1dad5dae63b10e66b2d4ec7 GIT binary patch literal 13476 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 literal 0 HcmV?d00001 diff --git a/static/.DS_Store b/source/static/.DS_Store similarity index 100% rename from static/.DS_Store rename to source/static/.DS_Store diff --git a/static/components/background.html b/source/static/components/background.html similarity index 100% rename from static/components/background.html rename to source/static/components/background.html diff --git a/static/components/eq.html b/source/static/components/eq.html similarity index 100% rename from static/components/eq.html rename to source/static/components/eq.html diff --git a/static/components/games.html b/source/static/components/games.html similarity index 100% rename from static/components/games.html rename to source/static/components/games.html diff --git a/static/components/themetoggle.html b/source/static/components/themetoggle.html similarity index 100% rename from static/components/themetoggle.html rename to source/static/components/themetoggle.html diff --git a/static/cv.pdf b/source/static/cv.pdf similarity index 100% rename from static/cv.pdf rename to source/static/cv.pdf diff --git a/static/gamesbanners/Tombraider.png b/source/static/gamesbanners/Tombraider.png similarity index 100% rename from static/gamesbanners/Tombraider.png rename to source/static/gamesbanners/Tombraider.png diff --git a/static/gamesbanners/baldursgate3.jpg b/source/static/gamesbanners/baldursgate3.jpg similarity index 100% rename from static/gamesbanners/baldursgate3.jpg rename to source/static/gamesbanners/baldursgate3.jpg diff --git a/static/gamesbanners/detroitbecomehuman.jpg b/source/static/gamesbanners/detroitbecomehuman.jpg similarity index 100% rename from static/gamesbanners/detroitbecomehuman.jpg rename to source/static/gamesbanners/detroitbecomehuman.jpg diff --git a/static/gamesbanners/factorio.jpg b/source/static/gamesbanners/factorio.jpg similarity index 100% rename from static/gamesbanners/factorio.jpg rename to source/static/gamesbanners/factorio.jpg diff --git a/static/gamesbanners/gtav.webp b/source/static/gamesbanners/gtav.webp similarity index 100% rename from static/gamesbanners/gtav.webp rename to source/static/gamesbanners/gtav.webp diff --git a/static/gamesbanners/minecraft.webp b/source/static/gamesbanners/minecraft.webp similarity index 100% rename from static/gamesbanners/minecraft.webp rename to source/static/gamesbanners/minecraft.webp diff --git a/static/gamesbanners/planetzoo.webp b/source/static/gamesbanners/planetzoo.webp similarity index 100% rename from static/gamesbanners/planetzoo.webp rename to source/static/gamesbanners/planetzoo.webp diff --git a/static/gamesbanners/riskofrain2.jpg b/source/static/gamesbanners/riskofrain2.jpg similarity index 100% rename from static/gamesbanners/riskofrain2.jpg rename to source/static/gamesbanners/riskofrain2.jpg diff --git a/static/gamesbanners/slaythespire2.png b/source/static/gamesbanners/slaythespire2.png similarity index 100% rename from static/gamesbanners/slaythespire2.png rename to source/static/gamesbanners/slaythespire2.png diff --git a/static/icons/Invoice-OKZP3LVL-0011.pdf b/source/static/icons/Invoice-OKZP3LVL-0011.pdf similarity index 100% rename from static/icons/Invoice-OKZP3LVL-0011.pdf rename to source/static/icons/Invoice-OKZP3LVL-0011.pdf diff --git a/static/icons/arcade.svg b/source/static/icons/arcade.svg similarity index 100% rename from static/icons/arcade.svg rename to source/static/icons/arcade.svg diff --git a/static/icons/at-sign.svg b/source/static/icons/at-sign.svg similarity index 100% rename from static/icons/at-sign.svg rename to source/static/icons/at-sign.svg diff --git a/static/icons/half-moon.svg b/source/static/icons/half-moon.svg similarity index 100% rename from static/icons/half-moon.svg rename to source/static/icons/half-moon.svg diff --git a/static/icons/leafeon-the-eevees-and-umbreon-l3kahsutrpv30hko.jpg b/source/static/icons/leafeon-the-eevees-and-umbreon-l3kahsutrpv30hko.jpg similarity index 100% rename from static/icons/leafeon-the-eevees-and-umbreon-l3kahsutrpv30hko.jpg rename to source/static/icons/leafeon-the-eevees-and-umbreon-l3kahsutrpv30hko.jpg diff --git a/static/icons/lovesun.png b/source/static/icons/lovesun.png similarity index 100% rename from static/icons/lovesun.png rename to source/static/icons/lovesun.png diff --git a/static/icons/magic-moon.png b/source/static/icons/magic-moon.png similarity index 100% rename from static/icons/magic-moon.png rename to source/static/icons/magic-moon.png diff --git a/static/icons/moon.png b/source/static/icons/moon.png similarity index 100% rename from static/icons/moon.png rename to source/static/icons/moon.png diff --git a/static/icons/mooncloud.png b/source/static/icons/mooncloud.png similarity index 100% rename from static/icons/mooncloud.png rename to source/static/icons/mooncloud.png diff --git a/static/icons/sleepmoon.png b/source/static/icons/sleepmoon.png similarity index 100% rename from static/icons/sleepmoon.png rename to source/static/icons/sleepmoon.png diff --git a/static/icons/sun-light.svg b/source/static/icons/sun-light.svg similarity index 100% rename from static/icons/sun-light.svg rename to source/static/icons/sun-light.svg diff --git a/static/icons/sun.png b/source/static/icons/sun.png similarity index 100% rename from static/icons/sun.png rename to source/static/icons/sun.png diff --git a/static/images/97143-200.png b/source/static/images/97143-200.png similarity index 100% rename from static/images/97143-200.png rename to source/static/images/97143-200.png diff --git a/static/images/Screenshot 2024-10-07 at 12.24.11.png b/source/static/images/Screenshot 2024-10-07 at 12.24.11.png similarity index 100% rename from static/images/Screenshot 2024-10-07 at 12.24.11.png rename to source/static/images/Screenshot 2024-10-07 at 12.24.11.png diff --git a/static/images/book.png b/source/static/images/book.png similarity index 100% rename from static/images/book.png rename to source/static/images/book.png diff --git a/static/images/books.png b/source/static/images/books.png similarity index 100% rename from static/images/books.png rename to source/static/images/books.png diff --git a/static/images/calc.png b/source/static/images/calc.png similarity index 100% rename from static/images/calc.png rename to source/static/images/calc.png diff --git a/static/images/coffe.png b/source/static/images/coffe.png similarity index 100% rename from static/images/coffe.png rename to source/static/images/coffe.png diff --git a/static/images/directory.png b/source/static/images/directory.png similarity index 100% rename from static/images/directory.png rename to source/static/images/directory.png diff --git a/static/images/dragon.png b/source/static/images/dragon.png similarity index 100% rename from static/images/dragon.png rename to source/static/images/dragon.png diff --git a/static/images/files.png b/source/static/images/files.png similarity index 100% rename from static/images/files.png rename to source/static/images/files.png diff --git a/static/images/games.png b/source/static/images/games.png similarity index 100% rename from static/images/games.png rename to source/static/images/games.png diff --git a/static/images/image.png b/source/static/images/image.png similarity index 100% rename from static/images/image.png rename to source/static/images/image.png diff --git a/static/images/keyboard.png b/source/static/images/keyboard.png similarity index 100% rename from static/images/keyboard.png rename to source/static/images/keyboard.png diff --git a/static/images/mac.png b/source/static/images/mac.png similarity index 100% rename from static/images/mac.png rename to source/static/images/mac.png diff --git a/static/images/map.png b/source/static/images/map.png similarity index 100% rename from static/images/map.png rename to source/static/images/map.png diff --git a/static/images/program.png b/source/static/images/program.png similarity index 100% rename from static/images/program.png rename to source/static/images/program.png diff --git a/static/images/rabbit.svg b/source/static/images/rabbit.svg similarity index 100% rename from static/images/rabbit.svg rename to source/static/images/rabbit.svg diff --git a/static/images/rice.png b/source/static/images/rice.png similarity index 100% rename from static/images/rice.png rename to source/static/images/rice.png diff --git a/static/images/sql.png b/source/static/images/sql.png similarity index 100% rename from static/images/sql.png rename to source/static/images/sql.png diff --git a/static/input.css b/source/static/input.css similarity index 100% rename from static/input.css rename to source/static/input.css diff --git a/static/movies.md b/source/static/movies.md similarity index 100% rename from static/movies.md rename to source/static/movies.md diff --git a/static/output.css b/source/static/output.css similarity index 100% rename from static/output.css rename to source/static/output.css diff --git a/static/pdf/.DS_Store b/source/static/pdf/.DS_Store similarity index 100% rename from static/pdf/.DS_Store rename to source/static/pdf/.DS_Store diff --git a/static/pdf/mstr.pdf b/source/static/pdf/mstr.pdf similarity index 100% rename from static/pdf/mstr.pdf rename to source/static/pdf/mstr.pdf diff --git a/static/pdf/novo.pdf b/source/static/pdf/novo.pdf similarity index 100% rename from static/pdf/novo.pdf rename to source/static/pdf/novo.pdf diff --git a/static/posters/AcureForWellness.jpg b/source/static/posters/AcureForWellness.jpg similarity index 100% rename from static/posters/AcureForWellness.jpg rename to source/static/posters/AcureForWellness.jpg diff --git a/static/posters/Adolescence.webp b/source/static/posters/Adolescence.webp similarity index 100% rename from static/posters/Adolescence.webp rename to source/static/posters/Adolescence.webp diff --git a/static/posters/Avatar.webp b/source/static/posters/Avatar.webp similarity index 100% rename from static/posters/Avatar.webp rename to source/static/posters/Avatar.webp diff --git a/static/posters/Breaking Bad.webp b/source/static/posters/Breaking Bad.webp similarity index 100% rename from static/posters/Breaking Bad.webp rename to source/static/posters/Breaking Bad.webp diff --git a/static/posters/Chernobyl.webp b/source/static/posters/Chernobyl.webp similarity index 100% rename from static/posters/Chernobyl.webp rename to source/static/posters/Chernobyl.webp diff --git a/static/posters/Dracula.webp b/source/static/posters/Dracula.webp similarity index 100% rename from static/posters/Dracula.webp rename to source/static/posters/Dracula.webp diff --git a/static/posters/Fightclub.jpg b/source/static/posters/Fightclub.jpg similarity index 100% rename from static/posters/Fightclub.jpg rename to source/static/posters/Fightclub.jpg diff --git a/static/posters/Succession.webp b/source/static/posters/Succession.webp similarity index 100% rename from static/posters/Succession.webp rename to source/static/posters/Succession.webp diff --git a/static/posters/TheGirlwiththeDragonTattoo.webp b/source/static/posters/TheGirlwiththeDragonTattoo.webp similarity index 100% rename from static/posters/TheGirlwiththeDragonTattoo.webp rename to source/static/posters/TheGirlwiththeDragonTattoo.webp diff --git a/static/posters/bladerunner2049.jpg b/source/static/posters/bladerunner2049.jpg similarity index 100% rename from static/posters/bladerunner2049.jpg rename to source/static/posters/bladerunner2049.jpg diff --git a/static/posters/foundation.jpg b/source/static/posters/foundation.jpg similarity index 100% rename from static/posters/foundation.jpg rename to source/static/posters/foundation.jpg diff --git a/static/posters/matrix.jpg b/source/static/posters/matrix.jpg similarity index 100% rename from static/posters/matrix.jpg rename to source/static/posters/matrix.jpg diff --git a/static/posters/risetr-banner.png b/source/static/posters/risetr-banner.png similarity index 100% rename from static/posters/risetr-banner.png rename to source/static/posters/risetr-banner.png diff --git a/static/scripts/posteranimation.js b/source/static/scripts/posteranimation.js similarity index 100% rename from static/scripts/posteranimation.js rename to source/static/scripts/posteranimation.js