code: public <T extends Builder<? extends TemplateParser>> T template(Class<T> builderClass) {
  		return templateBuilderHelper.register(builderClass);
  	}
docs: Registers and configures a {@link TemplateParser} through a dedicated
  builder.
  
  For example:
  
  <pre>
  .register(ThymeleafSmsBuilder.class)
  .detector(new ThymeleafEngineDetector());
  </pre>
  
  <p>
  Your {@link Builder} may implement {@link VariantBuilder} to handle
  template {@link Variant}s (used for {@link MultiTemplateContent} that
  provide a single path to templates with different extensions for
  example).
  </p>
  
  <p>
  Your {@link Builder} may also implement {@link DetectorBuilder} in order
  to indicate which kind of templates your {@link TemplateParser} is able
  to parse. If your template parse is able to parse any template file you
  are using, you may not need to implement {@link DetectorBuilder}.
  </p>
  
  <p>
  In order to be able to keep chaining, you builder instance may provide a
  constructor with two arguments:
  <ul>
  <li>The type of the parent builder ({@code &lt;P&gt;})</li>
  <li>The {@link EnvironmentBuilder} instance</li>
  </ul>
  If you don't care about chaining, just provide a default constructor.
  
  @param builderClass
  the builder class to instantiate
  @param <T>
  the type of the builder
  @return the builder to configure the implementation