...
Run Format

Source file src/text/template/examplefunc_test.go

Documentation: text/template

  // Copyright 2012 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package template_test
  
  import (
  	"log"
  	"os"
  	"strings"
  	"text/template"
  )
  
  // This example demonstrates a custom function to process template text.
  // It installs the strings.Title function and uses it to
  // Make Title Text Look Good In Our Template's Output.
  func ExampleTemplate_func() {
  	// First we create a FuncMap with which to register the function.
  	funcMap := template.FuncMap{
  		// The name "title" is what the function will be called in the template text.
  		"title": strings.Title,
  	}
  
  	// A simple template definition to test our function.
  	// We print the input text several ways:
  	// - the original
  	// - title-cased
  	// - title-cased and then printed with %q
  	// - printed with %q and then title-cased.
  	const templateText = `
  Input: {{printf "%q" .}}
  Output 0: {{title .}}
  Output 1: {{title . | printf "%q"}}
  Output 2: {{printf "%q" . | title}}
  `
  
  	// Create a template, add the function map, and parse the text.
  	tmpl, err := template.New("titleTest").Funcs(funcMap).Parse(templateText)
  	if err != nil {
  		log.Fatalf("parsing: %s", err)
  	}
  
  	// Run the template to verify the output.
  	err = tmpl.Execute(os.Stdout, "the go programming language")
  	if err != nil {
  		log.Fatalf("execution: %s", err)
  	}
  
  	// Output:
  	// Input: "the go programming language"
  	// Output 0: The Go Programming Language
  	// Output 1: "The Go Programming Language"
  	// Output 2: "The Go Programming Language"
  }
  

View as plain text