hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

example_test.go (2519B)

    1 // Copyright 2011 The Go Authors. All rights reserved.
    2 // Use of this source code is governed by a BSD-style
    3 // license that can be found in the LICENSE file.
    4 
    5 //go:build go1.13
    6 // +build go1.13
    7 
    8 package template_test
    9 
   10 import (
   11 	"log"
   12 	"os"
   13 	"strings"
   14 	"text/template"
   15 )
   16 
   17 func ExampleTemplate() {
   18 	// Define a template.
   19 	const letter = `
   20 Dear {{.Name}},
   21 {{if .Attended}}
   22 It was a pleasure to see you at the wedding.
   23 {{- else}}
   24 It is a shame you couldn't make it to the wedding.
   25 {{- end}}
   26 {{with .Gift -}}
   27 Thank you for the lovely {{.}}.
   28 {{end}}
   29 Best wishes,
   30 Josie
   31 `
   32 
   33 	// Prepare some data to insert into the template.
   34 	type Recipient struct {
   35 		Name, Gift string
   36 		Attended   bool
   37 	}
   38 	var recipients = []Recipient{
   39 		{"Aunt Mildred", "bone china tea set", true},
   40 		{"Uncle John", "moleskin pants", false},
   41 		{"Cousin Rodney", "", false},
   42 	}
   43 
   44 	// Create a new template and parse the letter into it.
   45 	t := template.Must(template.New("letter").Parse(letter))
   46 
   47 	// Execute the template for each recipient.
   48 	for _, r := range recipients {
   49 		err := t.Execute(os.Stdout, r)
   50 		if err != nil {
   51 			log.Println("executing template:", err)
   52 		}
   53 	}
   54 
   55 	// Output:
   56 	// Dear Aunt Mildred,
   57 	//
   58 	// It was a pleasure to see you at the wedding.
   59 	// Thank you for the lovely bone china tea set.
   60 	//
   61 	// Best wishes,
   62 	// Josie
   63 	//
   64 	// Dear Uncle John,
   65 	//
   66 	// It is a shame you couldn't make it to the wedding.
   67 	// Thank you for the lovely moleskin pants.
   68 	//
   69 	// Best wishes,
   70 	// Josie
   71 	//
   72 	// Dear Cousin Rodney,
   73 	//
   74 	// It is a shame you couldn't make it to the wedding.
   75 	//
   76 	// Best wishes,
   77 	// Josie
   78 }
   79 
   80 // The following example is duplicated in html/template; keep them in sync.
   81 
   82 func ExampleTemplate_block() {
   83 	const (
   84 		master  = `Names:{{block "list" .}}{{"\n"}}{{range .}}{{println "-" .}}{{end}}{{end}}`
   85 		overlay = `{{define "list"}} {{join . ", "}}{{end}} `
   86 	)
   87 	var (
   88 		funcs     = template.FuncMap{"join": strings.Join}
   89 		guardians = []string{"Gamora", "Groot", "Nebula", "Rocket", "Star-Lord"}
   90 	)
   91 	masterTmpl, err := template.New("master").Funcs(funcs).Parse(master)
   92 	if err != nil {
   93 		log.Fatal(err)
   94 	}
   95 	overlayTmpl, err := template.Must(masterTmpl.Clone()).Parse(overlay)
   96 	if err != nil {
   97 		log.Fatal(err)
   98 	}
   99 	if err := masterTmpl.Execute(os.Stdout, guardians); err != nil {
  100 		log.Fatal(err)
  101 	}
  102 	if err := overlayTmpl.Execute(os.Stdout, guardians); err != nil {
  103 		log.Fatal(err)
  104 	}
  105 	// Output:
  106 	// Names:
  107 	// - Gamora
  108 	// - Groot
  109 	// - Nebula
  110 	// - Rocket
  111 	// - Star-Lord
  112 	// Names: Gamora, Groot, Nebula, Rocket, Star-Lord
  113 }