Du brauchst schon einen Parser, wenn das vernünftig umgesetzt sein soll, so dass auch sinnvolles und fehlerfreies HTML dabei herauskommt.
Wobei wir wieder dabei wären: warum HTML5 eine schlechte Idee ist und es viel coolere wäre, wenn man bei den SGML-Wurzeln bliebe - somit wäre z.B. sowas in der DTD denkbar:
<!ENTITY h2-open "<h2>">
<!ENTITY h2-close "</h2>">
<!SHORTREF h2qm1 "==" h2-open>
<!SHORTREF h2qm2 "==" h2-close>
<!USEMAP h2qm1 body>
<!USEMAP h2qm2 h2>
Damit würde folgendes Konstrukt
<body>
==foo==
</body>
gleichbedeutend zu diesem sein
<body>
<h2>foo</h2>
</body>