Skip to content

Instantly share code, notes, and snippets.

@mcleonard
Last active November 25, 2024 05:39
Show Gist options
  • Save mcleonard/0433c1eca1d56489259118524824f159 to your computer and use it in GitHub Desktop.
Save mcleonard/0433c1eca1d56489259118524824f159 to your computer and use it in GitHub Desktop.
Render math expressions in Markdown with Mathjax as a React component
import ReactMarkdown from 'react-markdown';
import MathJax from 'react-mathjax';
import RemarkMathPlugin from 'remark-math';
function MarkdownRender(props) {
const newProps = {
...props,
plugins: [
RemarkMathPlugin,
],
renderers: {
...props.renderers,
math: (props) =>
<MathJax.Node formula={props.value} />,
inlineMath: (props) =>
<MathJax.Node inline formula={props.value} />
}
};
return (
<MathJax.Provider input="tex">
<ReactMarkdown {...newProps} />
</MathJax.Provider>
);
}
export default MarkdownRender
@iambasantarai
Copy link

If you are using

import "katex/dist/katex.min.css";

and facing Failed to resolve import "katex/dist/katex.min.css" from "src/components/YourComponent.tsx". Does the file exist?

You can download the katex.min.css file, move the minified css file to your styles directory and manually import it to your react component.

  • Download the minified css file
$ wget https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css
  • Import it to your component
import '../your/styles/directory/path/katex.min.css';

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment