...
1
2
3
4
5 package present
6
7 import (
8 "errors"
9 "html/template"
10 "path/filepath"
11 "strings"
12 )
13
14 func init() {
15 Register("html", parseHTML)
16 }
17
18 func parseHTML(ctx *Context, fileName string, lineno int, text string) (Elem, error) {
19 p := strings.Fields(text)
20 if len(p) != 2 {
21 return nil, errors.New("invalid .html args")
22 }
23 name := filepath.Join(filepath.Dir(fileName), p[1])
24 b, err := ctx.ReadFile(name)
25 if err != nil {
26 return nil, err
27 }
28 return HTML{text, template.HTML(b)}, nil
29 }
30
31 type HTML struct {
32 Cmd string
33 template.HTML
34 }
35
36 func (s HTML) PresentCmd() string { return s.Cmd }
37 func (s HTML) TemplateName() string { return "html" }
38
View as plain text