Source File
template.go
Belonging Package
github.com/google/safehtml/template
package template
import (
)
var errEscapeOK = fmt.Errorf("template escaped correctly")
func ( *Template) () error {
.nameSpace.mu.Lock()
defer .nameSpace.mu.Unlock()
.nameSpace.escaped = true
if .escapeErr == nil {
if .Tree == nil {
return fmt.Errorf("template: %q is an incomplete or empty template", .Name())
}
if := escapeTemplate(, .text.Root, .Name()); != nil {
return
}
} else if .escapeErr != errEscapeOK {
return .escapeErr
}
return nil
}
func ( *Template) ( string, interface{}) (safehtml.HTML, error) {
var bytes.Buffer
if := .ExecuteTemplate(&, , ); != nil {
return safehtml.HTML{},
}
return uncheckedconversions.HTMLFromStringKnownToSatisfyTypeContract(.String()), nil
}
func ( *Template) ( string) ( *Template, error) {
.nameSpace.mu.Lock()
defer .nameSpace.mu.Unlock()
.nameSpace.escaped = true
= .set[]
if == nil {
return nil, fmt.Errorf("html/template: %q is undefined", )
}
if .escapeErr != nil && .escapeErr != errEscapeOK {
return nil, .escapeErr
}
if .text.Tree == nil || .text.Root == nil {
return nil, fmt.Errorf("html/template: %q is an incomplete template", )
}
if .text.Lookup() == nil {
panic("html/template internal error: template escaping out of sync")
}
if .escapeErr == nil {
= escapeTemplate(, .text.Root, )
}
return ,
}
func ( *Template) () string {
return .text.DefinedTemplates()
}
func ( *Template) ( TrustedTemplate) (*Template, error) {
return .Parse(stringConstant(.String()))
}
func ( *Template) () (*Template, error) {
.nameSpace.mu.Lock()
defer .nameSpace.mu.Unlock()
if .escapeErr != nil {
return nil, fmt.Errorf("html/template: cannot Clone %q after it has executed", .Name())
}
, := .text.Clone()
if != nil {
return nil,
}
:= &nameSpace{set: make(map[string]*Template)}
.esc = makeEscaper()
:= &Template{
nil,
,
.Tree,
,
}
.set[.Name()] =
for , := range .Templates() {
:= .Name()
:= .set[]
if == nil || .escapeErr != nil {
return nil, fmt.Errorf("html/template: cannot Clone %q after it has executed", .Name())
}
.Tree = .Tree.Copy()
.set[] = &Template{
nil,
,
.Tree,
.nameSpace,
}
type stringConstant string
func ( []stringConstant) []string {
:= make([]string, 0, len())
for , := range {
= append(, string())
}
return
}
func ( ...stringConstant) (*Template, error) {
return parseFiles(nil, stringConstantsToStrings()...)
}
func ( ...TrustedSource) (*Template, error) {
return parseFiles(nil, trustedSourcesToStrings()...)
}
func ( *Template) ( ...stringConstant) (*Template, error) {
return parseFiles(, stringConstantsToStrings()...)
}
func ( *Template) ( ...TrustedSource) (*Template, error) {
return parseFiles(, trustedSourcesToStrings()...)
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |