title: Concrete range example
body: <p>The Go documentation on the text/template package is so abstract that I'm having trouble figuring out how to actually range over a slice of objects.  Here's my attempt so far (This outputs nothing for me):</p>
  
  <pre><code>package main
  import (
      "os"
      templ "text/template"
  )
  type Context struct {
      people []Person
  }
  type Person struct {
      Name   string //exported field since it begins with a capital letter
      Senior bool
  }
  func main() {
      // Range example 
      tRange := templ.New("Range Example")
      ctx2 := Context{people: []Person{Person{Name: "Mary", Senior: false}, Person{Name: "Joseph", Senior: true}}}
      tRange = templ.Must(
      tRange.Parse(`
  {{range $i, $x := $.people}} Name={{$x.Name}} Senior={{$x.Senior}}  {{end}}
  `))
      tRange.Execute(os.Stdout, ctx2)
  }
  </code></pre>