KaTeX \tag hack

HTML

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.js"></script>
<div class="tex">
  a^2 + b^2 = c^2 \tag{1}
</div>
<div class="tex">
  \begin{pmatrix} x \\ y \\ z \end{pmatrix} \tag{2}
</div>
<div class="tex">
  \begin{aligned} x = 1 \\ y = 2 \\ z = 4 \end{aligned} \tag{3}
</div>

CSS

.katex-display {
  position: relative;
}

.katex-display .katex .eqno {
  display: inline-block;
  position: absolute;
  right: 0;
}

JavaScript

var tex = document.querySelectorAll('div.tex');
for (var i = 0; i < tex.length; ++i) {
  katex.render(tex[i].textContent, tex[i], {
    displayMode: true,
    macros: {
      '\\tag': '\\pod\\text'
    }
  });
}

var eqno = document.querySelectorAll(".katex span > span.mspace.quad");
for (var i = 0; i < eqno.length; ++i) {
  if (eqno[i].parentNode.className)
    continue;
  var quad = eqno[i];
  var span = quad.parentNode;
  var text = span.nextSibling;
  var pare = text.nextSibling;
  span.appendChild(text);
  span.appendChild(pare);
  span.className = 'eqno';
}