Initial Commit

This commit is contained in:
2023-10-28 18:10:17 -07:00
commit 71a09170c9
20 changed files with 4991 additions and 0 deletions

71
examples/readme/main.go Normal file
View 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)
}
}

View 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>