프로젝트에서 코드 블럭 하이라이트 문제 해결하기: react-syntax-highlighter 사용법

2024. 10. 3. 13:26·프로젝트/Componique: UI 컴포넌트 라이브러리
728x90

코드를 작성하다 보면, 코드 블록을 하이라이트해서 가독성을 높이는 것이 중요합니다. 특히 기술 블로그나 문서 작성에서 코드를 더 잘 보여주기 위해 코드 하이라이트 기능을 자주 사용하죠. 이번 프로젝트에서도 MDX 파일에서 코드 블록을 잘 보여주기 위해 하이라이트 문제를 해결한 경험을 공유하려고 합니다.


문제: MDX 파일에서 코드 블록 하이라이트가 제대로 되지 않음

처음에는 MDX 파일에서 코드 블록을 작성했지만, 코드의 가독성이 떨어졌습니다. 코드 블록에 하이라이트가 제대로 적용되지 않았기 때문에, 이를 해결하기 위해 라이브러리를 찾아보게 되었습니다.

더보기

✅MDX 파일이란?

MDX는 Markdown과 JSX를 결합한 포맷입니다. Markdown은 간결하게 글을 작성할 수 있는 언어로, 주로 블로그나 문서 작성에 많이 사용됩니다. 한편, JSX는 React 컴포넌트를 작성하는 데 사용하는 문법입니다. MDX 파일은 Markdown 문법과 JSX를 함께 사용할 수 있어, 정적인 글 작성과 동적인 컴포넌트 렌더링을 동시에 구현할 수 있게 해줍니다.

가독성이 매우 떨어지고 꼻보기 싫게 생김.


=> 해결책: react-syntax-highlighter 라이브러리

제가 찾은 해결 방법은 react-syntax-highlighter라는 라이브러리를 사용하는 것이었습니다. 이 라이브러리는 다양한 프로그래밍 언어를 지원하고, 코드 블록을 예쁘게 하이라이트해주는 기능을 제공합니다.


설치 방법

npm 또는 yarn을 사용해 간단히 설치할 수 있습니다.

npm install react-syntax-highlighter
yarn add react-syntax-highlighter

설치 후, MDX 파일이나 JSX 파일에서 이 라이브러리를 사용할 수 있습니다.

 

사용 예시:

먼저, react-syntax-highlighter에서 제공하는 Prism 스타일을 가져와야 합니다.

import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
import { prism } from 'react-syntax-highlighter/dist/esm/styles/prism';

<SyntaxHighlighter language="javascript" style={coy}>
{`
function hello() {
  console.log("Hello, world!");
}
`}
</SyntaxHighlighter>

더 많은 테마는 다음 링크에서 확인하실 수 있습니다.

React Syntax Highlighter Demo (react-syntax-highlighter.github.io)

 

React Syntax Highlighter Demo

 

react-syntax-highlighter.github.io

 

테마를 변경하는 것은 매우 간단합니다. 위에서 사용한 prism 대신 다른 테마를 불러오기만 하면 됩니다.
즉 이름만 변경하면 원하는대로 하이라이트를 커스터마이징할 수 있습니다.

728x90

'프로젝트 > Componique: UI 컴포넌트 라이브러리' 카테고리의 다른 글

Next.js에서 발생한 4094 에러 해결 과정  (2) 2024.10.07
프로젝트에서의 상태 관리: 템플릿과 Zustand를 통한 UX기반 설계  (1) 2024.10.04
왜 내 코드는 맨날 오류일까? ESLint가 도와줄게!  (2) 2024.10.03
target="_blank"와 rel="noopener noreferrer의 보안 중요성과 사용법  (5) 2024.10.02
주석의 중요성: 팀 프로젝트에서 코드 이해를 돕는 방법  (1) 2024.10.02
'프로젝트/Componique: UI 컴포넌트 라이브러리' 카테고리의 다른 글
  • Next.js에서 발생한 4094 에러 해결 과정
  • 프로젝트에서의 상태 관리: 템플릿과 Zustand를 통한 UX기반 설계
  • 왜 내 코드는 맨날 오류일까? ESLint가 도와줄게!
  • target="_blank"와 rel="noopener noreferrer의 보안 중요성과 사용법
튼튼발자
튼튼발자
프론트엔드 개발자입니다. 헬스를 가끔해서인지 몸이 튼튼한거 같습니다. 그래서 튼튼한 개발자 => 튼튼발자입니다. 프론트엔드 및 관련 개발 내용 블로그 글로 정리해서 올려둡니다.
    250x250
  • 튼튼발자
    튼튼발자
    튼튼발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • 튼튼발자의 끄적끄적 (10)
      • 웹개발 (94)
        • HTML (5)
        • CSS (2)
        • JavaScript (40)
        • TypeScript (5)
        • REACT (22)
        • Next.js (13)
        • GIt (7)
      • 기타 (3)
        • 일상 (3)
      • 프로젝트 (27)
        • Componique: UI 컴포넌트 라이브러리 (18)
        • GitHub Profile Viewer (8)
        • 잇핏 (1)
      • 프론트엔드 개발자로 취업준비 (1)
        • 기술 면접 (7)
        • 코딩 테스트 준비하기 (0)
        • 자기소개서&지원서&이력서 (0)
      • 컴퓨터과학 (12)
        • 운영체제 (6)
        • 알고리즘 (6)
      • 전공 공부 (37)
        • AI(인공지능) (2)
        • 컴퓨터네트워크 (19)
        • 네트워크프로그래밍 (3)
        • SW소프트웨어응용설계 (7)
        • 클라우드컴퓨팅 (3)
        • 웹서비스프로그래밍 (3)
      • PT (0)
      • 취준일기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래밍
    프론트엔드개발
    tailwind
    TCP
    JS
    componique
    데이터전송
    코딩
    react
    리액트
    ui컴포넌트
    프론트엔드
    네트워크
    NextJs
    트랜스포트계층
    상태관리
    웹개발
    JavaScript
    자바스크립트
    github
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
튼튼발자
프로젝트에서 코드 블럭 하이라이트 문제 해결하기: react-syntax-highlighter 사용법
상단으로

티스토리툴바