package main import ( "fmt" "html/template" "net/http" "os" ) func saveFile(t *template.Template, name string, data any) { file, err := os.Create("www/" + name + ".html") if err != nil { panic(err) } defer file.Close() err = t.ExecuteTemplate(file, name+".gohtml", data) if err != nil { panic(err) } } type Product struct { Name string Image string Price string Description string } var Cakes = []Product{ {"Malinowa chmurka", "001", "150", "kruchy spód, warstwa malin w galaretce, krem śmietankowy, beza"}, {"Sernik ulubiony", "002", "150", "kruchy spód, aksamitna masa serowa, beza z kruszonką"}, {"Jabłecznik z kruszonką", "003", "130", "ciasto ucierane, jabłka, kruszonka"}, {"Sernik klasyczny", "004", "150", "wykończony czekoladowym ganache lub oprószony cukrem pudrem"}, {"Sernik królewski", "005", "150", "kakaowy spód i kruszonka, wilgotna masa serowa"}, {"Pleśniak", "006", "120", "kruche ciasto waniliowe, powidła owocowe, kruche ciasto kakaowe, beza i kruszonka"}, {"Leśny mech z musem truskawkowym", "007", "110", "biszkoptowe ciasto z dodatkiem szpinaku, mus truskawkowy"}, {"Snickers", "008", "150", "dwie warstwy kakaowego biszkoptu a pomiędzy bezowy blat orzechowy , krem budyniowy , toffi i,orzeszki ziemne"}, {"Mleczna kanapka", "009", "120", "dwa blaty czekoladowego ciasta, a pomiędzy krem waniliowy z dodatkiem cienkiej warstwy,czekoladowej"}, {"3Bit", "010", "120", "herbatniki, krem budyniowy, toffi i śmietana"}, {"Biszkoptowe z kremem i owocami w galaretce", "011", "120", "biszkopt, krem budyniowy, owoce"}, {"Kora orzechowa", "012", "150", "dwa blaty bezy orzechowej a pomiędzy krem budyniowy na bazie soku z brzoskwiń, delicje,pomarańczowe, owoce brzoskwiń i galaretka"}, {"Nutelowiec z wiśniami", "013", "120", "nutelowy spód , krem śmietankowy z dodatkiem twarożku, wiśnie i galaretka"}, {"Karpatka", "014", "120", ""}, } func generateHTML() { t, err := template.ParseGlob(`templates/*.gohtml`) if err != nil { panic(err) } saveFile(t, `index`, nil) saveFile(t, `kawiarnia`, nil) saveFile(t, `portfolio`, nil) saveFile(t, `wyroby`, Cakes) saveFile(t, `wyroby_torty`, nil) saveFile(t, `wyroby_slodkie_stoly`, nil) saveFile(t, `wyroby_lody`, nil) } func main() { fmt.Println("generating html") err := os.MkdirAll("www/styles", 0777) if err != nil { panic(err) } generateHTML() fmt.Println("generating css") t, err := template.ParseGlob(`templates/styles/*`) if err != nil { panic(err) } file, err := os.Create("www/styles/style.css") if err != nil { panic(err) } defer file.Close() err = t.ExecuteTemplate(file, "style.gohtml", nil) if err != nil { panic(err) } fmt.Println("listening on :8000") panic(http.ListenAndServe(":8000", http.FileServer(http.Dir("www")))) }