npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@pkasila/react-katex

v1.2.2

Published

ReactKatex is a React component which allows to render LaTeX formulas and in plain text using KaTeX

Downloads

14

Readme

@pkasila/react-katex

npm package Build Status Downloads Issues Code Coverage Commitizen Friendly Semantic Release

ReactKatex is a React component which allows to render LaTeX formulas and in plain text using KaTeX

Install

npm install @pkasila/react-katex

KaTeX stylesheets

Remember to include KaTeX's stylesheets:

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/katex.min.css">

Usage

import ReactKatex from '@pkasila/react-katex';

function Home() {
  return <ReactKatex>Example: $$v = 2$$</ReactKatex>
}

const latex = 'Example: $$v = 2$$';

function UseChildrenProp() {
  return <ReactKatex children={latex}></ReactKatex>
}

function EnforceDisplayMode() {
  return <ReactKatex displayMode={true}>Example: $v = 2$</ReactKatex>
}

function DifferentModes() {
  return <ReactKatex displayMode={true}>Example $\textbf{inline}$: $$v = 2$$</ReactKatex>
}

ReactKatex's MathML fallback mechanism

While Safari and Firefox support MathML, Chrome will support MathML Core by default only in mid-September 2022 with version 106, more details on the Chrome Platform Status. Right now MathML core is available in Chrome with a flag chrome://flags/#enable-experimental-web-platform-features

By default, ReactKatex uses htmlAndMathml output. It's done that way because still, some browsers don't support MathML at the moment. For these browsers, ReactKatex implements a fallback mechanism: if the browser doesn't support MathML but output is set to mathml, then ReactKatex will automatically switch to html output when passing options to KaTeX.

You can disable this behavior by passing the enforceOutput option set to true.

API

ReactKatex

custom output behavior

By default, it's set to htmlAndMathml. If you choose mathml then ReactKatex will run checks to validate that the client's browser supports MathML. If not, then it will switch to default htmlAndMathml renderer.

When using SSR, ReactKatex will consider that MathML is supported, so what you pass into output will stay as it is. But on the client-side while rendering the second time it may run check and switch from mathml to htmlAndMathml.

If you use Remix.JS and ReactKatex has mathml output and have user without MathML support, then it will behave like that:

  1. Server will render MathML
  2. Client will display MathML
  3. User interacts with the app (switches pages, or somehow causes component to rerender)
  4. Client rerenders ReactKatex with htmlAndMathml output

enforceOutput

enforceOutput option disables ReactKatex's MathML check. So, if you pass this property, then it won't switch to htmlAndMathml if you specified output as mathml in any possible case.

breakLine

By default, breakLine is set to false. But if you set it to true, then it will replace \n\n in your string with <br /> HTML tag. It may be useful in some cases.

KaTeX's options and format

ReactKatex renders formulas inside $ (inline-mode) or $$ (block-mode).

ReactKatex's options (props) are basically KaTeX's options here. All (or almost) are available.