위키 개발 가이드라인
GitLab 위키 기능의 스토리지 백엔드, 렌더링 파이프라인, 모델 클래스, 첨부 파일 처리 방식에 대해 설명합니다.
GitLab의 위키 기능은 Git 리포지터리를 스토리지 백엔드로 사용하며, Gitaly RPC 호출을 통해 Rails 앱에서 접근합니다. 위키에 접근하는 방법은 다음과 같습니다: Web UI REST API Git 자체 관련 Gem # 위키에서 사용되는 주요 gem은 다음과 같습니다: Component Description Gem name GitLab project Upstream project gitlab 마크업 렌더러, 다양한 다른 gem에 의존 gitlab-markup gitlab-org/gitlab-markup github/markup 위키 렌더링 # 위키 페이지를 렌더링할 때, 커스텀 Banzai 파이프라인 을 사용합니다. 이 파이프라인은 [[link]] 구문과 같은 위키 전용 마크업 을 추가합니다. 모델 클래스 # Wiki 클래스는 위키 리포지터리에 대한 주요 추상화입니다. Project 또는 Group 중 하나일 수 있는 컨테이너로 초기화해야 합니다: classDiagram Wiki --> ProjectWiki Wiki --> GroupWiki class Wiki { #container #repository } class ProjectWiki { #project → #container } class GroupWiki { #group → #container } 일부 모델은 Gitaly의 유사한 클래스를 래핑합니다: Rails Model Gitaly Class Wiki Gitlab::Git::Wiki WikiPage Gitlab::Git::WikiPage, Gitlab::Git::WikiPageVersion Gitlab::Git::WikiFile 데이터베이스에는 일부 데이터만 저장됩니다: Model Description WikiPage::Meta 위키 페이지의 메타데이터 WikiPage::Slug 위키 페이지의 현재 및 이전 슬러그 ProjectRepository 프로젝트 위키의 Gitaly 스토리지 데이터 GroupWikiRepository 그룹 위키의 Gitaly 스토리지 데이터 첨부 파일 # Web UI는 REST API를 통해 첨부 파일을 업로드하며, 이 파일들은 위키 리포지터리의 커밋으로 저장됩니다.