daz
v0.1.4
Composants HTML composables à Golang

DAZ est une alternative "fonctionnelle" à l'utilisation de modèles, et permet des composants / listes imbriqués permet également des composants rendus côté serveur sans modèle avec la prise en charge des listes imbriquées. Il est inspiré par l'hyperscript.
Un composant peut être créé et utilisé avec des fonctions simples:
// Example prop for a component
type User struct {
Name string
// ...
}
func MyComponent ( user User ) HTML {
return H (
"div" ,
Attr { "class" : "bg-grey-50" },
user . Name ,
)
}
func Root () HTML {
user := User { Name : "Daz" }
return H ( "html" , MyComponent ( user ))
}
// And used in a handler:
func Handler ( w http. ResponseWriter , r * http. Request ) {
w . Write ([] byte ( Root ()()))
} Les listes peuvent être facilement créées sans avoir à intégrer une range / end dans un modèle:
items := [] HTML {
H ( "li" , "item one" ),
H ( "li" , "item two" ),
}
element := H ( "ul" , Attr { "class" : "bg-grey-50" }, items )
div := H ( "div" , element ) import (
"github.com/stevelacy/daz"
)
HCréer un élément HTML:
H ( "div" , ... attrs )AttrAttributs HTML:
Attr {
"class" : "app" ,
"onClick" : "javascriptFunc()" ,
}UnsafeContentCela contournera la désinfection HTML et permettra une injection directe
injection := "<script>alert('xss')</script>"
root := H ( "div" , UnsafeContent ( injection ))
// <script>alert('xss')</script>