Skip to content

Commit 48bed67

Browse files
author
anonx
committed
Simplify search of template names by storing their lowercase versions
1 parent bb1d80e commit 48bed67

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

template.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ type TemplateLoader struct {
2929
paths []string
3030
// Map from template name to the path from whence it was loaded.
3131
templatePaths map[string]string
32+
// templateNames is a map from lower case template name to the real template name.
33+
templateNames map[string]string
3234
}
3335

3436
type Template interface {
@@ -192,6 +194,7 @@ func (loader *TemplateLoader) Refresh() *Error {
192194

193195
loader.compileError = nil
194196
loader.templatePaths = map[string]string{}
197+
loader.templateNames = map[string]string{}
195198

196199
// Set the template delimiters for the project if present, then split into left
197200
// and right delimiters around a space character
@@ -279,11 +282,13 @@ func (loader *TemplateLoader) Refresh() *Error {
279282
}
280283

281284
// If we already loaded a template of this name, skip it.
282-
if _, ok := loader.templatePaths[templateName]; ok {
285+
lowerTemplateName := strings.ToLower(templateName)
286+
if _, ok := loader.templateNames[lowerTemplateName]; ok {
283287
return nil
284288
}
285289

286290
loader.templatePaths[templateName] = path
291+
loader.templateNames[lowerTemplateName] = templateName
287292

288293
// Load the file if we haven't already
289294
if fileStr == "" {
@@ -407,14 +412,10 @@ func parseTemplateError(err error) (templateName string, line int, description s
407412
// this case, if a template is returned, it may still be usable.)
408413
func (loader *TemplateLoader) Template(name string) (Template, error) {
409414
// Case-insensitive matching of template file name
410-
name = strings.ToLower(name)
411-
for k := range loader.templatePaths {
412-
if name == strings.ToLower(k) {
413-
name = k
414-
}
415-
}
415+
templateName := loader.templateNames[strings.ToLower(name)]
416+
416417
// Look up and return the template.
417-
tmpl := loader.templateSet.Lookup(name)
418+
tmpl := loader.templateSet.Lookup(templateName)
418419

419420
// This is necessary.
420421
// If a nil loader.compileError is returned directly, a caller testing against

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy