GitLab Flavored Markdown (GLFM) 개발 가이드라인
이 페이지 및 인접한 페이지에는 GitLab Flavored Markdown (GLFM)에 대한 개발자 가이드라인이 포함되어 있습니다.
GitLab의 Markdown 사용자 문서에 대해서는 GitLab Flavored Markdown 를 참조하십시오.
GitLab은 이슈 또는 병합 요청 설명, 댓글 및 위키와 같은 다양한 장소에서 Markdown을 지원합니다.
우리가 사용하는 Markdown 구현은 GitLab Flavored Markdown (GLFM)이라 불립니다.
CommonMark는 GLFM의 핵심입니다.
…Markdown의 표준적이고 모호하지 않은 구문 사양과 이 사양에 따라 Markdown 구현을 검증하기 위한 포괄적인 테스트 모음.
표 및 작업 목록과 같은 GitHub Flavored Markdown (GFM)의 확장이 지원됩니다.
수학 및 다중 블록 인용과 같은 다양한 확장이 추가되어 GLFM이 생성됩니다.
gfm
또는 GFM
을 사용합니다. 이러한 경우 일반적으로
Markdown을 일반적으로 지칭하며, 특정하게 GLFM을 지칭하지 않습니다.기본 흐름
사용자에게 표시되는 HTML을 생성하기 위해, Markdown은 일반적으로 다음과 같이 처리됩니다:
- 사용자가 제공한 Markdown을 읽거나 데이터베이스에서 가져와 백엔드에 전달합니다.
- 처리 파이프라인(“Banzai” 파이프라인)이 실행됩니다.
- 일부 전처리가 이루어진 후,
gitlab-glfm-markdown
gem을 사용하여 기본 HTML로 변환됩니다. 이 gem은comrak
를 사용합니다. - 다양한 필터가 실행되어 HTML을 추가로 변환합니다. 예를 들어, 참조 또는 사용자 정의 이모지를 처리합니다.
- 일부 전처리가 이루어진 후,
- 그 후 HTML은 프론트엔드에 전달되어 다양한 방법으로 표시되거나, 데이터베이스에 캐시됩니다.
- 예를 들어, 리치 텍스트 편집기는 HTML을
tiptap
가 표시하고 편집하기 위해 사용하는 형식으로 변환합니다.
- 예를 들어, 리치 텍스트 편집기는 HTML을
목표
우리는 GLFM이 항상 CommonMark와 100% 호환되도록 목표하고 있습니다.
새 구문을 추가하지 않도록 매우 주의하고 있으며, 필요한 경우 가장 수용 가능한 “Markdown” 구문을 찾기 위해 연구가 이루어져야 합니다. 가능한 경우 일반적인 구현에 가깝게 따릅니다.
CommonMark 포럼은 다양한 주제에 대한 논의를 연구하기에 좋은 장소입니다.
질문이 있는 경우 Plan:Knowledge 팀에 연락해 주십시오.