Initial Commit
This commit is contained in:
71
examples/readme/main.go
Normal file
71
examples/readme/main.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"go.elara.ws/salix"
|
||||
)
|
||||
|
||||
//go:embed readme.salix.html
|
||||
var tmpl string
|
||||
|
||||
type User struct {
|
||||
Name string
|
||||
LoggedIn bool
|
||||
IsAdmin bool
|
||||
RegisteredTime time.Time
|
||||
}
|
||||
|
||||
var users = []User{
|
||||
{
|
||||
Name: "Elara",
|
||||
LoggedIn: true,
|
||||
IsAdmin: true,
|
||||
RegisteredTime: time.Date(2023, time.January, 10, 10, 10, 10, 0, time.UTC),
|
||||
},
|
||||
{
|
||||
Name: "Karl Marx",
|
||||
LoggedIn: false,
|
||||
IsAdmin: true,
|
||||
RegisteredTime: time.Date(1818, time.May, 5, 10, 10, 10, 0, time.UTC),
|
||||
},
|
||||
{
|
||||
Name: "Jane Doe",
|
||||
LoggedIn: true,
|
||||
IsAdmin: false,
|
||||
RegisteredTime: time.Date(2050, time.March, 6, 10, 10, 10, 0, time.UTC),
|
||||
},
|
||||
{
|
||||
Name: "John Doe <script>alert('hello!');</script>",
|
||||
LoggedIn: false,
|
||||
IsAdmin: false,
|
||||
RegisteredTime: time.Date(1700, time.November, 20, 10, 10, 10, 0, time.UTC),
|
||||
},
|
||||
}
|
||||
|
||||
type Page struct {
|
||||
Title string
|
||||
}
|
||||
|
||||
func main() {
|
||||
vars := map[string]any{
|
||||
"users": users,
|
||||
"page": Page{Title: "Users"},
|
||||
}
|
||||
|
||||
t, err := salix.New().
|
||||
WithVarMap(vars).
|
||||
WithEscapeHTML(true).
|
||||
ParseString("readme.salix.html", tmpl)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
err = t.Execute(os.Stdout)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
16
examples/readme/readme.salix.html
Normal file
16
examples/readme/readme.salix.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>#(page.Title)</title>
|
||||
</head>
|
||||
<body>
|
||||
#for(i, user in users):
|
||||
<div>
|
||||
<h2>#(toLower(user.Name))</h2>
|
||||
<p>User ID: #(i)</p>
|
||||
#if(user.LoggedIn): <p>This user is logged in</p> #!if
|
||||
#if(user.IsAdmin): <p>This user is an admin!</p> #!if
|
||||
<p>Registered: #(user.RegisteredTime.Format("01-02-2006"))</p>
|
||||
</div>
|
||||
#!for
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user