// Renders a templated asset in dev-mode. This simply embeds external script tags // for the source elements. func renderForDev(w io.Writer, root string, c *content, cfg *config.Config) error { t, err := template.ParseFiles( filepath.Join(root, c.template)) if err != nil { return err } json, err := cfg.ToJsonString() if err != nil { return err } var buf bytes.Buffer fmt.Fprintf( &buf, "<script src=\"/js/JSXTransformer-%s.js\"></script>\n", ReactVersion) for _, path := range c.sources { fmt.Fprintf( &buf, "<script type=\"text/jsx\" src=\"/%s\"></script>", path) } return t.Execute(w, map[string]interface{}{ "ReactVersion": ReactVersion, "jQueryVersion": JQueryVersion, "ReposAsJson": json, "Source": template.HTML(buf.String()), }) }
// Create an http.Handler for prd-mode. func newPrdHandler(cfg *config.Config) (http.Handler, error) { for _, cnt := range contents { a, err := Asset(cnt.template) if err != nil { return nil, err } cnt.tpl, err = template.New(cnt.template).Parse(string(a)) if err != nil { return nil, err } } json, err := cfg.ToJsonString() if err != nil { return nil, err } return &prdHandler{ content: contents, cfg: cfg, cfgJson: json, }, nil }