Подскажите принцип написания конвертера кода
Думаю, ответ на ваш вопрос XSLT.
По-сути, если вы можете заменить одни вхождения в строках на другие, то лучше вытянуть данные из (x)html структуры и хранить их отдельно. После вы сможете выводить их в любом представлении. Как вытягивать? Как посоветовали выше XSLT, если вы больше знакомы с синтаксисом селекторов можно использовать библиотеку вроде symfony/CssSelector