piekarnikgosipl/main.go
2026-05-27 14:51:26 +02:00

81 lines
2.8 KiB
Go

package main
import (
"context"
"fmt"
"html/template"
"io"
"net/http"
"os"
"piekarnikgosi/templates"
"piekarnikgosi/types"
)
var Cakes = []types.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", ""},
}
type ComponentRenderer interface {
Render(ctx context.Context, w io.Writer) error
}
func saveFile(name string, comp ComponentRenderer) {
file, err := os.Create("www/" + name + ".html")
if err != nil {
panic(err)
}
defer file.Close()
err = comp.Render(context.Background(), file)
if err != nil {
panic(err)
}
}
func generateHTML() {
saveFile(`index`, templates.Index())
saveFile(`kawiarnia`, templates.Kawiarnia())
saveFile(`portfolio`, templates.Portfolio())
saveFile(`wyroby`, templates.WyrobyCiasta(Cakes))
saveFile(`wyroby_torty`, templates.WyrobyTorty())
saveFile(`wyroby_slodkie_stoly`, templates.WyrobySlodkieStoly())
saveFile(`wyroby_lody`, templates.WyrobyLody())
}
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"))))
}