code: func (h *DeployHandler) AddTemplateTheme(text string) error {
  	tpl, err := template.New("root").Parse(text + tplHTML())
  	if err != nil {
  		return err
  	}
  	h.tplMu.Lock()
  	defer h.tplMu.Unlock()
  	h.tpl = tpl
  	return nil
  }
docs: // TODO(mpl): AddTemplateTheme is a mistake, since the text argument is user
  // input and hence can contain just any field, that is not a known field of
  // TemplateData. Which will make the execution of the template fail. We should
  // probably just somehow hardcode website/tmpl/page.html as the template.
  // Or better, probably hardcode our own version of website/tmpl/page.html,
  // because we don't want to be bound to whatever new template fields the
  // website may need that we don't (such as .Domain).
  // See issue #815, and issue #985.
  // AddTemplateTheme allows to enhance the aesthetics of the default template. To that
  // effect, text can provide the template definitions for "header", "banner", "toplinks", and
  // "footer".