I have multiple Page Template Features.
I need a block of HTML to be inserted into each one.
Ideally I would like to have another Page Template Feature embedded in all the others - but it seems this isn't possible.
What is the best way to do this so the inserted HTML isn't repeated and can be edited in a single place?
You could create an XSLT Function and put your block of HTML in that, then insert that XSLT Function into the Page Template Features.
To create the XLST function go to the Functions perspective, right-click the XSLT Functions node in the content tree, and select Add XSLT Function - follow the wizard.
Now you can add your HTML content directly to the template, just under the <!-- markup placed here will be the output of this rendering -->
comment.
The XSLT Function can do many things for you by loading XML data from the system and transforming that in any way you like, but this is not necessary to achieve this purpose.
To add your function to the Page Template Features, edit the Template Feature and add this code:
<f:function xmlns:f="http://www.composite.net/ns/function/1.0" name="YourNamespace.YourFunctionName" />
This will enable you to have a centralized place to maintain your block of HTML, but it does somewhat defeat the purpose of Page Template Features, as their content would now have to be maintained inside an XSLT function