<button
  {{ with .id }}id="{{ . | urlize }}" {{ end }}
  {{ with .name }}name="{{ . | safeURL }}" {{ end }}
  {{ with .action }}formaction="{{ . | safeURL }}" {{ end }}
  {{ with .form }}form="{{ . }}" {{ end }}
  {{ with .value }}value="{{ . | safeHTMLAttr }}" {{ end }}
  {{ with .target }}formtarget="{{ . }}" {{ end }}
  {{ with .tabindex }}tabindex="{{ . }}" {{ end }}
  {{ with .onclick }}onclick={{ . | safeJS }} {{ end }}
  {{ if in (slice "true" "disabled") .disabled }}disabled {{ end }}
  {{ if in (slice "get" "post") .method }}formmethod="{{ .method }}" {{ end }}
  class="btn btn-{{ .type | default "default" }}{{ if eq .isghost "true" }} btn-ghost{{ end }}
  {{- if eq .isblock "true" }} btn-block{{ end }}
  {{- with .class }} {{ . }}{{ end }}"
>{{ .body }}</button>
