block-types > Paragraph 블록
Paragraph 블록
Paragraph 블록은 일반 텍스트를 표현하는 가장 기본적인 블록 타입입니다.
데이터 구조
Paragraph 블록의 Notion API 데이터 구조는 다음과 같습니다:
{
"type": "paragraph",
"paragraph": {
"rich_text": [
{
"type": "text",
"text": {
"content": "This is a paragraph.",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "This is a paragraph.",
"href": null
}
],
"color": "default"
}
}
rich_text
: 텍스트의 내용과 스타일 정보를 담고 있는 배열입니다.color
: 텍스트의 색상을 지정합니다.
React 컴포넌트
Notionpresso에서 Paragraph 블록을 렌더링하는 컴포넌트는 다음과 같습니다:
import React from "react";
import type { ParagraphArgs } from "../types";
import { getColorCss } from "../utils";
import RichText from "./internal/rich-text";
type ParagraphProps = {
children?: React.ReactNode;
} & ParagraphArgs;
const Paragraph: React.FC<ParagraphProps> = ({ children, ...props }) => {
const {
paragraph: { color, rich_text: texts },
} = props;
return (
<div className={`notion-block notion-paragraph ${getColorCss(color)}`}>
<p className="notion-paragraph-content">
<RichText props={texts} />
</p>
{children}
</div>
);
};
export default Paragraph;
사용 예시
Paragraph 블록을 사용하는 예시는 다음과 같습니다:
import { Notion } from "@notionpresso/react";
function MyNotionPage({ blocks }) {
return (
<Notion>
<Notion.Blocks blocks={blocks} />
</Notion>
);
}
여기서 blocks
는 Notion API로부터 받아온 블록 데이터 배열입니다.
스타일링
Paragraph 블록의 스타일은 다음 CSS 클래스를 통해 커스터마이즈할 수 있습니다:
.notion-block
: 모든 Notion 블록에 적용되는 기본 스타일.notion-paragraph
: Paragraph 블록 특정 스타일.notion-paragraph-content
: Paragraph 내용의 스타일
추가적인 스타일링이 필요한 경우, 이 클래스들을 대상으로 CSS를 작성하면 됩니다.