GithubXDiscord

NotionPresso 기여 가이드 📚

🚨 긴급 개선이 필요한 영역

현재 NotionPresso 프로젝트에는 다음과 같은 긴급한 개선이 필요한 영역들이 있습니다:

1. 문서 코드 블록 인덴트 문제

현재 문서의 코드 블록에서 인덴테이션이 제대로 적용되지 않는 문제가 있습니다. 예를 들어:

문제가 있는 코드:

Typescript
function example() { const value = 'test' return { data: value } }

올바른 코드:

Typescript
function example() { const value = 'test' return { data: value } }

2. 패키지 이름 레거시 참조 업데이트

프로젝트 전반에 걸쳐 이전 패키지 이름이 여전히 사용되고 있습니다:

  • react-notion-custom@notionpresso/react

  • notion-dump@notionpresso/cli

이러한 레거시 참조들을 찾아 새로운 패키지 이름으로 업데이트해야 합니다.

3. 다국어 문서화 필요

현재 문서는 영어와 한국어만 제공되고 있습니다. 더 많은 개발자들이 참여할 수 있도록 다양한 언어로의 번역이 필요합니다.

위 문제들을 해결하는데 도움을 주실 수 있는 개발자분들의 참여를 기다립니다! 🙏


프로젝트 소개

NotionPresso는 Notion을 CMS로 활용하여 개인 블로그를 만들 수 있게 해주는 오픈소스 프로젝트입니다. 다음과 같은 패키지들로 구성되어 있습니다:

  • @notionpresso/react: Notion 컨텐츠를 위한 React 렌더링 라이브러리

  • @notionpresso/cli: Notion 데이터 추출을 위한 CLI 도구

  • @notionpresso/svelte: Svelte 렌더링 라이브러리 (현재 Svelte 5로 마이그레이션 중)

  • Documentation site

기여 방법

개발 환경 설정

  1. 1

    작업하고자 하는 저장소를 포크하고 클론합니다:

Shell
git clone <https://github.com/notionpresso/[package-name].git> cd [package-name]
  1. 1

    의존성을 설치합니다:

Shell
npm install
  1. 1

    새 브랜치를 생성합니다:

Shell
git checkout -b feature/your-feature-name

개발 가이드라인

코드 스타일

  • 들여쓰기는 2칸 공백을 사용합니다

  • TypeScript 타입은 명시적으로 선언합니다

  • 커밋 메시지는 conventional commits 형식을 따릅니다

컴포넌트 개발

새로운 컴포넌트를 추가할 때는 다음 구조를 따릅니다:

Typescript
import React from 'react' import type { ComponentType } from 'react' interface BlockProps { content: string style?: React.CSSProperties } const Block: ComponentType<BlockProps> = ({ content, style }) => { return ( <div style={style}> {content} </div> ) } return Block

문서화 기여

문서 개선 시 다음 사항을 확인해주세요:

  1. 1

    코드 블록의 인덴테이션이 올바르게 적용되었는지 확인

  1. 2

    패키지 이름이 최신 버전(@notionpresso/*)으로 참조되었는지 확인

  1. 3

    문서의 일관성 유지

  1. 4

    가능한 경우 다국어 번역 제공 (중국어, 일본어 등등)

예시:

Markdown
# 컴포넌트 사용 가이드 다음과 같이 @notionpresso/react의 컴포넌트를 사용할 수 있습니다: ```typescript import { NotionRenderer } from '@notionpresso/react' // react-notion-custom 제거 const BlogPost = ({ content }) => { return ( <NotionRenderer content={content} /> ) } ```

기여해주셔서 감사합니다! 여러분의 참여로 NotionPresso가 더욱 발전할 수 있습니다. 🙏 특히 현재 시급한 개선이 필요한 부분들(인덴테이션, 레거시 참조, 다국어 지원)에 관심 있으신 분들의 적극적인 참여를 기다립니다.