Пример #1
0
// 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()),
	})
}
Пример #2
0
// 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
}