프로젝트 소개
remark는 플러그인을 중심으로 만들어진 마크다운 프로세서로, unified 컬티브의 일부입니다. 마크다운을 단순 텍스트로 취급하는 대신 구조화된 추상 구문 트리(mdast)로 파싱하여, 플러그인이 내용을 검사하고 수정한 뒤 다시 직렬화할 수 있게 합니다.
이 모노레포에는 여러 패키지가 있습니다: remark-parse(마크다운을 구문 트리로 변환), remark-stringify(구문 트리를 다시 마크다운으로 변환), remark(markdown-to-markdown 작업을 위해 unified, parse, stringify를 결합), remark-cli(마크다운 파일을 검사하고 포맷하는 명령줄 인터페이스)입니다.
README에 설명된 주요 특징:
- 기본적으로 CommonMark를 준수하며, 플러그인을 통해 GFM 또는 MDX 지원이 가능합니다.
- AST 기반 처리를 통해 프로그래 방식의 검사와 변환이 간단합니다.
- remark-gfm(GitHub flavored markdown), remark-lint(스타일 검사), remark-toc(목차 생성), remark-rehype(markdown을 HTML로 변환) 등을 포함한 150개 이상의 플러그인 생태계가 있습니다.
- 서버, 클라이언트, CLI, Deno에서 사용할 수 있습니다.
대표적인 용도로는 마크다운을 HTML로 변환(흔히 rehype 생태계 및 rehype-sanitize와 결합), GFM 및 YAML frontmatter와 같은 구문 확장 활성화, 일관성을 위한 마크다운 린트, CLI와 package.json의 remarkConfig 항목을 통한 프로젝트 내 마크다운 파일 포맷 등이 있습니다.
이 프로젝트는 TypeScript로 완전히 타입이 지정되어 있으며, mdast 타입은 @types/mdast를 통해 사용할 수 있습니다. README는 보안 고려 사항을 언급합니다: 마크다운이 HTML이 될 수 있기 때문에 부적절한 처리는 사용자를 크로스 사이트 스크립팅에 노출시킬 수 있으므로 HTML을 생성할 때 rehype-sanitize를 권장합니다. 또한 크거나 악의적인 입력은 성능 또는 충돌 문제를 일으킬 수 있으므로 입력 크기를 제한하고 별도의 스레드나 워커에서 처리하는 것이 권장됩니다. 플러그인은 개별적으로 위험을 평가해야 합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.