Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsung-ju/eleventy-plugin-mathjax
Eleventy plugin for server-side MathJax rendering
https://github.com/tsung-ju/eleventy-plugin-mathjax
eleventy eleventy-plugin latex math mathjax
Last synced: 10 days ago
JSON representation
Eleventy plugin for server-side MathJax rendering
- Host: GitHub
- URL: https://github.com/tsung-ju/eleventy-plugin-mathjax
- Owner: tsung-ju
- License: apache-2.0
- Created: 2021-07-21T04:08:07.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-19T20:25:24.000Z (about 3 years ago)
- Last Synced: 2024-09-09T22:39:53.294Z (4 months ago)
- Topics: eleventy, eleventy-plugin, latex, math, mathjax
- Language: JavaScript
- Homepage:
- Size: 40 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# eleventy-plugin-mathjax
Eleventy plugin for server-side MathJax rendering.
## Installation
```sh
npm install eleventy-plugin-mathjax --save-dev
``````js
const mathjaxPlugin = require("eleventy-plugin-mathjax");module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(mathjaxPlugin);
};
```## Usage
Use `$...$` for inline equations, `$$...$$` for block equations,
and `\$` for escaping the dollar sign.MathJax-style `\(...\)` and `\[...\]` are also supported,
but see below for caveat.### Caveat
In Markdown files, `\(`, `\[` and `\$` need to be written as `\\\(`, `\\\[` and `\\$` respectively.
This is due to that the plugin operates on the generated HTML, not directly on the source file.
Latex commands which start with a symbol (e.g. `\_`, `\,`, `\{`, `\<`) also need to be escaped.Alternatively, wrapping the latex code inside a html tag will stop the Markdown engine from processing the text,
eliminating the need for extra escaping.### Example
```md
This is a $\TeX$ example.
$$ 1 + 1 = 2 $$Equivalent to:
This is a \\\( \TeX \\\) example.
\\\[ 1 + 1 = 2 \\\]Alternatively, write
This is a \( \TeX \) example.
\[ 1 + 1 = 2 \]This is a dollar sign \\$.
This is also a dollar sign \$.
```## Options
Optionally pass in an options object as the second argument to addPlugin to further customize this plugin.
For example, to use the CommonHTML output format instead of SVG:
```js
eleventyConfig.addPlugin(mathjaxPlugin, {
output: "chtml",
chtml: {
fontURL:
"https://cdn.jsdelivr.net/npm/mathjax@3/es5/output/chtml/fonts/woff-v2",
},
});
```### Supported Fields
#### output
Output format for math equations. Supports `"svg"` and `"chtml"`. Defaults to `"svg"`.
#### tex
Options for MathJaX's TeX input processor.
Defaults to:
```js
{
packages: /* all packages */,
inlineMath: [
["$", "$"],
["\\(", "\\)"],
],
}
```See [here](https://docs.mathjax.org/en/latest/options/input/tex.html) for full options.
#### svg
Options for MathJaX's SVG output processor.
Defaults to:
```js
{
fontCache: "global",
}
```See [here](https://docs.mathjax.org/en/latest/options/output/svg.html) for full options.
#### chtml
Options for MathJaX's CommonHTML output processor. Defaults to `{}`.
See [here](https://docs.mathjax.org/en/latest/options/output/chtml.html) for full options.
#### liteAdaptor
Options for MathJaX's lite DOM adaptor. Useful for passing size hints to MathJaX, e.g. `{ fontSize: 18 }`. Defaults to `{}`.
See [here](https://github.com/mathjax/MathJax-src/blob/master/ts/adaptors/liteAdaptor.ts) for full options.