mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// 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.
 | 
						|
 | 
						|
//go:build go1.13
 | 
						|
// +build go1.13
 | 
						|
 | 
						|
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"
 | 
						|
}
 |