You’d presumably need to perform a pass on the template before rendering a more complex set of entry fields instead of a monolithic text area.
Then post process it to insert the text in the right spots.
You’d need some markup standard to identify the headings/text entry points …
That could be a more lightweight solution as everything would be kept in the front end world. (everything would still be stored as a single text post).
The major downside of that approach would be that it would be much more difficult to search and aggregate this way …
Sounds like a fun project