GitLab Flavored Markdown (GLFM) 개발 가이드라인
GitLab v19.4요약
이 페이지와 인접 페이지에는 GitLab Flavored Markdown(GLFM) 개발자 가이드라인이 담겨 있습니다. GitLab은 이슈나 머지 리퀘스트 설명, 댓글, 위키 등 여러 곳에서 마크다운을 지원합니다. CommonMark는 GLFM의 핵심입니다.
이 페이지와 인접 페이지에는 GitLab Flavored Markdown(GLFM) 개발자 가이드라인이 담겨 있습니다. GitLab의 마크다운에 대한 사용자 문서는 GitLab Flavored Markdown을 참고합니다.
GitLab은 이슈나 머지 리퀘스트 설명, 댓글, 위키 등 여러 곳에서 마크다운을 지원합니다. GitLab 이 사용하는 마크다운 구현은 GitLab Flavored Markdown(GLFM) 입니다.
CommonMark는 GLFM의 핵심입니다.
...마크다운을 위한 표준화되고 모호하지 않은 구문 명세이며, 구현이 이 명세를 따르는지 검증하는 포괄적인 테스트 모음을 함께 제공합니다.
여기에 표와 작업 목록처럼 GitHub Flavored Markdown(GFM)의 확장을 지원합니다. 그리고 수식이나 여러 줄 인용문과 같은 여러 확장을 더해 GLFM 이 만들어집니다.
코드의 여러 곳에서 gfm 이나 GFM이라는 표현을 사용합니다. 이러한 경우는 대개
GLFM 만을 가리키는 것이 아니라 마크다운 전반을 가리킵니다.
기본 흐름#
사용자에게 표시되는 HTML을 만들기 위해 마크다운은 일반적으로 다음과 같이 처리됩니다.
- 사용자나 데이터베이스에서 마크다운을 읽어 백엔드로 전달합니다.
- 처리 파이프라인("Banzai" 파이프라인)이 실행됩니다.
- 일부 전처리를 거친 뒤
comrak을 사용하는gitlab-glfm-markdowngem으로 기본 HTML로 변환합니다. - 여러 필터가 실행되어 HTML을 한층 더 변환합니다. 예를 들어 참조나 커스텀 이모지를 처리합니다.
- 일부 전처리를 거친 뒤
- 이후 HTML은 프론트엔드로 전달되어 다양한 방식으로 표시되거나 데이터베이스에 캐시됩니다.
- 예를 들어 리치 텍스트 에디터는 표시와 편집을 위해 HTML을
tiptap이 사용하는 형식으로 변환합니다.
- 예를 들어 리치 텍스트 에디터는 표시와 편집을 위해 HTML을
목표#
GLFM은 언제나 CommonMark를 100% 준수하는 것을 목표로 합니다. 꼭 필요한 경우가 아니면 새 구문을 추가하지 않도록 상당한 주의를 기울입니다. 새 구문을 추가해야 하는 경우에도 가장 널리 받아들여지는 "마크다운" 구문을 찾기 위해 조사하고, 공통 구현이 있다면 그에 최대한 맞춥니다. CommonMark 포럼은 여러 주제의 논의를 살펴보기에 좋은 곳입니다.
추가 자료#
- GitLab Flavored Markdown
- 리치 텍스트 에디터 개발 가이드라인
- 이모지
- 프론트엔드에서 GitLab Flavored Markdown을 렌더링하는 방법
- Diagrams.net 통합
문의 사항이 있으면 Plan:Knowledge 팀에 연락합니다.