what is going on
This commit is contained in:
parent
7fdf2fc4c1
commit
45c9005c92
157 changed files with 5187 additions and 186 deletions
29
html/image.templ
Normal file
29
html/image.templ
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package html
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"log"
|
||||
"piekarnikgosi/utils"
|
||||
)
|
||||
|
||||
func processFilename(input string) (src, dst string) {
|
||||
src = "img/" + input
|
||||
hash := sha256.Sum256([]byte(input))
|
||||
dst = "www/images/" + hex.EncodeToString(hash[:])[:16] + ".avif"
|
||||
return src, dst
|
||||
}
|
||||
|
||||
func ProcessImage(fileName string) string {
|
||||
dst, err := utils.CopyFile(processFilename(fileName))
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return dst[4:]
|
||||
}
|
||||
|
||||
templ AvifImage(srcPath, alt string) {
|
||||
<img src={ ProcessImage(srcPath) } alt={ alt }/>
|
||||
}
|
||||
90
html/image_templ.go
Normal file
90
html/image_templ.go
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"log"
|
||||
"piekarnikgosi/utils"
|
||||
)
|
||||
|
||||
func processFilename(input string) (src, dst string) {
|
||||
src = "img/" + input
|
||||
hash := sha256.Sum256([]byte(input))
|
||||
dst = "www/images/" + hex.EncodeToString(hash[:])[:16] + ".avif"
|
||||
return src, dst
|
||||
}
|
||||
|
||||
func ProcessImage(fileName string) string {
|
||||
dst, err := utils.CopyFile(processFilename(fileName))
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return dst[4:]
|
||||
}
|
||||
|
||||
func AvifImage(srcPath, alt string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<img src=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.ResolveAttributeValue(ProcessImage(srcPath))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/image.templ`, Line: 28, Col: 33}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var2)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\" alt=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.ResolveAttributeValue(alt)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/image.templ`, Line: 28, Col: 45}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var3)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
194
html/index.templ
Normal file
194
html/index.templ
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
package html
|
||||
|
||||
templ Index() {
|
||||
@layout("index") {
|
||||
<main id="index">
|
||||
<header>
|
||||
<div>
|
||||
<h1>Słodkości tworzone z <span>pasją</span></h1>
|
||||
<p>
|
||||
Naturalne składniki, domowe receptury i pasja. Tworzymy torty i wypieki na Twoje najważniejsze chwile
|
||||
- od codziennych radości po wielkie uroczystości
|
||||
</p>
|
||||
<a href="wyroby.html" class="btn">Zobacz naszą ofertę</a>
|
||||
</div>
|
||||
<div>
|
||||
@AvifImage("001.avif", "tort")
|
||||
</div>
|
||||
</header>
|
||||
<section id="about-us">
|
||||
<div>
|
||||
<div>
|
||||
<div>
|
||||
@AvifImage("002.avif", "kawiarnia")
|
||||
</div>
|
||||
<div>
|
||||
@AvifImage("003.avif", "kawiarnia")
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>Tradycja i serce</span>
|
||||
<h2>O nas</h2>
|
||||
<p>
|
||||
„Piekarnik Gosi” to marzenie, które udało mi się zrealizować dzięki wsparciu i pomocy moich
|
||||
najbliższych. To pracownia cukiernicza stworzona z zamiłowania do pieczenia. Tworzę z pasją, z
|
||||
najwyższej jakości składników, słodkości, które uświetnią każdą uroczystość oraz spotkanie.
|
||||
Wszystkie wypieki wykonuje od podstaw własnoręcznie : od biszkoptu , frużelin owocowych, chrupek ,
|
||||
kremów aż po elementy dekoracyjne. W mojej ofercie znajdują się torty weselne, słodkie stoły, torty
|
||||
okazjonalne, tarty i ciasta wykonywane na indywidualne zamówienia. Co wyróżnia moją pracownię?
|
||||
Domowy i naturalny smak 🙂 Realizuje życzenia klientów ze starannością i pełnym zaangażowaniem.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="featured-delights">
|
||||
<h2>Nasze Wyroby</h2>
|
||||
<div class="card">
|
||||
<div>
|
||||
@AvifImage("004.avif", "tort")
|
||||
</div>
|
||||
<div>
|
||||
<h3>Torty Okazjonalne</h3>
|
||||
<p>Weselne, urodzinowe i te bez okazji – od klasyki po nowoczesne musy.</p>
|
||||
<a href="wyroby_torty.html">
|
||||
Przeglądaj Torty
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-arrow-right-icon lucide-arrow-right"
|
||||
>
|
||||
<path d="M5 12h14"></path>
|
||||
<path d="m12 5 7 7-7 7"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div>
|
||||
@AvifImage("005.avif", "ciasto")
|
||||
</div>
|
||||
<div class="greener">
|
||||
<h3>Domowe Ciasta</h3>
|
||||
<p>Zapach tradycji: od serników po puszyste bezy</p>
|
||||
<a href="wyroby.html">
|
||||
Wyberz ciasto
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-arrow-right-icon lucide-arrow-right"
|
||||
>
|
||||
<path d="M5 12h14"></path>
|
||||
<path d="m12 5 7 7-7 7"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div>
|
||||
@AvifImage("006.avif", "slodkosci")
|
||||
</div>
|
||||
<div>
|
||||
<h3>Słodkie Stoły</h3>
|
||||
<p>Kompleksowa oprawa słodkości na większe przyjęcia.</p>
|
||||
<a href="wyroby_slodkie_stoly.html">
|
||||
Sprawdź słodkie stoły
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-arrow-right-icon lucide-arrow-right"
|
||||
>
|
||||
<path d="M5 12h14"></path>
|
||||
<path d="m12 5 7 7-7 7"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="kawiarnia">
|
||||
<div>
|
||||
<div>
|
||||
<h3>Twój drugi dom</h3>
|
||||
<p>
|
||||
Poczuj się jak w domu. Codziennie czekają na Ciebie świeże wypieki prosto z naszej pracowni,
|
||||
selekcja
|
||||
najlepszych herbat i przepyszna kawa. To tutaj nasze ciasta smakują najlepiej – podane z
|
||||
uśmiechem, w
|
||||
miejscu stworzonym z pasji do słodkości.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-coffee-icon lucide-coffee"
|
||||
>
|
||||
<path d="M10 2v2"></path>
|
||||
<path d="M14 2v2"></path>
|
||||
<path d="M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1"></path>
|
||||
<path d="M6 2v2"></path>
|
||||
</svg>
|
||||
<span>Miła atmosfera</span>
|
||||
</li>
|
||||
<li>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-wifi-icon lucide-wifi"
|
||||
>
|
||||
<path d="M12 20h.01"></path>
|
||||
<path d="M2 8.82a15 15 0 0 1 20 0"></path>
|
||||
<path d="M5 12.859a10 10 0 0 1 14 0"></path>
|
||||
<path d="M8.5 16.429a5 5 0 0 1 7 0"></path>
|
||||
</svg>
|
||||
<span>Darmowe wifi</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
@AvifImage("007.avif", "kawiarnia")
|
||||
</div>
|
||||
<div>
|
||||
@AvifImage("008.avif", "ciasto i kawa")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
}
|
||||
}
|
||||
122
html/index_templ.go
Normal file
122
html/index_templ.go
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
func Index() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<main id=\"index\"><header><div><h1>Słodkości tworzone z <span>pasją</span></h1><p>Naturalne składniki, domowe receptury i pasja. Tworzymy torty i wypieki na Twoje najważniejsze chwile - od codziennych radości po wielkie uroczystości</p><a href=\"wyroby.html\" class=\"btn\">Zobacz naszą ofertę</a></div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("001.avif", "tort").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</div></header><section id=\"about-us\"><div><div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("002.avif", "kawiarnia").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("003.avif", "kawiarnia").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "</div></div><div><span>Tradycja i serce</span><h2>O nas</h2><p>„Piekarnik Gosi” to marzenie, które udało mi się zrealizować dzięki wsparciu i pomocy moich najbliższych. To pracownia cukiernicza stworzona z zamiłowania do pieczenia. Tworzę z pasją, z najwyższej jakości składników, słodkości, które uświetnią każdą uroczystość oraz spotkanie. Wszystkie wypieki wykonuje od podstaw własnoręcznie : od biszkoptu , frużelin owocowych, chrupek , kremów aż po elementy dekoracyjne. W mojej ofercie znajdują się torty weselne, słodkie stoły, torty okazjonalne, tarty i ciasta wykonywane na indywidualne zamówienia. Co wyróżnia moją pracownię? Domowy i naturalny smak 🙂 Realizuje życzenia klientów ze starannością i pełnym zaangażowaniem.</p></div></div></section><section id=\"featured-delights\"><h2>Nasze Wyroby</h2><div class=\"card\"><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("004.avif", "tort").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</div><div><h3>Torty Okazjonalne</h3><p>Weselne, urodzinowe i te bez okazji – od klasyki po nowoczesne musy.</p><a href=\"wyroby_torty.html\">Przeglądaj Torty <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-right-icon lucide-arrow-right\"><path d=\"M5 12h14\"></path> <path d=\"m12 5 7 7-7 7\"></path></svg></a></div></div><div class=\"card\"><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("005.avif", "ciasto").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</div><div class=\"greener\"><h3>Domowe Ciasta</h3><p>Zapach tradycji: od serników po puszyste bezy</p><a href=\"wyroby.html\">Wyberz ciasto <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-right-icon lucide-arrow-right\"><path d=\"M5 12h14\"></path> <path d=\"m12 5 7 7-7 7\"></path></svg></a></div></div><div class=\"card\"><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("006.avif", "slodkosci").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</div><div><h3>Słodkie Stoły</h3><p>Kompleksowa oprawa słodkości na większe przyjęcia.</p><a href=\"wyroby_slodkie_stoly.html\">Sprawdź słodkie stoły <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-right-icon lucide-arrow-right\"><path d=\"M5 12h14\"></path> <path d=\"m12 5 7 7-7 7\"></path></svg></a></div></div></section><section id=\"kawiarnia\"><div><div><h3>Twój drugi dom</h3><p>Poczuj się jak w domu. Codziennie czekają na Ciebie świeże wypieki prosto z naszej pracowni, selekcja najlepszych herbat i przepyszna kawa. To tutaj nasze ciasta smakują najlepiej – podane z uśmiechem, w miejscu stworzonym z pasji do słodkości.</p><ul><li><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-coffee-icon lucide-coffee\"><path d=\"M10 2v2\"></path> <path d=\"M14 2v2\"></path> <path d=\"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1\"></path> <path d=\"M6 2v2\"></path></svg> <span>Miła atmosfera</span></li><li><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-wifi-icon lucide-wifi\"><path d=\"M12 20h.01\"></path> <path d=\"M2 8.82a15 15 0 0 1 20 0\"></path> <path d=\"M5 12.859a10 10 0 0 1 14 0\"></path> <path d=\"M8.5 16.429a5 5 0 0 1 7 0\"></path></svg> <span>Darmowe wifi</span></li></ul></div><div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("007.avif", "kawiarnia").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("008.avif", "ciasto i kawa").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "</div></div></div></section></main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
templ_7745c5c3_Err = layout("index").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
285
html/kawiarnia.templ
Normal file
285
html/kawiarnia.templ
Normal file
|
|
@ -0,0 +1,285 @@
|
|||
package html
|
||||
|
||||
templ Kawiarnia() {
|
||||
@layout("kawiarnia") {
|
||||
<main>
|
||||
<header id="kawiarnia-header">
|
||||
<div>
|
||||
<span>Miejsce spotkań</span>
|
||||
<h1>Chwila wytchnienia w sercu <span>tradycji</span></h1>
|
||||
<p>
|
||||
Zapraszamy do naszej kawiarni, gdzie zapach świeżo mielonej kawy miesza się z aromatem wypieków prosto z
|
||||
pieca.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
@AvifImage("009.avif", "kawiarnia")
|
||||
<div></div>
|
||||
</div>
|
||||
</header>
|
||||
<section>
|
||||
<div id="kawiarnia-details">
|
||||
<header>
|
||||
<h2>Odwiedź nas</h2>
|
||||
<span>Czekamy na ciebie z świeżymi wypiekami i ciepłą kawą. Znajdź nas w samym centrum miasta.</span>
|
||||
</header>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-map-pin-icon lucide-map-pin"
|
||||
>
|
||||
<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"></path>
|
||||
<circle cx="12" cy="10" r="3"></circle>
|
||||
</svg>
|
||||
<h3>Adres</h3>
|
||||
<p>
|
||||
ul. Dworcowa 3a
|
||||
<br/>
|
||||
83-300 Kartuzy
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-clock-icon lucide-clock"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10"></circle>
|
||||
<path d="M12 6v6l4 2"></path>
|
||||
</svg>
|
||||
<h3>Godziny Otwarcia</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<span>pn-pt</span><span>9:00-19:00</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>sb-nd</span><span>10:00-20:00</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-phone-icon lucide-phone"
|
||||
>
|
||||
<path d="M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384"></path>
|
||||
</svg>
|
||||
<h3>Zadzwoń do nas</h3>
|
||||
<p>Masz pytania? Chcesz zarezerwować stolik?</p>
|
||||
<a href="tel:+48690214515">690 214 515</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="kawiarnia-content">
|
||||
<div>
|
||||
<h2>Nasza karta</h2>
|
||||
<div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: var(--primary)"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-coffee-icon lucide-coffee"
|
||||
>
|
||||
<path d="M10 2v2"></path>
|
||||
<path d="M14 2v2"></path>
|
||||
<path d="M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1"></path>
|
||||
<path d="M6 2v2"></path>
|
||||
</svg>
|
||||
<h3>Kawy</h3>
|
||||
<ul>
|
||||
<li><p>Espresso</p><span>8 PLN</span></li>
|
||||
<li><p>Espresso podwójne</p><span>12 PLN</span></li>
|
||||
<li><p>Espresso Affogato</p><span>17 PLN</span></li>
|
||||
<li><p>Americano</p><span>10 PLN</span></li>
|
||||
<li><p>Flat White</p><span>12 PLN</span></li>
|
||||
<li><p>Cappucino</p><span>12 PLN</span></li>
|
||||
<li><p>Caffee Latte</p><span>14 PLN</span></li>
|
||||
<li><p>Latte Macchiato</p><span>15 PLN</span></li>
|
||||
<li><p>Kawa Mrożona</p><span>22 PLN</span></li>
|
||||
<li><p>Ice Latte</p><span>20 PLN</span></li>
|
||||
<h3>Dodatki</h3>
|
||||
<li><p>Bita śmietana</p><span>4 PLN</span></li>
|
||||
<li><p>Syrop</p><span>2 PLN</span></li>
|
||||
<li><p>Dodatkowa porcja espresso</p><span>2 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #B56576"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-cake-slice-icon lucide-cake-slice"
|
||||
>
|
||||
<path d="M16 13H3"></path>
|
||||
<path d="M16 17H3"></path>
|
||||
<path d="m7.2 7.9-3.388 2.5A2 2 0 0 0 3 12.01V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-8.654c0-2-2.44-6.026-6.44-8.026a1 1 0 0 0-1.082.057L10.4 5.6"></path>
|
||||
<circle cx="9" cy="7" r="2"></circle>
|
||||
</svg>
|
||||
<h3>Słodkości</h3>
|
||||
<ul>
|
||||
<p>Codziennie pieczemy coś innego! Zapytaj obsługę o dzisiejsze smaki.</p>
|
||||
<li><p>Domowe ciasta</p><span>10 - 20 LN</span></li>
|
||||
<li><p>Deserki</p><span>5 - 15 PLN</span></li>
|
||||
<li><p>Mini Pavlova</p><span>12 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #7D8C61"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-leaf-icon lucide-leaf"
|
||||
>
|
||||
<path d="M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z"></path>
|
||||
<path d="M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12"></path>
|
||||
</svg>
|
||||
<h3>Herbaty</h3>
|
||||
<ul>
|
||||
<li><p>Czarna</p><span>10 PLN</span></li>
|
||||
<li><p>Zielona</p><span>10 PLN</span></li>
|
||||
<li><p>Cytryna</p><span>10 PLN</span></li>
|
||||
<li><p>Imbir</p><span>10 PLN</span></li>
|
||||
<li><p>Owocowa</p><span>10 PLN</span></li>
|
||||
<li><p>Cappucino</p><span>10 PLN</span></li>
|
||||
<li><p>Ice Tea</p><span>18 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #D48C45"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-cup-soda-icon lucide-cup-soda"
|
||||
>
|
||||
<path d="m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8"></path>
|
||||
<path d="M5 8h14"></path>
|
||||
<path d="M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0"></path>
|
||||
<path d="m12 8 1-6h2"></path>
|
||||
</svg>
|
||||
<h3>Napoje</h3>
|
||||
<ul>
|
||||
<li><p>Woda gazowana</p><span>6 PLN</span></li>
|
||||
<li><p>Woda niegazowana</p><span>6 PLN</span></li>
|
||||
<li><p>Coca Cola</p><span>8 PLN</span></li>
|
||||
<li><p>Fanta</p><span>8 PLN</span></li>
|
||||
<li><p>Smoothie owocowe</p><span>20 PLN</span></li>
|
||||
<li><p>Milkshake</p><span>24 PLN</span></li>
|
||||
<li><p>Lemoniada</p><span>18 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #B56576"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-ice-cream-cone-icon lucide-ice-cream-cone"
|
||||
>
|
||||
<path d="m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11"></path>
|
||||
<path d="M17 7A5 5 0 0 0 7 7"></path>
|
||||
<path d="M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4"></path>
|
||||
</svg>
|
||||
<h3>Lody</h3>
|
||||
<ul>
|
||||
<li><p>Mała gałka</p><span>6 PLN</span></li>
|
||||
<li><p>Duża gałka</p><span>8 PLN</span></li>
|
||||
<li><p>Deser Lodowy</p><span>26 PLN</span></li>
|
||||
<li><p>Małe włoskie</p><span>10 PLN</span></li>
|
||||
<li><p>Duże włoskie</p><span>14 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #C29B40"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-grid3x3-icon lucide-grid-3x3"
|
||||
>
|
||||
<rect width="18" height="18" x="3" y="3" rx="2"></rect>
|
||||
<path d="M3 9h18"></path>
|
||||
<path d="M3 15h18"></path>
|
||||
<path d="M9 3v18"></path>
|
||||
<path d="M15 3v18"></path>
|
||||
</svg>
|
||||
<h3>Gofry</h3>
|
||||
<ul>
|
||||
<li><p>Gofr</p><span>12 PLN</span></li>
|
||||
<li><p>Gofr bąbelkowy</p><span>24 PLN</span></li>
|
||||
<h3>Dodatki</h3>
|
||||
<li><p>Owoce</p><span>5 PLN</span></li>
|
||||
<li><p>Bita śmietana</p><span>4 PLN</span></li>
|
||||
<li><p>Posypka i/lub polewa</p><span>2 PLN</span></li>
|
||||
<li><p>Frużelina</p><span>14 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
}
|
||||
}
|
||||
66
html/kawiarnia_templ.go
Normal file
66
html/kawiarnia_templ.go
Normal file
File diff suppressed because one or more lines are too long
208
html/layout.templ
Normal file
208
html/layout.templ
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
package html
|
||||
|
||||
import "fmt"
|
||||
|
||||
templ layout(activePage string) {
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<title>Piekarnik Gosi</title>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||||
<meta name="description" content=""/>
|
||||
<link href="style.css" rel="stylesheet"/>
|
||||
<link rel="icon" href="images/favicon.avif"/>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<div>
|
||||
<a href="index.html">
|
||||
@AvifImage("logo.avif", "logo")
|
||||
</a>
|
||||
<div>
|
||||
@Link(activePage, "index", "Strona Główna")
|
||||
@Link(activePage, "wyroby", "Wyroby")
|
||||
@Link(activePage, "portfolio", "Portfolio")
|
||||
@Link(activePage, "kawiarnia", "Kawiarnia")
|
||||
</div>
|
||||
<a class="btn" href="#footer">Kontakt</a>
|
||||
</div>
|
||||
</nav>
|
||||
{ children... }
|
||||
<footer id="footer">
|
||||
<div>
|
||||
<div>
|
||||
@AvifImage("logo.avif", "logo")
|
||||
<p>Pasja, natura i domowy smak w każdym kawałku ciasta.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Lokalizacja</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://maps.app.goo.gl/YD3DWUNKBoweKdpb7">
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-map-pin-icon lucide-map-pin"
|
||||
>
|
||||
<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"></path>
|
||||
<circle cx="12" cy="10" r="3"></circle>
|
||||
</svg>
|
||||
<span>Pracownia</span>
|
||||
</div>
|
||||
<p>
|
||||
ul. Polna 7k
|
||||
<br/>
|
||||
83-314 Somonino
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://maps.app.goo.gl/568ax4QLJnXvqbhD9">
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-map-pin-icon lucide-map-pin"
|
||||
>
|
||||
<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"></path>
|
||||
<circle cx="12" cy="10" r="3"></circle>
|
||||
</svg>
|
||||
<span>Kawiarnia</span>
|
||||
</div>
|
||||
<p>
|
||||
ul. Dworcowa 3a
|
||||
<br/>
|
||||
83-300 Kartuzy
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Kontakt</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://facebook.com/piekarnikgosi">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 48 48">
|
||||
<mask id="ipSFacebook0">
|
||||
<path
|
||||
fill="#fff"
|
||||
stroke="#fff"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="3.8"
|
||||
d="M36 12.6h-6.013c-1.086 0-1.967.88-1.967 1.967v6.9H36l-1.169 7.597h-6.81V43h-8.776V29.064H12v-7.597h7.151l.094-7.21l-.013-1.31A7.868 7.868 0 0 1 27.099 5H36v7.6Z"
|
||||
></path>
|
||||
</mask>
|
||||
<path fill="currentColor" d="M0 0h48v48H0z" mask="url(#ipSFacebook0)"></path>
|
||||
</svg>
|
||||
<span>facebook.com/PiekarnikGosi</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://instagram.com/piekarnikgosi">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 24 24">
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M17.34 5.46a1.2 1.2 0 1 0 1.2 1.2a1.2 1.2 0 0 0-1.2-1.2Zm4.6 2.42a7.59 7.59 0 0 0-.46-2.43a4.94 4.94 0 0 0-1.16-1.77a4.7 4.7 0 0 0-1.77-1.15a7.3 7.3 0 0 0-2.43-.47C15.06 2 14.72 2 12 2s-3.06 0-4.12.06a7.3 7.3 0 0 0-2.43.47a4.78 4.78 0 0 0-1.77 1.15a4.7 4.7 0 0 0-1.15 1.77a7.3 7.3 0 0 0-.47 2.43C2 8.94 2 9.28 2 12s0 3.06.06 4.12a7.3 7.3 0 0 0 .47 2.43a4.7 4.7 0 0 0 1.15 1.77a4.78 4.78 0 0 0 1.77 1.15a7.3 7.3 0 0 0 2.43.47C8.94 22 9.28 22 12 22s3.06 0 4.12-.06a7.3 7.3 0 0 0 2.43-.47a4.7 4.7 0 0 0 1.77-1.15a4.85 4.85 0 0 0 1.16-1.77a7.59 7.59 0 0 0 .46-2.43c0-1.06.06-1.4.06-4.12s0-3.06-.06-4.12ZM20.14 16a5.61 5.61 0 0 1-.34 1.86a3.06 3.06 0 0 1-.75 1.15a3.19 3.19 0 0 1-1.15.75a5.61 5.61 0 0 1-1.86.34c-1 .05-1.37.06-4 .06s-3 0-4-.06a5.73 5.73 0 0 1-1.94-.3a3.27 3.27 0 0 1-1.1-.75a3 3 0 0 1-.74-1.15a5.54 5.54 0 0 1-.4-1.9c0-1-.06-1.37-.06-4s0-3 .06-4a5.54 5.54 0 0 1 .35-1.9A3 3 0 0 1 5 5a3.14 3.14 0 0 1 1.1-.8A5.73 5.73 0 0 1 8 3.86c1 0 1.37-.06 4-.06s3 0 4 .06a5.61 5.61 0 0 1 1.86.34a3.06 3.06 0 0 1 1.19.8a3.06 3.06 0 0 1 .75 1.1a5.61 5.61 0 0 1 .34 1.9c.05 1 .06 1.37.06 4s-.01 3-.06 4ZM12 6.87A5.13 5.13 0 1 0 17.14 12A5.12 5.12 0 0 0 12 6.87Zm0 8.46A3.33 3.33 0 1 1 15.33 12A3.33 3.33 0 0 1 12 15.33Z"
|
||||
></path>
|
||||
</svg>
|
||||
<span>instagram.com/PiekarnikGosi</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="mailto:gosia@piekarnikgosi.pl">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-mail-icon lucide-mail"
|
||||
>
|
||||
<path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"></path>
|
||||
<rect x="2" y="4" width="20" height="16" rx="2"></rect>
|
||||
</svg>
|
||||
<span>gosia@piekarnikgosi.pl</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tel:+48503186245">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-phone-icon lucide-phone"
|
||||
>
|
||||
<path d="M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384"></path>
|
||||
</svg>
|
||||
<span>+48 503 186 245</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>© 2026 Piekarnik Gosi.</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
}
|
||||
|
||||
templ Link(activePage, targetPage, title string) {
|
||||
<a
|
||||
if activePage != targetPage {
|
||||
href={ fmt.Sprint(targetPage, ".html") }
|
||||
}
|
||||
>{ title }</a>
|
||||
}
|
||||
|
||||
templ GreenLink(activePage, targetPage, title string) {
|
||||
<a
|
||||
if activePage != targetPage {
|
||||
href={ fmt.Sprint(targetPage, ".html") }
|
||||
}
|
||||
class="btn-green"
|
||||
>{ title }</a>
|
||||
}
|
||||
|
||||
templ wyrobyHeader(activePage string) {
|
||||
<header class="subnav">
|
||||
<h1>Nasze słodkości</h1>
|
||||
<p>
|
||||
Poznaj nasze tradycyjne receptury przekute w nowoczesne formy. Każdy wypiek to historia pasji, a każde lody
|
||||
to powiew naturalnej świeżości
|
||||
</p>
|
||||
<nav>
|
||||
@GreenLink(activePage, "wyroby", "Ciasta")
|
||||
@GreenLink(activePage, "wyroby_deserki", "Deserki")
|
||||
@GreenLink(activePage, "wyroby_torty", "Torty")
|
||||
@GreenLink(activePage, "wyroby_slodkie_stoly", "Słodkie stoły")
|
||||
@GreenLink(activePage, "wyroby_lody", "Lody")
|
||||
</nav>
|
||||
</header>
|
||||
}
|
||||
269
html/layout_templ.go
Normal file
269
html/layout_templ.go
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
import "fmt"
|
||||
|
||||
func layout(activePage string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<!doctype html><html lang=\"pl\"><head><meta charset=\"UTF-8\"><title>Piekarnik Gosi</title><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><meta name=\"description\" content=\"\"><link href=\"style.css\" rel=\"stylesheet\"><link rel=\"icon\" href=\"images/favicon.avif\"></head><body><nav><div><a href=\"index.html\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("logo.avif", "logo").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</a><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = Link(activePage, "index", "Strona Główna").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = Link(activePage, "wyroby", "Wyroby").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = Link(activePage, "portfolio", "Portfolio").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = Link(activePage, "kawiarnia", "Kawiarnia").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</div><a class=\"btn\" href=\"#footer\">Kontakt</a></div></nav>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<footer id=\"footer\"><div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("logo.avif", "logo").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<p>Pasja, natura i domowy smak w każdym kawałku ciasta.</p></div></div><div><h4>Lokalizacja</h4><ul><li><a href=\"https://maps.app.goo.gl/YD3DWUNKBoweKdpb7\"><div><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-map-pin-icon lucide-map-pin\"><path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\"></path> <circle cx=\"12\" cy=\"10\" r=\"3\"></circle></svg> <span>Pracownia</span></div><p>ul. Polna 7k<br>83-314 Somonino</p></a></li><li><a href=\"https://maps.app.goo.gl/568ax4QLJnXvqbhD9\"><div><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-map-pin-icon lucide-map-pin\"><path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\"></path> <circle cx=\"12\" cy=\"10\" r=\"3\"></circle></svg> <span>Kawiarnia</span></div><p>ul. Dworcowa 3a<br>83-300 Kartuzy</p></a></li></ul></div><div><h4>Kontakt</h4><ul><li><a href=\"https://facebook.com/piekarnikgosi\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"200\" viewBox=\"0 0 48 48\"><mask id=\"ipSFacebook0\"><path fill=\"#fff\" stroke=\"#fff\" stroke-linejoin=\"round\" stroke-width=\"3.8\" d=\"M36 12.6h-6.013c-1.086 0-1.967.88-1.967 1.967v6.9H36l-1.169 7.597h-6.81V43h-8.776V29.064H12v-7.597h7.151l.094-7.21l-.013-1.31A7.868 7.868 0 0 1 27.099 5H36v7.6Z\"></path></mask> <path fill=\"currentColor\" d=\"M0 0h48v48H0z\" mask=\"url(#ipSFacebook0)\"></path></svg> <span>facebook.com/PiekarnikGosi</span></a></li><li><a href=\"https://instagram.com/piekarnikgosi\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"200\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M17.34 5.46a1.2 1.2 0 1 0 1.2 1.2a1.2 1.2 0 0 0-1.2-1.2Zm4.6 2.42a7.59 7.59 0 0 0-.46-2.43a4.94 4.94 0 0 0-1.16-1.77a4.7 4.7 0 0 0-1.77-1.15a7.3 7.3 0 0 0-2.43-.47C15.06 2 14.72 2 12 2s-3.06 0-4.12.06a7.3 7.3 0 0 0-2.43.47a4.78 4.78 0 0 0-1.77 1.15a4.7 4.7 0 0 0-1.15 1.77a7.3 7.3 0 0 0-.47 2.43C2 8.94 2 9.28 2 12s0 3.06.06 4.12a7.3 7.3 0 0 0 .47 2.43a4.7 4.7 0 0 0 1.15 1.77a4.78 4.78 0 0 0 1.77 1.15a7.3 7.3 0 0 0 2.43.47C8.94 22 9.28 22 12 22s3.06 0 4.12-.06a7.3 7.3 0 0 0 2.43-.47a4.7 4.7 0 0 0 1.77-1.15a4.85 4.85 0 0 0 1.16-1.77a7.59 7.59 0 0 0 .46-2.43c0-1.06.06-1.4.06-4.12s0-3.06-.06-4.12ZM20.14 16a5.61 5.61 0 0 1-.34 1.86a3.06 3.06 0 0 1-.75 1.15a3.19 3.19 0 0 1-1.15.75a5.61 5.61 0 0 1-1.86.34c-1 .05-1.37.06-4 .06s-3 0-4-.06a5.73 5.73 0 0 1-1.94-.3a3.27 3.27 0 0 1-1.1-.75a3 3 0 0 1-.74-1.15a5.54 5.54 0 0 1-.4-1.9c0-1-.06-1.37-.06-4s0-3 .06-4a5.54 5.54 0 0 1 .35-1.9A3 3 0 0 1 5 5a3.14 3.14 0 0 1 1.1-.8A5.73 5.73 0 0 1 8 3.86c1 0 1.37-.06 4-.06s3 0 4 .06a5.61 5.61 0 0 1 1.86.34a3.06 3.06 0 0 1 1.19.8a3.06 3.06 0 0 1 .75 1.1a5.61 5.61 0 0 1 .34 1.9c.05 1 .06 1.37.06 4s-.01 3-.06 4ZM12 6.87A5.13 5.13 0 1 0 17.14 12A5.12 5.12 0 0 0 12 6.87Zm0 8.46A3.33 3.33 0 1 1 15.33 12A3.33 3.33 0 0 1 12 15.33Z\"></path></svg> <span>instagram.com/PiekarnikGosi</span></a></li><li><a href=\"mailto:gosia@piekarnikgosi.pl\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-mail-icon lucide-mail\"><path d=\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"></path> <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"></rect></svg> <span>gosia@piekarnikgosi.pl</span></a></li><li><a href=\"tel:+48503186245\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-phone-icon lucide-phone\"><path d=\"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\"></path></svg> <span>+48 503 186 245</span></a></li></ul></div><p>© 2026 Piekarnik Gosi.</p></footer></body></html>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func Link(activePage, targetPage, title string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<a")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if activePage != targetPage {
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, " href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 templ.SafeURL
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinURLErrs(fmt.Sprint(targetPage, ".html"))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/layout.templ`, Line: 179, Col: 41}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, ">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/layout.templ`, Line: 181, Col: 9}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "</a>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func GreenLink(activePage, targetPage, title string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<a")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if activePage != targetPage {
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 templ.SafeURL
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinURLErrs(fmt.Sprint(targetPage, ".html"))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/layout.templ`, Line: 187, Col: 41}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " class=\"btn-green\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var7 string
|
||||
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/layout.templ`, Line: 190, Col: 9}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</a>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func wyrobyHeader(activePage string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var8 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var8 == nil {
|
||||
templ_7745c5c3_Var8 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<header class=\"subnav\"><h1>Nasze słodkości</h1><p>Poznaj nasze tradycyjne receptury przekute w nowoczesne formy. Każdy wypiek to historia pasji, a każde lody to powiew naturalnej świeżości</p><nav>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GreenLink(activePage, "wyroby", "Ciasta").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GreenLink(activePage, "wyroby_deserki", "Deserki").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GreenLink(activePage, "wyroby_torty", "Torty").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GreenLink(activePage, "wyroby_slodkie_stoly", "Słodkie stoły").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GreenLink(activePage, "wyroby_lody", "Lody").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "</nav></header>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
20
html/portfolio.templ
Normal file
20
html/portfolio.templ
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package html
|
||||
|
||||
templ Portfolio() {
|
||||
@layout("portfolio") {
|
||||
<main>
|
||||
<section class="portfolio">
|
||||
<header>
|
||||
<h1>Nasze Słodkie Realizacje</h1>
|
||||
<p>Galeria pasji uwieczniona w kremie i dekoracjach. Zobacz wybrane projekty, które uświetniły wyjątkowe chwile naszych klientów – od bajkowych tortów dla dzieci po eleganckie torty weselne.</p>
|
||||
</header>
|
||||
<div>
|
||||
<a class="btn-green">Ciasta</a>
|
||||
<a class="btn-green" href="wyroby_torty.gohtml">Torty</a>
|
||||
<a class="btn-green" href="wyroby_slodkie_stoly.html">Slodkie stoły</a>
|
||||
<a class="btn-green" href="wyroby_lody.html">Lody</a>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
}
|
||||
}
|
||||
58
html/portfolio_templ.go
Normal file
58
html/portfolio_templ.go
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
func Portfolio() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<main><section class=\"portfolio\"><header><h1>Nasze Słodkie Realizacje</h1><p>Galeria pasji uwieczniona w kremie i dekoracjach. Zobacz wybrane projekty, które uświetniły wyjątkowe chwile naszych klientów – od bajkowych tortów dla dzieci po eleganckie torty weselne.</p></header><div><a class=\"btn-green\">Ciasta</a> <a class=\"btn-green\" href=\"wyroby_torty.gohtml\">Torty</a> <a class=\"btn-green\" href=\"wyroby_slodkie_stoly.html\">Slodkie stoły</a> <a class=\"btn-green\" href=\"wyroby_lody.html\">Lody</a></div></section></main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
templ_7745c5c3_Err = layout("portfolio").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
29
html/wyroby_ciasta.templ
Normal file
29
html/wyroby_ciasta.templ
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package html
|
||||
|
||||
import "piekarnikgosi/types"
|
||||
|
||||
templ card(product types.Product) {
|
||||
<div class="card">
|
||||
<div>
|
||||
@AvifImage("wyroby/"+product.Image+".avif", product.Name)
|
||||
</div>
|
||||
<div>
|
||||
<h3>{ product.Name }</h3>
|
||||
<span>{ product.Price }zł</span>
|
||||
<p>{ product.Description }</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ Wyroby(products []types.Product, page string) {
|
||||
@layout("wyroby") {
|
||||
<main>
|
||||
@wyrobyHeader(page)
|
||||
<div id="wyroby">
|
||||
for _, product:= range products {
|
||||
@card(product)
|
||||
}
|
||||
</div>
|
||||
</main>
|
||||
}
|
||||
}
|
||||
154
html/wyroby_ciasta_templ.go
Normal file
154
html/wyroby_ciasta_templ.go
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
import "piekarnikgosi/types"
|
||||
|
||||
func card(product types.Product) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div class=\"card\"><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("wyroby/"+product.Image+".avif", product.Name).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</div><div><h3>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(product.Name)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/wyroby_ciasta.templ`, Line: 11, Col: 21}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</h3><span>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(product.Price)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/wyroby_ciasta.templ`, Line: 12, Col: 24}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "zł</span><p>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(product.Description)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `html/wyroby_ciasta.templ`, Line: 13, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</p></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func Wyroby(products []types.Product, page string) templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var6 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = wyrobyHeader(page).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<div id=\"wyroby\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, product := range products {
|
||||
templ_7745c5c3_Err = card(product).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</div></main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
templ_7745c5c3_Err = layout("wyroby").Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
9
html/wyroby_lody.templ
Normal file
9
html/wyroby_lody.templ
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
package html
|
||||
|
||||
templ WyrobyLody() {
|
||||
@layout("wyroby") {
|
||||
<main>
|
||||
@wyrobyHeader("wyroby_lody")
|
||||
</main>
|
||||
}
|
||||
}
|
||||
66
html/wyroby_lody_templ.go
Normal file
66
html/wyroby_lody_templ.go
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
func WyrobyLody() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = wyrobyHeader("wyroby_lody").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "</main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
templ_7745c5c3_Err = layout("wyroby").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
64
html/wyroby_slodkie_stoly.templ
Normal file
64
html/wyroby_slodkie_stoly.templ
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
package html
|
||||
|
||||
templ WyrobySlodkieStoly() {
|
||||
@layout("wyroby") {
|
||||
<main id="slodkie_stoly">
|
||||
@wyrobyHeader("wyroby_slodkie_stoly")
|
||||
<section id="cennik">
|
||||
<p>
|
||||
Aranżacja i transport słodkości ustalane są indywidualnie
|
||||
<br/>
|
||||
Minimalna ilość zamówień: <strong>8szt</strong> z jednego rodzaju
|
||||
<br/>
|
||||
W przypadku zamówień dla ilości osób powyżej 30, do wyboru są następujące konfiguracje bufetów:
|
||||
</p>
|
||||
<div class="card-low">
|
||||
<h3>Podstawowy</h3>
|
||||
<span>28 PLN/osoba</span>
|
||||
<p>3 szt. deseru na osobę<br/>5 rodzajów do wyboru</p>
|
||||
</div>
|
||||
<div class="card-low">
|
||||
<h3>Rozszerzony</h3>
|
||||
<span>34 PLN/osoba</span>
|
||||
<p>4-5 szt. deseru na osobę<br/>7 rodzajów do wyboru</p>
|
||||
</div>
|
||||
<div class="card-low">
|
||||
<h3>Premium</h3>
|
||||
<span>39 PLN/osoba</span>
|
||||
<p>6 szt. deseru na osobę<br/>7 rodzajów do wyboru</p>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<div id="deserki">
|
||||
<div>
|
||||
<h2>W skład słodkiego stołu mogą wchodzić</h2>
|
||||
<ul>
|
||||
<li><div><span>Muffinki czekoladowe z kremem śmietankowym</span></div></li>
|
||||
<li><div><span>Babeczki z kremem i piankami</span></div></li>
|
||||
<li><div><span>Cake popsy</span><span>w czekoladzie</span></div></li>
|
||||
<li><div><span>Ice popsy</span><span>w czekoladzie</span></div></li>
|
||||
<li><div><span>Panna Cotta</span><span>Deser w pucharku </span></div></li>
|
||||
<li><div><span>Tiramisu</span><span>Deser w pucharku </span></div></li>
|
||||
<li><div><span>Leśny mech z musem truskawkowym</span><span>Deser w pucharku </span></div></li>
|
||||
<li><div><span>Chia</span><span>Deser w pucharku </span></div></li>
|
||||
<li><div><span>Serniczek cynamonowy lub oreo</span><span>na ciasteczkowym spodzie</span></div></li>
|
||||
<li><div><span>Oreo</span><span>Deser w pucharku</span></div></li>
|
||||
<li><div><span>Mini Pavlove z owocami</span><span>ok.7 cm średnicy</span></div></li>
|
||||
<li><div><span>Monoporcja</span><span>półkula w polewie lustrzanej mango marakuja</span></div></li>
|
||||
<li>
|
||||
<div>
|
||||
<span>Savarin</span><span>mus z białej czekolady i żelką malinową na migdałowym ciasteczku</span>
|
||||
</div>
|
||||
</li>
|
||||
<li><div><span>Eklerki</span><span>z kremem śmietanowym/pattisiere</span></div></li>
|
||||
<li><div><span>Tartaletki</span><span>z kremem i owocami</span></div></li>
|
||||
<li><div><span>Mini tarta</span><span>z ganache czekoladowym i żelką malinową</span></div></li>
|
||||
<li><div><span>Profiterol</span><span>z kruszonką i kremem porzeczkowym/śmietankowym</span></div></li>
|
||||
<li><div><span>Ciasta</span></div></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
}
|
||||
}
|
||||
66
html/wyroby_slodkie_stoly_templ.go
Normal file
66
html/wyroby_slodkie_stoly_templ.go
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
func WyrobySlodkieStoly() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<main id=\"slodkie_stoly\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = wyrobyHeader("wyroby_slodkie_stoly").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<section id=\"cennik\"><p>Aranżacja i transport słodkości ustalane są indywidualnie<br>Minimalna ilość zamówień: <strong>8szt</strong> z jednego rodzaju<br>W przypadku zamówień dla ilości osób powyżej 30, do wyboru są następujące konfiguracje bufetów:</p><div class=\"card-low\"><h3>Podstawowy</h3><span>28 PLN/osoba</span><p>3 szt. deseru na osobę<br>5 rodzajów do wyboru</p></div><div class=\"card-low\"><h3>Rozszerzony</h3><span>34 PLN/osoba</span><p>4-5 szt. deseru na osobę<br>7 rodzajów do wyboru</p></div><div class=\"card-low\"><h3>Premium</h3><span>39 PLN/osoba</span><p>6 szt. deseru na osobę<br>7 rodzajów do wyboru</p></div></section><section><div id=\"deserki\"><div><h2>W skład słodkiego stołu mogą wchodzić</h2><ul><li><div><span>Muffinki czekoladowe z kremem śmietankowym</span></div></li><li><div><span>Babeczki z kremem i piankami</span></div></li><li><div><span>Cake popsy</span><span>w czekoladzie</span></div></li><li><div><span>Ice popsy</span><span>w czekoladzie</span></div></li><li><div><span>Panna Cotta</span><span>Deser w pucharku </span></div></li><li><div><span>Tiramisu</span><span>Deser w pucharku </span></div></li><li><div><span>Leśny mech z musem truskawkowym</span><span>Deser w pucharku </span></div></li><li><div><span>Chia</span><span>Deser w pucharku </span></div></li><li><div><span>Serniczek cynamonowy lub oreo</span><span>na ciasteczkowym spodzie</span></div></li><li><div><span>Oreo</span><span>Deser w pucharku</span></div></li><li><div><span>Mini Pavlove z owocami</span><span>ok.7 cm średnicy</span></div></li><li><div><span>Monoporcja</span><span>półkula w polewie lustrzanej mango marakuja</span></div></li><li><div><span>Savarin</span><span>mus z białej czekolady i żelką malinową na migdałowym ciasteczku</span></div></li><li><div><span>Eklerki</span><span>z kremem śmietanowym/pattisiere</span></div></li><li><div><span>Tartaletki</span><span>z kremem i owocami</span></div></li><li><div><span>Mini tarta</span><span>z ganache czekoladowym i żelką malinową</span></div></li><li><div><span>Profiterol</span><span>z kruszonką i kremem porzeczkowym/śmietankowym</span></div></li><li><div><span>Ciasta</span></div></li></ul></div></div></section></main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
templ_7745c5c3_Err = layout("wyroby").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
210
html/wyroby_torty.templ
Normal file
210
html/wyroby_torty.templ
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
package html
|
||||
|
||||
templ WyrobyTorty() {
|
||||
@layout("wyroby") {
|
||||
<main id="wyroby-torty">
|
||||
@wyrobyHeader("wyroby_torty")
|
||||
<section id="rodzaje-tortow">
|
||||
<div class="card-low">
|
||||
<h3>Torty z masą cukrową</h3>
|
||||
<span>od 200 PLN</span>
|
||||
<p>Artystyczne zdobienia i figurki. Cena zależy od dekoracji i rozmiaru</p>
|
||||
</div>
|
||||
<div class="card-low">
|
||||
<h3>Torty musowe</h3>
|
||||
<span>od 180 PLN</span>
|
||||
<p>Cena zależy od dekoracji i rozmiar</p>
|
||||
</div>
|
||||
<div class="card-low">
|
||||
<h3>Torty Bezowe</h3>
|
||||
<span>od 170 PLN</span>
|
||||
<p>Wycena indywidualna przy zamówieniu</p>
|
||||
</div>
|
||||
<div class="card-low">
|
||||
<h3>Torty Weselne</h3>
|
||||
<span>Wycena indywidualna</span>
|
||||
<p>Degustacje i projektowanie dopasowane do wesela</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="cennik-tortow">
|
||||
<div>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-banknote-icon lucide-banknote"
|
||||
>
|
||||
<rect width="20" height="12" x="2" y="6" rx="2"></rect>
|
||||
<circle cx="12" cy="12" r="2"></circle>
|
||||
<path d="M6 12h.01M18 12h.01"></path>
|
||||
</svg>
|
||||
<h3>Cennik Tortów Tradycyjnych</h3>
|
||||
<ul>
|
||||
<li><span>Ilość porcji</span><span>Cena orientacyjna</span></li>
|
||||
<li><span>6-8 porcji</span><span>od 120 PLN</span></li>
|
||||
<li><span>8-12 porcji</span><span>od 180 PLN</span></li>
|
||||
<li><span>12-15 porcji</span><span>od 220 PLN</span></li>
|
||||
<li><span>16-20 porcji</span><span>od 260 PLN</span></li>
|
||||
<li><span>20-25 porcji</span><span>od 300 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-low">
|
||||
<h3>Dodatki do tortów</h3>
|
||||
<ul>
|
||||
<li><span>Figurka z masy cukrowej</span><span>od 50 PLN</span></li>
|
||||
<li><span>Żywe kwiaty</span><span>cena do negocjacji</span></li>
|
||||
<li><span>Topery</span><span>cena do negocjacji</span></li>
|
||||
<li><span>Torty piętrowe</span><span>od 400 PLN</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section id="menu-smakow">
|
||||
<header>
|
||||
<h2>Menu smaków</h2>
|
||||
<p>Wybierz swoją ulubioną kompozycję bazową</p>
|
||||
</header>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: var(--primary)"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-grid3x3-icon lucide-grid-3x3"
|
||||
>
|
||||
<rect width="18" height="18" x="3" y="3" rx="2"></rect>
|
||||
<path d="M3 9h18"></path>
|
||||
<path d="M3 15h18"></path>
|
||||
<path d="M9 3v18"></path>
|
||||
<path d="M15 3v18"></path>
|
||||
</svg>
|
||||
<h3>Biszkopt Kakaowy</h3>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>Czekoladowy</dt>
|
||||
<dd>
|
||||
Możliwość połączenia z frużeliną malinową bądź wiśniową
|
||||
</dd>
|
||||
</div>
|
||||
<dt>Czekoladowo – śmietankowy</dt>
|
||||
<dt>Czekoladowo – malinowy</dt>
|
||||
<dt>Czekoladowy z żelką pomarańczową</dt>
|
||||
<dt>Słony karmel z musem z owoców leśnych</dt>
|
||||
<dt>Kinder bueno z prażynką czekoladową</dt>
|
||||
<dt>Chałwowy z chrupką oraz żelką i kremem wiśniowym</dt>
|
||||
<dt>Karmelowy z powidłami z czarnej porzeczki</dt>
|
||||
<dt>Oreo</dt>
|
||||
<dt>Nugat z orzechami laskowymi i kremem śmietankowym</dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #B56576"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-heart-icon lucide-heart"
|
||||
>
|
||||
<path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"></path>
|
||||
</svg>
|
||||
<h3>Biszkopt biały</h3>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>Śmietankowy</dt>
|
||||
<dd>W sezonie możliwość dodatku świeżych owoców</dd>
|
||||
</div>
|
||||
<dt>Pistacja z malinami</dt>
|
||||
<div>
|
||||
<dt>Owocowe</dt>
|
||||
<dd>Truskawkowy, malinowy, mango, czarna porzeczka, mango-owoce leśne</dd>
|
||||
</div>
|
||||
<dt>Rafaello na bazie białej czekolady</dt>
|
||||
<dt>Kokosowo-malinowy z żelką malinową</dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="offer-card">
|
||||
<svg
|
||||
style="--icon-color: #D48C45"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="lucide lucide-citrus-icon lucide-citrus"
|
||||
>
|
||||
<path d="M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z"></path>
|
||||
<path d="M19.65 15.66A8 8 0 0 1 8.35 4.34"></path>
|
||||
<path d="m14 10-5.5 5.5"></path>
|
||||
<path d="M14 17.85V10H6.15"></path>
|
||||
</svg>
|
||||
<h3>Inne</h3>
|
||||
<dl>
|
||||
<dt>Cytrynowy na bazie lemon curd</dt>
|
||||
<dt>Kawowy na bazie biszkoptu kawowego</dt>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<div id="torty-musowe">
|
||||
<div>
|
||||
<header>
|
||||
<h2>Torty Musowe</h2>
|
||||
<div>
|
||||
@AvifImage("010.avif", "tort musowy")
|
||||
</div>
|
||||
</header>
|
||||
<div>
|
||||
<div>
|
||||
<h4>Karmel-jogurt-migdały</h4>
|
||||
<p>mus z karmelizowanej białej czekolady, chrupiąca warstwa migdałowa, ganache jogurtowy</p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Mango-marakuja-truskawka</h4>
|
||||
<p>
|
||||
spód migdałowy, galaretka mango-marakuja, żelka truskawkowa, krem diplomat
|
||||
kokosowo-waniliowy
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Czekolada-malina-jeżyna</h4>
|
||||
<p>
|
||||
biszkopt jogurtowy, chrupiąca warstwa czekoladowa, żelka jeżynowa, krem malinowy, mus
|
||||
czekoladowy
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Whisky-mango</h4>
|
||||
<p>brownie, krem mango, ganache czekoladowe , mus whisky</p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Kawa-orzech ziemny</h4>
|
||||
<p>biszkopt, karmelizowane orzeszki ziemne, namelaka z masłem orzechowym, kawowy mus</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
}
|
||||
}
|
||||
74
html/wyroby_torty_templ.go
Normal file
74
html/wyroby_torty_templ.go
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.3.1020
|
||||
package html
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import templruntime "github.com/a-h/templ/runtime"
|
||||
|
||||
func WyrobyTorty() templ.Component {
|
||||
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
|
||||
return templ_7745c5c3_CtxErr
|
||||
}
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
defer func() {
|
||||
templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err == nil {
|
||||
templ_7745c5c3_Err = templ_7745c5c3_BufErr
|
||||
}
|
||||
}()
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<main id=\"wyroby-torty\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = wyrobyHeader("wyroby_torty").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<section id=\"rodzaje-tortow\"><div class=\"card-low\"><h3>Torty z masą cukrową</h3><span>od 200 PLN</span><p>Artystyczne zdobienia i figurki. Cena zależy od dekoracji i rozmiaru</p></div><div class=\"card-low\"><h3>Torty musowe</h3><span>od 180 PLN</span><p>Cena zależy od dekoracji i rozmiar</p></div><div class=\"card-low\"><h3>Torty Bezowe</h3><span>od 170 PLN</span><p>Wycena indywidualna przy zamówieniu</p></div><div class=\"card-low\"><h3>Torty Weselne</h3><span>Wycena indywidualna</span><p>Degustacje i projektowanie dopasowane do wesela</p></div></section><section id=\"cennik-tortow\"><div><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-banknote-icon lucide-banknote\"><rect width=\"20\" height=\"12\" x=\"2\" y=\"6\" rx=\"2\"></rect> <circle cx=\"12\" cy=\"12\" r=\"2\"></circle> <path d=\"M6 12h.01M18 12h.01\"></path></svg><h3>Cennik Tortów Tradycyjnych</h3><ul><li><span>Ilość porcji</span><span>Cena orientacyjna</span></li><li><span>6-8 porcji</span><span>od 120 PLN</span></li><li><span>8-12 porcji</span><span>od 180 PLN</span></li><li><span>12-15 porcji</span><span>od 220 PLN</span></li><li><span>16-20 porcji</span><span>od 260 PLN</span></li><li><span>20-25 porcji</span><span>od 300 PLN</span></li></ul></div><div class=\"card-low\"><h3>Dodatki do tortów</h3><ul><li><span>Figurka z masy cukrowej</span><span>od 50 PLN</span></li><li><span>Żywe kwiaty</span><span>cena do negocjacji</span></li><li><span>Topery</span><span>cena do negocjacji</span></li><li><span>Torty piętrowe</span><span>od 400 PLN</span></li></ul></div></section><section id=\"menu-smakow\"><header><h2>Menu smaków</h2><p>Wybierz swoją ulubioną kompozycję bazową</p></header><div class=\"offer-card\"><svg style=\"--icon-color: var(--primary)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-grid3x3-icon lucide-grid-3x3\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"></rect> <path d=\"M3 9h18\"></path> <path d=\"M3 15h18\"></path> <path d=\"M9 3v18\"></path> <path d=\"M15 3v18\"></path></svg><h3>Biszkopt Kakaowy</h3><dl><div><dt>Czekoladowy</dt><dd>Możliwość połączenia z frużeliną malinową bądź wiśniową</dd></div><dt>Czekoladowo – śmietankowy</dt><dt>Czekoladowo – malinowy</dt><dt>Czekoladowy z żelką pomarańczową</dt><dt>Słony karmel z musem z owoców leśnych</dt><dt>Kinder bueno z prażynką czekoladową</dt><dt>Chałwowy z chrupką oraz żelką i kremem wiśniowym</dt><dt>Karmelowy z powidłami z czarnej porzeczki</dt><dt>Oreo</dt><dt>Nugat z orzechami laskowymi i kremem śmietankowym</dt></dl></div><div class=\"offer-card\"><svg style=\"--icon-color: #B56576\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-heart-icon lucide-heart\"><path d=\"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5\"></path></svg><h3>Biszkopt biały</h3><dl><div><dt>Śmietankowy</dt><dd>W sezonie możliwość dodatku świeżych owoców</dd></div><dt>Pistacja z malinami</dt><div><dt>Owocowe</dt><dd>Truskawkowy, malinowy, mango, czarna porzeczka, mango-owoce leśne</dd></div><dt>Rafaello na bazie białej czekolady</dt><dt>Kokosowo-malinowy z żelką malinową</dt></dl></div><div class=\"offer-card\"><svg style=\"--icon-color: #D48C45\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-citrus-icon lucide-citrus\"><path d=\"M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z\"></path> <path d=\"M19.65 15.66A8 8 0 0 1 8.35 4.34\"></path> <path d=\"m14 10-5.5 5.5\"></path> <path d=\"M14 17.85V10H6.15\"></path></svg><h3>Inne</h3><dl><dt>Cytrynowy na bazie lemon curd</dt><dt>Kawowy na bazie biszkoptu kawowego</dt></dl></div></section><section><div id=\"torty-musowe\"><div><header><h2>Torty Musowe</h2><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = AvifImage("010.avif", "tort musowy").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "</div></header><div><div><h4>Karmel-jogurt-migdały</h4><p>mus z karmelizowanej białej czekolady, chrupiąca warstwa migdałowa, ganache jogurtowy</p></div><div><h4>Mango-marakuja-truskawka</h4><p>spód migdałowy, galaretka mango-marakuja, żelka truskawkowa, krem diplomat kokosowo-waniliowy</p></div><div><h4>Czekolada-malina-jeżyna</h4><p>biszkopt jogurtowy, chrupiąca warstwa czekoladowa, żelka jeżynowa, krem malinowy, mus czekoladowy</p></div><div><h4>Whisky-mango</h4><p>brownie, krem mango, ganache czekoladowe , mus whisky</p></div><div><h4>Kawa-orzech ziemny</h4><p>biszkopt, karmelizowane orzeszki ziemne, namelaka z masłem orzechowym, kawowy mus</p></div></div></div></div></section></main>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
templ_7745c5c3_Err = layout("wyroby").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
var _ = templruntime.GeneratedTemplate
|
||||
Loading…
Add table
Add a link
Reference in a new issue