А можно вместо замены '<' на "[меньше, чем]" просто в слове "code" которое внутри текста html заменить латинскую букву на такую же по изображению русскую. Вот ниже я заменил латинское 'e' на русское 'е':
<pre>
<code class="language-python">
def factorial(n):
if n == 1:
return n
return n * factorial(n-1)
</codе>
</pre>
Безусловно при copy'n'paste это создаст проблемы, но визуально будет выглядеть "как надо".