Just an idea.
Provide a (HTML5?) block type which enables you to select which tags to use for title
,body
and maybe other fields, e.g.
<article {{ block_class }}>
<header>
<{{ title_tag }}>{{ title }}</{{ title_tag }}>
</header>
<section>
<{{ subtitle_tag }}>{{ subtitle }}</{{ subtitle_tag>
<div>
{{ block_content|raw }}
</div>
</article>
Where the various tags are defined in the configuration:
blocks:
# general block options..
header_tags: [ h1, h2, h3, h4, h5, h6]
subtitle_tags: [ h1, h2, h3, h4, h5, h6]
So that the tag types and maybe other options are configurable from the block form in admin.