mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-04 03:27:23 -05:00 
			
		
		
		
	template: support custom functions
Signed-off-by: Tw <tw19881113@gmail.com>
This commit is contained in:
		
							parent
							
								
									236341f78b
								
							
						
					
					
						commit
						f77a7a805a
					
				@ -244,6 +244,9 @@ func (c Context) Markdown(filename string) (string, error) {
 | 
				
			|||||||
	return string(markdown), nil
 | 
						return string(markdown), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// TemplateFuncs contains user defined functions
 | 
				
			||||||
 | 
					var TemplateFuncs = template.FuncMap{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ContextInclude opens filename using fs and executes a template with the context ctx.
 | 
					// ContextInclude opens filename using fs and executes a template with the context ctx.
 | 
				
			||||||
// This does the same thing that Context.Include() does, but with the ability to provide
 | 
					// This does the same thing that Context.Include() does, but with the ability to provide
 | 
				
			||||||
// your own context so that the included files can have access to additional fields your
 | 
					// your own context so that the included files can have access to additional fields your
 | 
				
			||||||
@ -261,7 +264,8 @@ func ContextInclude(filename string, ctx interface{}, fs http.FileSystem) (strin
 | 
				
			|||||||
		return "", err
 | 
							return "", err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tpl, err := template.New(filename).Parse(string(body))
 | 
						tpl := template.New(filename).Funcs(TemplateFuncs)
 | 
				
			||||||
 | 
						tpl, err = tpl.Parse(string(body))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return "", err
 | 
							return "", err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
@ -44,6 +44,9 @@ func (t Templates) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error
 | 
				
			|||||||
					tpl.Delims(rule.Delims[0], rule.Delims[1])
 | 
										tpl.Delims(rule.Delims[0], rule.Delims[1])
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Add custom functions
 | 
				
			||||||
 | 
									tpl.Funcs(httpserver.TemplateFuncs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				// Build the template
 | 
									// Build the template
 | 
				
			||||||
				templatePath := filepath.Join(t.Root, fpath)
 | 
									templatePath := filepath.Join(t.Root, fpath)
 | 
				
			||||||
				tpl, err := tpl.ParseFiles(templatePath)
 | 
									tpl, err := tpl.ParseFiles(templatePath)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user