Lord no. Check out erlydtl [1] if you haven’t already. It’s pretty straightforward to render your erlydtl template and pass it into the
#template{ text=RenderedTemplate } Nitrogen element.
If you do this, sections like [[[page:make_button(button_type)]]] are then rendered through the Nitrogen engine (so erlydtl is producing a Nitrogen template, not an HTML page). make_button/1 then returns a #button{} with appropriate attributes.
Form elements just need to have the correct class. So if you’re calling wf:q(email_address) you’ll want to give your textbox input the class wfid_email_address in your DTL file.
Note that the text field of the template record is relatively new; I think you’ll have to pull from master to make use of it. Also, I do this enough that I recently made a little helper library to work with the DTL templates. [2]
None of this is to cast shade on Nitrogen’s HTML generating ability. There are benefits to DTL and Nitrogen, a hybrid approach works really well for me. (And honestly, make Bootstrap easier to work with.)
b.