From 774faa3ea481d16c84d99f12d7c8ecc6f477c931 Mon Sep 17 00:00:00 2001 From: Sangeeth Sudheer Date: Wed, 1 May 2024 20:51:49 +0530 Subject: [PATCH] Add template --- main.go | 6 ++++-- templates/templates.go | 43 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 templates/templates.go diff --git a/main.go b/main.go index d3f5286..c9091d8 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,8 @@ package main // import "git.sangeeth.dev/gobyexample/defers" // import "git.sangeeth.dev/gobyexample/recovering" // import "git.sangeeth.dev/gobyexample/stringfuncs" -import "git.sangeeth.dev/gobyexample/formatting" +// import "git.sangeeth.dev/gobyexample/formatting" +import "git.sangeeth.dev/gobyexample/templates" func main() { // runes.Runes() @@ -49,5 +50,6 @@ func main() { // defers.Defers() // recovering.Recover() // stringfuncs.StringFuncs() - formatting.Formatting() + // formatting.Formatting() + templates.Templates() } diff --git a/templates/templates.go b/templates/templates.go new file mode 100644 index 0000000..29b5148 --- /dev/null +++ b/templates/templates.go @@ -0,0 +1,43 @@ +package templates + +import ( + "fmt" + "os" + "strings" + "text/template" +) + +func CreateTemplate(label, content string) *template.Template { + return template.Must(template.New(label).Parse(content)) +} + +func Templates() { + t1 := CreateTemplate("bioList", ` +
+ {{range . -}} +
{{ .Name }}
+
+

{{ .Bio }}

+

{{ if .IsAdult -}} Adult {{- else -}} Teen {{- end }}

+
+ {{end}} +
+`) + peeps := []struct { + Name, Bio string + Age uint + IsAdult bool + }{ + {"Paul Atreides", "Duke of Arrakis, Lisan Al Gaib", 24, true}, + {"Leto Atreides", "Former Duke of Arrakis and father of Paul Atreides", 43, true}, + {"Hidenori", "Unrelated character from DLoHB", 16, false}, + } + + t1.Execute(os.Stdout, peeps) + + var b strings.Builder + t1.Execute(&b, peeps) + output := fmt.Sprintf("\n%s\n", b.String()) + fmt.Println("Output as follows:") + fmt.Println(output) +}