TeX4ht was created by Eitan Gurari, who sadly died in 2009. It is still under active development, but upgrading is difficult.

Unlike lwarp, the idea is that you simply run somecommand sourcefile.tex with a bunch of options without having to make changes to your tex file. I tried this with the same tex file I used for lwarp - no fancy packages, a couple of images - with these results.

MathJax mode

There is some support for producing html files containing tex commands that will be rendered with MathJax even in the version of TeX4ht in the debian repos: htlatex sourcefile "html,mathjax" does it. You might think this would be easier to implement (since there’s no need to translate LaTeX to mathml) and it looks good after one or two tweaks, but there’s a serious problem: label and ref don’t work. I submitted a bug report and Michal Hoftich replied saying this is “not easily solvable” and linking to this tex.se question. There were a few other issues: one of the tex macros (the only one with two arguments) wouldn’t render, and double primes look pretty bad unless replaced with ^{\prime\prime}. qedhere doesn’t work either. The images were OK once I included the file extension to the includegraphics command, and svg images worked fine. I gave up on improving it because of the ref problem though.

MathML rendered by MathJax

In a 2012 tex.se answer Michal gives some instructions for using TeX4ht to convert to mathml and then have that rendered by mathjax. He gives a sample cfg file, but for modern browsers you’ll need to change the link to the mathjax script to https if you want to put the output on an https webpage.

After saving the cfg file as michal.cfg you run

htlatex filename.tex "michal.cfg, charset=utf-8" " -cunihtf -utf8"

For some reason textrm causes a big problem (the output stops after the first textrm) and rm doesn’t work. Apart from this the output is good, even better than lwarp in some ways: no weird symbols for --- or for double primes (even if they don’t look great), all the macros work.

Conclusion

The second method worked pretty well and needed relatively few changes to the source file. It is a shame not to have the tex commands embedded in the output though - hopefully there will be a proper release in the future with improvements to the mathjax mode. It’s certainly possible to do references in mathjax, since \ref and \label work automatically and automatic equation numbering now exists too (but isn’t enabled by default).