109 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2014 beego Author. All Rights Reserved.
 | |
| //
 | |
| // Licensed under the Apache License, Version 2.0 (the "License");
 | |
| // you may not use this file except in compliance with the License.
 | |
| // You may obtain a copy of the License at
 | |
| //
 | |
| //      http://www.apache.org/licenses/LICENSE-2.0
 | |
| //
 | |
| // Unless required by applicable law or agreed to in writing, software
 | |
| // distributed under the License is distributed on an "AS IS" BASIS,
 | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| // See the License for the specific language governing permissions and
 | |
| // limitations under the License.
 | |
| 
 | |
| package adapter
 | |
| 
 | |
| import (
 | |
| 	"html/template"
 | |
| 	"io"
 | |
| 	"net/http"
 | |
| 
 | |
| 	"github.com/astaxie/beego/pkg/server/web"
 | |
| )
 | |
| 
 | |
| // ExecuteTemplate applies the template with name  to the specified data object,
 | |
| // writing the output to wr.
 | |
| // A template will be executed safely in parallel.
 | |
| func ExecuteTemplate(wr io.Writer, name string, data interface{}) error {
 | |
| 	return web.ExecuteTemplate(wr, name, data)
 | |
| }
 | |
| 
 | |
| // ExecuteViewPathTemplate applies the template with name and from specific viewPath to the specified data object,
 | |
| // writing the output to wr.
 | |
| // A template will be executed safely in parallel.
 | |
| func ExecuteViewPathTemplate(wr io.Writer, name string, viewPath string, data interface{}) error {
 | |
| 	return web.ExecuteViewPathTemplate(wr, name, viewPath, data)
 | |
| }
 | |
| 
 | |
| // AddFuncMap let user to register a func in the template.
 | |
| func AddFuncMap(key string, fn interface{}) error {
 | |
| 	return web.AddFuncMap(key, fn)
 | |
| }
 | |
| 
 | |
| type templatePreProcessor func(root, path string, funcs template.FuncMap) (*template.Template, error)
 | |
| 
 | |
| type templateFile struct {
 | |
| 	root  string
 | |
| 	files map[string][]string
 | |
| }
 | |
| 
 | |
| // HasTemplateExt return this path contains supported template extension of beego or not.
 | |
| func HasTemplateExt(paths string) bool {
 | |
| 	return web.HasTemplateExt(paths)
 | |
| }
 | |
| 
 | |
| // AddTemplateExt add new extension for template.
 | |
| func AddTemplateExt(ext string) {
 | |
| 	web.AddTemplateExt(ext)
 | |
| }
 | |
| 
 | |
| // AddViewPath adds a new path to the supported view paths.
 | |
| // Can later be used by setting a controller ViewPath to this folder
 | |
| // will panic if called after beego.Run()
 | |
| func AddViewPath(viewPath string) error {
 | |
| 	return web.AddViewPath(viewPath)
 | |
| }
 | |
| 
 | |
| // BuildTemplate will build all template files in a directory.
 | |
| // it makes beego can render any template file in view directory.
 | |
| func BuildTemplate(dir string, files ...string) error {
 | |
| 	return web.BuildTemplate(dir, files...)
 | |
| }
 | |
| 
 | |
| type templateFSFunc func() http.FileSystem
 | |
| 
 | |
| func defaultFSFunc() http.FileSystem {
 | |
| 	return FileSystem{}
 | |
| }
 | |
| 
 | |
| // SetTemplateFSFunc set default filesystem function
 | |
| func SetTemplateFSFunc(fnt templateFSFunc) {
 | |
| 	web.SetTemplateFSFunc(func() http.FileSystem {
 | |
| 		return fnt()
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // SetViewsPath sets view directory path in beego application.
 | |
| func SetViewsPath(path string) *App {
 | |
| 	return (*App)(web.SetViewsPath(path))
 | |
| }
 | |
| 
 | |
| // SetStaticPath sets static directory path and proper url pattern in beego application.
 | |
| // if beego.SetStaticPath("static","public"), visit /static/* to load static file in folder "public".
 | |
| func SetStaticPath(url string, path string) *App {
 | |
| 	return (*App)(web.SetStaticPath(url, path))
 | |
| }
 | |
| 
 | |
| // DelStaticPath removes the static folder setting in this url pattern in beego application.
 | |
| func DelStaticPath(url string) *App {
 | |
| 	return (*App)(web.DelStaticPath(url))
 | |
| }
 | |
| 
 | |
| // AddTemplateEngine add a new templatePreProcessor which support extension
 | |
| func AddTemplateEngine(extension string, fn templatePreProcessor) *App {
 | |
| 	return (*App)(web.AddTemplateEngine(extension, func(root, path string, funcs template.FuncMap) (*template.Template, error) {
 | |
| 		return fn(root, path, funcs)
 | |
| 	}))
 | |
| }
 |