🤔 문제 상황
react-markdown을 적용이 안되서 찾아보니까
tailwind가 기본적인 html의 스타일을 제어하고 있어서
그냥 적용하면 안된다는 것을 알았다.
그래서 마크다운을 사용할 부분만 tailwind의 스타일이 적용되지 않도록 해야한다.
✅ 해결 방법
다행히 tailwind 자체에서 markdown 컴포넌트를 사용할 수 있도록
플러그인을 제공하고 있었다.
해당 플러그인을 사용하면 하위 태그는 tailwind 스타일이 적용되지 않는다.
@tailwindcss/typography
설치
https://tailwindcss.com/docs/typography-plugin$ npm install @tailwindcss/typography
tailwind.config.js
파일에 플러그인 추가// tailwind.config.js module.exports = { theme: { // ... }, plugins: [ require('@tailwindcss/typography'), // ... ], }
react-markdown
,remark-gfm
설치
remark-gfm는 react-markdown에서 제공하지 않는 마크다운 문법을 제공해준다$ npm install react-markdown $ npm install remark-gfm
@tailwindcss/typography
적용
상단 태그의 className에 prose 추가<article class="prose"> {{ markdown }} </article>
💥 최종 코드
import React from "react";
import ReactMarkdown from "react-markdown";
import remarkGfm from "remark-gfm";
import tw from "tailwind-styled-components";
const MarkDownContainer = tw.div``;
const markdown = `
**강조**
# 헤더
> 인용 ~스크로크~ URL: https://reactjs.org.
* Lists
* [ ] todo
* [x] done
A table:
| a | b |
| - | - |
`;
const MarkDownRenderer = () => {
return (
<MarkDownContainer className="prose">
<ReactMarkdown remarkPlugins={[remarkGfm]}>{markdown}</ReactMarkdown>
</MarkDownContainer>
);
};
export default MarkDownRenderer;
이렇게 하면 내용이 잘 표시되어보인다!
'Programming > Styles' 카테고리의 다른 글
[React-slick] Carousel 만들기 (+ Typescript, Tailwind, styled-components) (0) | 2023.03.31 |
---|---|
[Tailwind] 동적 클래스 할당하기 (+Typescript, Styled-components) (0) | 2023.03.28 |
[Styled-components] Semantic-ui-react의 스타일 커스터마이징하기 (0) | 2023.03.24 |
[CSS] BEM, 중복 component 설정 (0) | 2022.03.26 |
[CSS] Cascading 문제 해결 (0) | 2022.03.26 |