Next.js 프로젝트에서 Remark Markdown 변환기를 사용하는 방법
7927 단어 reactwebdevjavascriptnode
Remark-react은 Markdown을 React로 변환하는 패키지이며 Next.js 애플리케이션과 함께 작동합니다. 개발자가
dangerouslySetInnerHTML
를 사용하도록 강제하지 않는다는 점에서 remark-html 과 다릅니다.솔직히 Markdown을 Next.js와 함께 사용하고 싶다면 remark-react를 사용해 보는 것이 좋습니다. 그렇다면 다음 사항도 알고 있어야 합니다.
Remark-react will create all links using the
<a>
component whereas in Next.js you should be using the<Link>
component fromnext/link
.
Next.js 프로젝트에서 적절한
<Link>
구성 요소를 사용하는 것은 전체 리디렉션 없이 페이지의 내용과 URL을 변경하므로 중요하지만 앵커( <a>
) 태그를 사용하면 페이지가 다시 로드되고 React 전체 렌더링을 수행해야 합니다. 이렇게 하면 응용 프로그램이 제대로 수행되지 않고 느리게 나타날 수 있습니다.remark-react를 올바르게 사용하도록 Next.js 애플리케이션 구성
예는 GitHub에서 가져온 것입니다.
React 변환에 Markdown 추가
printMarkdown.js on GitHub
세 가지 NPM 패키지가 필요합니다.
npm i -s unified remark-parse remark-react
추가한 후에는 모두 React 앱으로 가져옵니다.
import unified from 'unified';
import parse from 'remark-parse';
import remark2react from 'remark-react';
다음으로 다음 코드를 추가하여 Markdown을 React 구성 요소로 변환합니다.
const content = unified()
.use(parse)
.use(remark2react)
.processSync(markdown).result;
위의 코드 블록에서 Next.js 애플리케이션은 이제 Markdown을 React로 렌더링해야 합니다.
로컬 및 외부 연결을 처리하기 위해 CustomLink 추가
이제 remark-react 구성에 사용자 지정 링크 구성 요소를 추가하여 로컬 링크에
<Link>
구성 요소를 사용하고 외부 링크에 <a>
구성 요소를 사용하도록 지시할 수 있습니다.customLink.js on GitHub
다음 내용과 함께 프로젝트에
customLink.js
라는 새 구성 요소를 추가합니다.import Link from 'next/link';
export default function CustomLink({ children, href }) {
// If the link is local it will start with a "/"
// Otherwise it'll be something like "https://"
return href.startsWith('/') || href === '' ? (
<Link href={href}>
<a>
{children}
</a>
</Link>
) : (
<a
href={href}
target="_blank"
rel="noopener noreferrer"
>
{children}
</a>
);
}
CustomLink
구성 요소는 전달된 <Link>
에 href
와 같은 로컬 대상이 있는 경우 /about
를 렌더링하지만 <a>
와 같은 외부 대상이 있는 경우 https://dev.to
를 렌더링합니다.CustomLink 구성 요소를 사용하도록 Markdown 변환기 업데이트
마지막으로 링크를 렌더링할 때
CustomLink
구성 요소를 사용하도록 Markdown to React 코드를 업데이트해야 합니다. 이는 remark-react.use
행에 구성 개체를 추가하여 수행할 수 있습니다. const content = unified()
.use(parse)
.use(remark2react, {
remarkReactComponents: {
// Use CustomLink instead of <a>
a: CustomLink,
},
})
.processSync(markdown).result;
요약
이것이 Next.js 프로젝트에서 React-remark를 사용하기 위해 필요한 모든 것입니다. 예를 들어
img
태그를 보다 지능적인 것으로 바꾸려는 경우(예: 이미지 압축?) 구성 개체를 사용하여 앵커 HTML 태그 이상의 사용자 정의 구성 요소를 추가할 수 있습니다.이것이 도움이 되었다면 저에게 반응이나 댓글을 남겨주세요.
읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(Next.js 프로젝트에서 Remark Markdown 변환기를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jameswallis/how-to-use-the-remark-markdown-converters-with-next-js-projects-a8a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)