I've been using this nifty trick to store blocks of metadata, be it JSON or fragments of HTML:
<script type="text/html">
    <p>This gets something done to it later.</p>
</script>
<script type="application/json">
    {"name":"Niet","species":"Absol"}
</script>
JavaScript then gets these tags and uses their contents in some way.
This works great. I only have one problem...
<script type="text/html">
    <p>This is a template for something used in many places.</p>
    <p>Rather than having, say, a hundred copies of basically the same thing,
        this lets me define the HTML once and then re-use it as needed,
        while allowing for easy editing because it doesn't need mass escaping.</p>
    <p>However, what if I want a template that contains a template?</p>
    <script type="text/html">
        <p>Nested scripts?</p>
        <p>That's not gonna work.</p>
    </script>
</script>
So what do? Is there another tag, maybe a new HTML5 feature I haven't heard of yet, that lets me define template and other data in this way?