作成日:2024-05-01
研究や数検等のアウトプットで数式を使った記事を投稿したいが、
今のコードであるとNotionで書いた上記の式はnotion2mdを使っているので以下のように変換されそのまま表示されてしまう。
$$ X^n+Y^n=Z^n $$
それをうまくreact-markdownで数式にもどしたい。
Notionからmdへの変換は以下のライブラリ(notion2md)
react-markdownはすでに使っているので説明はしない
Notionの内容をreactで表示する方法は以下に軽くまとめてます。
remark-mathとrehype-katexをインストールする
npm install remark-math rehype-katex
公式がこれ
import rehypeKatex from 'rehype-katex' import remarkMath from 'remark-math' import 'katex/dist/katex.min.css'// <-これをimportしないと数式がなぜか2つ表示される // 省略 // remarkPluginsにremarkMath、rehypePluginsにrehypeKatexを追加する <ReactMarkdown remarkPlugins={[remarkGfm, remarkMath]} rehypePlugins={[rehypeRaw, rehypeKatex]} className='markdown' components={ { h2: H2, h3: H3, ul: Ul, code: Code, a: A } }> {data.body} </ReactMarkdown> // 省略
コメントアウトで注釈を入れたが、以下のcssをインポートしないと表示しなくてよい文字列が表示されてしまう
import 'katex/dist/katex.min.css'
↓こんな感じで表示されちゃう
Profile
地方公立大学院修士2年。
今年は「知識の幅を縦に広げること」が目標で、低レイヤ、OS、ミドルウェア、コンテナ、ネットワーク、データベース、SEO対策の勉強しています。
情報処理安全確保支援士と応用情報は合格しています。
研究として楕円曲線暗号、耐量子暗号、格子暗号や格子基底簡約アルゴリズム、同種写像暗号について学習しています。
普段はアルバイトでFlutter/Go/GCP/Next.js/Reactを使っています。