I use Jade to generate templates consumed by AngularJS because I hate writing plain HTML. It looks something like:
.control-group(
ng-form
name="emailGroup"
ng-class="{"ng-error": emailGroup.$invalid}"
)
label.control-label Email
.controls
input(
type="email"
ng-model="user.email"
required
placeholder="you@example.com"
focus-on='focusEmail'
)
… which I think is a lot cleaner than plain HTML.