I did some benchmarks and found out that the real slowdown is not the LaTeX rendering itself, but calling KaTeX from Ruby. In the previous version, every LaTeX expression meant a separate KaTeX call. Now, I find all expressions on a page and render them in a single bulk KaTeX call. As a result, my personal blog—which contains ~5k LaTeX expressions with nothing cached now builds in 7 seconds instead of 92 seconds.
I did some benchmarks and found out that the real slowdown is not the LaTeX rendering itself, but calling KaTeX from Ruby. In the previous version, every LaTeX expression meant a separate KaTeX call. Now, I find all expressions on a page and render them in a single bulk KaTeX call. As a result, my personal blog—which contains ~5k LaTeX expressions with nothing cached now builds in 7 seconds instead of 92 seconds.
I also added more configuration options and included some bug fixes. Here is full changelog: https://github.com/yagarea/jektex/blob/master/changelog.md
This rewrite is already published on RubyGems: https://rubygems.org/gems/jektex