code: func (t *templateHandler) MarkReady() error {
  	if err := t.postTransform(); err != nil {
  		return err
  	}
  
  	if t.html.clone == nil {
  		t.html.clone = template.Must(t.html.t.Clone())
  		t.html.cloneClone = template.Must(t.html.clone.Clone())
  	}
  	if t.text.clone == nil {
  		t.text.clone = texttemplate.Must(t.text.t.Clone())
  		t.text.cloneClone = texttemplate.Must(t.text.clone.Clone())
  	}
  
  	return nil
  }
docs: // MarkReady marks the templates as "ready for execution". No changes allowed
  // after this is set.
  // TODO(bep) if this proves to be resource heavy, we could detect
  // earlier if we really need this, or make it lazy.