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)
 | 
						|
	}))
 | 
						|
}
 |