위키 개발 지침
- GitLab 13.5에서 도입되었습니다.
GitLab의 위키 기능은 Gollum 4.x을 기반으로 합니다. 이는 Gitaly 루비 서비스에서 사용되며, Rails 앱에서 Gitaly RPC 호출을 통해 액세스됩니다.
위키는 저장소 백엔드로 Git 저장소를 사용하며 다음을 통해 액세스할 수 있습니다:
GitLab 13.5에서 도입된 후에 위키는 프로젝트뿐만 아니라 그룹에서도 사용할 수 있습니다.
관련된 젬
위키에 사용된 주목할만한 젬 몇 가지는 다음과 같습니다:
구성 요소 | 설명 | 젬 이름 | GitLab 프로젝트 | 상위 프로젝트 |
---|---|---|---|---|
gitlab
| 마크업 렌더러, 여러 다른 젬에 종속됨 | gitlab-markup
| gitlab-org/gitlab-markup
| github/markup
|
Gollum에 관한 참고 사항
위키 페이지를 렌더링할 때 우리는 Gollum을 전혀 사용하지 않고
사용자 정의 Banzai 파이프라인을 통해 진행합니다.
이를 통해 Gollum [[link]]
구문과 같은 위키 특정 마크업이 추가됩니다.
대부분의 Gollum 기능을 사용하지 않기 때문에 언젠가는 Gollum에서 완전히 이탈할 계획입니다. 참고할 사항은 이 에픽을 참조하십시오.
모델 클래스
Wiki
클래스는 위키 저장소 주변의 주요 추상화로, Project
또는 Group
중 하나로 초기화해야 합니다:
일부 모델은 Gitaly 및 Gollum에서 유사한 클래스를 래핑합니다:
Rails 모델 | Gitaly 클래스 | Gollum |
---|---|---|
Wiki
| Gitlab::Git::Wiki
| Gollum::Wiki
|
WikiPage
|
Gitlab::Git::WikiPage , Gitlab::Git::WikiPageVersion
| Gollum::Page
|
Gitlab::Git::WikiFile
| Gollum::File
|
데이터는 일부만 데이터베이스에 유지됩니다:
모델 | 설명 |
---|---|
WikiPage::Meta
| 위키 페이지의 메타데이터 |
WikiPage::Slug
| 위키 페이지의 현재 및 이전 슬러그 |
ProjectRepository
| 프로젝트 위키의 Gitaly 저장소 데이터 |
GroupWikiRepository
| 그룹 위키의 Gitaly 저장소 데이터 |
첨부 파일
웹 UI는 첨부 파일을 REST API를 통해 업로드하며, 이는 위키 저장소에서 커밋으로 파일을 저장합니다.