本文整理匯總了Golang中github.com/eknkc/amber.New函數的典型用法代碼示例。如果您正苦於以下問題:Golang New函數的具體用法?Golang New怎麽用?Golang New使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了New函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: LoadTemplates
func (t *GoHtmlTemplate) LoadTemplates(absPath string) {
walker := func(path string, fi os.FileInfo, err error) error {
if err != nil {
return nil
}
if !fi.IsDir() {
if ignoreDotFile(path) {
return nil
}
tplName := t.generateTemplateNameFrom(absPath, path)
if strings.HasSuffix(path, ".amber") {
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return nil
}
// note t.New(tplName)
if _, err := compiler.CompileWithTemplate(t.New(tplName)); err != nil {
return err
}
} else {
t.AddTemplateFile(tplName, path)
}
}
return nil
}
filepath.Walk(absPath, walker)
}
示例2: main
func main() {
input := flag.Arg(0)
if len(input) == 0 {
fmt.Fprintln(os.Stderr, "Please provide an input file. (amberc input.amber)")
os.Exit(1)
}
cmp := amber.New()
cmp.PrettyPrint = prettyPrint
cmp.LineNumbers = lineNumbers
err := cmp.ParseFile(input)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
err = cmp.CompileWriter(os.Stdout)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
示例3: AddTemplateFile
func (t *GoHtmlTemplate) AddTemplateFile(name, path string) error {
// get the suffix and switch on that
ext := filepath.Ext(path)
switch ext {
case ".amber":
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return nil
}
if _, err := compiler.CompileWithTemplate(t.New(name)); err != nil {
return err
}
default:
b, err := ioutil.ReadFile(path)
if err != nil {
return err
}
return t.AddTemplate(name, string(b))
}
return nil
}
示例4: viewHandler
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[1:]
p, err := loadMarkdownPage(title)
if err != nil {
http.Redirect(w, r, "/error", http.StatusFound)
return
}
file, _ := ioutil.ReadFile("./config.json")
ps := PageStruct{
"",
"",
string(p[0:]),
readPagesDir()}
json.Unmarshal(file, &ps)
buff := bytes.NewBufferString("")
compiler := amber.New()
// Parse the input file
cerr := compiler.ParseFile("./layout.amber")
if cerr == nil {
// Compile input file to Go template
tmplHead, err := compiler.Compile()
if err == nil {
tmplHead.Execute(buff, ps)
fmt.Fprintf(w, buff.String())
} else {
log.Fatal(err)
}
}
}
示例5: AddTemplateFile
func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) error {
t.checkState()
// get the suffix and switch on that
ext := filepath.Ext(path)
switch ext {
case ".amber":
templateName := strings.TrimSuffix(name, filepath.Ext(name)) + ".html"
compiler := amber.New()
b, err := afero.ReadFile(hugofs.Source(), path)
if err != nil {
return err
}
// Parse the input data
if err := compiler.ParseData(b, path); err != nil {
return err
}
if _, err := compiler.CompileWithTemplate(t.New(templateName)); err != nil {
return err
}
case ".ace":
var innerContent, baseContent []byte
innerContent, err := afero.ReadFile(hugofs.Source(), path)
if err != nil {
return err
}
if baseTemplatePath != "" {
baseContent, err = afero.ReadFile(hugofs.Source(), baseTemplatePath)
if err != nil {
return err
}
}
return t.AddAceTemplate(name, baseTemplatePath, path, baseContent, innerContent)
default:
if baseTemplatePath != "" {
return t.AddTemplateFileWithMaster(name, path, baseTemplatePath)
}
b, err := afero.ReadFile(hugofs.Source(), path)
if err != nil {
return err
}
jww.DEBUG.Printf("Add template file from path %s", path)
return t.AddTemplate(name, string(b))
}
return nil
}
示例6: AddTemplateFile
func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) error {
// get the suffix and switch on that
ext := filepath.Ext(path)
switch ext {
case ".amber":
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return nil
}
if _, err := compiler.CompileWithTemplate(t.New(name)); err != nil {
return err
}
case ".ace":
b, err := ioutil.ReadFile(path)
if err != nil {
return err
}
var base, inner *ace.File
name = name[:len(name)-len(ext)] + ".html"
if baseTemplatePath != "" {
b2, err := ioutil.ReadFile(baseTemplatePath)
if err != nil {
return err
}
base = ace.NewFile(baseTemplatePath, b2)
inner = ace.NewFile(path, b)
} else {
base = ace.NewFile(path, b)
inner = ace.NewFile("", []byte{})
}
rslt, err := ace.ParseSource(ace.NewSource(base, inner, []*ace.File{}), nil)
if err != nil {
t.errors = append(t.errors, &templateErr{name: name, err: err})
return err
}
_, err = ace.CompileResultWithTemplate(t.New(name), rslt, nil)
if err != nil {
t.errors = append(t.errors, &templateErr{name: name, err: err})
}
return err
default:
b, err := ioutil.ReadFile(path)
if err != nil {
return err
}
return t.AddTemplate(name, string(b))
}
return nil
}
示例7: hello
func hello(w http.ResponseWriter, r *http.Request) {
compiler := amber.New()
compiler.ParseFile("tpl/index.amber")
tpl, err := compiler.Compile()
if err != nil {
fmt.Fprint(w, "Error: %v", err)
return
}
tpl.Execute(w, map[string]interface{}{"date": time.Now().Format("Mon Jan 2 2006")})
}
示例8: Compile
// Implementation of the TemplateCompiler interface.
func (this *AmberCompiler) Compile(f string) (templates.Templater, error) {
// amber.CompileFile creates a new compiler each time. To limit the number
// of allocations, reuse a compiler.
if this.c == nil {
this.c = amber.New()
}
this.c.Options = this.Options
if err := this.c.ParseFile(f); err != nil {
return nil, err
}
return this.c.Compile()
}
示例9: compile_template
func compile_template(n string) *template.Template {
compiler := amber.New()
err := compiler.ParseFile(fmt.Sprintf("views/%v", n))
if err != nil {
log.Fatalf("Bad template: %v: %v\n", n, err)
}
tpl, err := compiler.Compile()
if err != nil {
log.Fatalf("Error compiling template: %v: %v\n", n, err)
}
return tpl
}
示例10: getTemplate
func getTemplate() *template.Template {
// template.Must(tmpl.Parse(status_server.ServerTemplate))
// Amber template compiler
compiler := amber.New()
compiler.Options.PrettyPrint = false
compiler.Options.LineNumbers = false
// err := compiler.Parse(status_server.ServerTemplateAmber)
err := compiler.Parse(ServerTemplateAmber)
if nil != err {
log.Println(err)
}
return template.Must(compiler.Compile())
}
示例11: form
func form(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
compiler := amber.New()
compiler.ParseFile("tpl/form.amber")
tpl, err := compiler.Compile()
if err != nil {
serveError(w, err)
}
tpl.Execute(w, map[string]interface{}{})
} else if r.Method == "POST" {
if err := r.ParseForm(); err != nil {
serveError(w, err)
}
str := html.EscapeString(r.Form.Get("str"))
fmt.Fprint(w, Reverse(str))
}
}
示例12: AddTemplateFile
func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) error {
// get the suffix and switch on that
ext := filepath.Ext(path)
switch ext {
case ".amber":
templateName := strings.TrimSuffix(name, filepath.Ext(name)) + ".html"
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return err
}
if _, err := compiler.CompileWithTemplate(t.New(templateName)); err != nil {
return err
}
case ".ace":
var innerContent, baseContent []byte
innerContent, err := ioutil.ReadFile(path)
if err != nil {
return err
}
if baseTemplatePath != "" {
baseContent, err = ioutil.ReadFile(baseTemplatePath)
if err != nil {
return err
}
}
return t.AddAceTemplate(name, baseTemplatePath, path, baseContent, innerContent)
default:
b, err := ioutil.ReadFile(path)
if err != nil {
return err
}
return t.AddTemplate(name, string(b))
}
return nil
}
示例13: compile
func compile(dir string) *template.Template {
t := template.New(dir)
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
r, err := filepath.Rel(dir, path)
if err != nil {
return err
}
ext := filepath.Ext(r)
if ext == ".tmpl" {
buf, err := ioutil.ReadFile(path)
if err != nil {
panic(err)
}
name := (r[0 : len(r)-len(ext)])
tmpl := t.New(filepath.ToSlash(name))
// Bomb out if parse fails. We don't want any silent server starts.
template.Must(tmpl.Parse(string(buf)))
} else if ext == ".amber" {
fmt.Println("amber")
compiler := amber.New()
err := compiler.ParseFile(path)
if err != nil {
panic(err)
}
name := (r[0 : len(r)-len(ext)])
tmpl := t.New(filepath.ToSlash(name))
template.Must(compiler.CompileWithTemplate(tmpl))
}
return nil
})
return t
}
示例14: ShowNodes
func ShowNodes(w http.ResponseWriter, req *http.Request) {
ns, _ := GetNodes()
var node_data map[string][]node = make(map[string][]node, 0)
var nodes []node = make([]node, 0, 1)
for _, n := range ns {
reports := make([]node_report, 0, 2)
for name, report := range n.Reports {
var kv_pairs []string = make([]string, 0, 2)
for key, value := range report {
kv_pairs = append(kv_pairs, key+"="+value)
}
kv_str := strings.Join(kv_pairs, ", ")
rep := node_report{name, kv_str, "success"}
reports = append(reports, rep)
}
nodes = append(nodes, node{n.System["node_name"], reports, "success"})
}
node_data["Nodes"] = nodes
compiler := amber.New()
err := compiler.ParseFile("templates/index.amber")
if err != nil {
io.WriteString(w, "Amber parse error!\n"+err.Error())
return
}
tpl, err := compiler.Compile()
if err != nil {
io.WriteString(w, "Amber compile error!\n"+err.Error())
return
}
tpl.Execute(w, node_data)
} // End ShowNodes. ShowNodes should go somewhere else!
示例15: loadTemplates
func (t *GoHtmlTemplate) loadTemplates(absPath string, prefix string) {
walker := func(path string, fi os.FileInfo, err error) error {
if err != nil {
return nil
}
if !fi.IsDir() {
if ignoreDotFile(path) {
return nil
}
tplName := t.generateTemplateNameFrom(absPath, path)
if prefix != "" {
tplName = strings.Trim(prefix, "/") + "/" + tplName
}
// TODO move this into the AddTemplateFile function
if strings.HasSuffix(path, ".amber") {
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return nil
}
if _, err := compiler.CompileWithTemplate(t.New(tplName)); err != nil {
return err
}
} else {
t.AddTemplateFile(tplName, path)
}
}
return nil
}
filepath.Walk(absPath, walker)
}