It wasn't horribly difficult to figure out, although MathJax API docs are pretty garbage. I wanted to run it async but that didn't turn out very good with the hover tooltip, so I opted out of that. You might notice that it doesn't update a specific element anymore. That's because MathJax3 caches current vs changed math, so it's not necessary to update a specific element. Additionally, their promise().then() API which is for updating a specific element is only when you want to update one specific thing that changed, versus all things that changed... additionally, I couldn't figure it out.