KaTex를 사용하여 Nextjs로 수학 공식을 렌더링하는 방법은 무엇입니까?
이를 위해 KaTex 수학 조판 라이브러리를 사용하고 contentlayer 파일 소스를 사용합니다.
예를 들어 피타고라스 정리의 공식을 렌더링합니다.
패키지 설치
Nextjs가 설정되었다고 가정하면 다음 패키지를 설치해야 합니다.
yarn add contentlayer next-contentlayer
remark-math
및 rehype-katex
플러그인을 설치합니다.yarn add remark-math rehype-katex
콘텐츠 계층 구성
next.config.js
에서 withContentlayer
로 구성 옵션을 래핑합니다.import { withContentlayer } from 'next-contentlayer'
export default withContentlayer({})
프로젝트의 루트에서 파일
contenlayer.config.js
을 만들고 아래 구성을 추가합니다.import { defineDocumentType, makeSource } from 'contentlayer/source-files'
const Post = defineDocumentType(() => ({
name: 'Post',
filePathPattern: `**/*.mdx`,
contentType: "mdx",
fields: {
title: { type: 'string', required: true },
},
}))
export default makeSource({
contentDirPath: 'posts',
documentTypes: [Post]
})
이 파일에서 문자열인 제목 필드로 문서 유형
Post
을 정의했습니다. contentDirPath
는 contentlayer에게 소스 MDX 파일의 위치를 알려줍니다.내용으로 정리 추가
MDX 파일을 만듭니다
posts/home.mdx
.---
title: "Pythagorean theorem"
---
a^2 + b^2 = c^2
a = side of right triangle
b = side of right triangle
c = hypotenuse
렌더 홈 페이지
/pages/index.js
에 아래 코드를 추가합니다.import { useMDXComponent } from 'next-contentlayer/hooks';
import { allPages } from 'contentlayer/generated';
export const getStaticProps = () => {
const page = allPages.find((page) => page._raw.sourceFileName === "home.mdx")
return { props: { page } }
}
export default function HomePage({ page }) {
const MDXContent = useMDXComponent(page.body.code)
return (
<div>
<h1>{page.title}</h1>
<MDXContent />
</div>
)
}
렌더링 수식
거의 다 왔습니다! 앱을 부팅하면 렌더링 중임을 알 수 있습니다
a^2 + b^2 = c^2
. 대신 다음과 같은 수식을 렌더링하려고 합니다.작동하게 하려면 contentlayer 구성에
remark-math
및 rehype-katex
를 추가하십시오.import { makeSource } from 'contentlayer/source-files';
import remarkMath from "remark-math";
import rehypeKatex from "rehype-katex";
export default makeSource({
// ...
mdx: {
remarkPlugins: [remarkMath],
rehypePlugins: [rehypeKatex],
},
})
플러그인은 KaTex를 HTML로 변환합니다. 수식의 스타일을 지정하려면 CSS 파일을 로드해야 합니다.
import Head from "next/head";
export default function HomePage({ page }) {
return (
<>
<Head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossOrigin="anonymous">
</Head>
...
</>
)
}
이것이 바로 MDX에서 KaTex를 구현한 것입니다.
Reference
이 문제에 관하여(KaTex를 사용하여 Nextjs로 수학 공식을 렌더링하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kouliavtsev/how-to-use-katex-to-render-math-formulas-with-nextjs-38p1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)