Basically, the .html files get as small as:
<tr valign='top'>\n <td><nobr><select name='ContactType'>%(TypeOptions)s</select></nobr></td>\n <td><input type='text' name='ContactNum' value='%(Number)s' size='20' /></td>\n</tr>
...and a Python script uses an "assembler" class to interpolate values. Working very well so far.