Posting math in Blogger posts can be tricky.

Luckily, images can be inlined in HTML:

```
<img src="data:image/png;base64,iVBORw0KGgoAAAA...
```

This code will be readable by major browsers including IE.

Knowing that, one can set up a toolchain that extracts LaTeX math declarations from source, processes them with TeX, and embeds the resulting PNGs in the HTML output.

For example, the following:

```
$$\begin{align}
\left(1+x\right)^n =& 1 + nx + \frac{n\left(n-1\right)}{2!}x^2 +\\
+& \frac{n\left(n-1\right)\left(n-2\right)}{3!}x^3 +\\
+& \frac{n\left(n-1\right)\left(n-2\right)\left(n-3\right)}{4!}x^4 +\\
+& \dots
\end{align}$$
```

Becomes:

Unfortunately Pandoc does not do this inlining, nor does it interface TeX. This is a design decision, as Pandoc tries to be zero-dependency.

The solution I came up with involves hacking the `texvc`

OCaml program that ships with Wikipdia. I now have it do XML processing, substituting code of the form `[EQ]\frac{1}{2}[/EQ]`

to an embedded image. The whole toolchain is still unfortunately quite ugly, and looks like this:

```
pandoc --standalone --no-wrap --gladtex $@ \
| xmllint --dropdtd --recover - 2/dev/null \
| texmi \
| tidy --show-body-only true - 2/dev/null \
| pandoc -f html -t html --no-wrap
```

So the first step is converting from markdown to HTML with `[EQ]`

-style mathematics (`--gladtex`

), then the output is `xmllint`

ed so that the parser does not choke, then `temxi`

renders the mathematics into HTML or inline images, and finally `tidy`

makes sure the XML output is OK HTML. The last line is only necessary for Blogger's non-standard whitespace handling.

I will try to improve on this as time permits.

## No comments:

## Post a Comment