package present import ( "errors" "html/template" "path/filepath" "strings" ) func init() { Register("html", parseHTML) } func parseHTML(ctx *Context, fileName string, lineno int, text string) (Elem, error) { p := strings.Fields(text) if len(p) != 2 { return nil, errors.New("invalid .html args") } name := filepath.Join(filepath.Dir(fileName), p[1]) b, err := ctx.ReadFile(name) if err != nil { return nil, err } return HTML{text, template.HTML(b)}, nil } type HTML struct { Cmd string // original command from present source template.HTML } func (s HTML) PresentCmd() string { return s.Cmd } func (s HTML) TemplateName() string { return "html" }