메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

스킨

Wikven
더 많은 작업
이 문서는 Skins 문서를 번역한 것이며 번역은 100% 완료했습니다.

번들된 스킨.wikven.yaml에서 고를 수 있습니다.

지원하는 스킨

Wikven은 세 가지 스킨을 지원합니다. 이 문서 사이트는 세 스킨 모두로 빌드되므로, 모든 변경이 각 스킨에서 검증됩니다.

  • Vector (기본값. Vector를 선택하면 해당 스킨의 vector-2022 변형인 Vector 2022가 적용됩니다)
  • MinervaNeue (모바일 지향)
  • Citizen (서드파티, 빌드 시점에 가져옴)

그 밖의 스킨은 거부되는 것이 아니라 검증되지 않을 뿐입니다. MediaWiki에 번들된 스킨은 MonoBook을 비롯해 모두 이름만으로 사용할 수 있고, 서드파티 스킨은 Citizen처럼 가져올 수 있습니다.

Minerva는 나머지 둘보다 설명할 것이 많습니다. 빌드가 스킨의 일부를 설정하는 대신 우회하기 때문입니다. 그 내용은 여기가 아니라 부록에 모아 두었습니다.

스킨 설정

skins를 설정하여 스킨을 바꿀 수 있습니다. 목록의 첫 번째 스킨이 기본값으로 사용됩니다.

skins:
  - MinervaNeue

서드파티 스킨

번들되지 않은 스킨도 skins에 나열할 수 있으며, 그 소스는 WikvenRepositories에 선언합니다. 이 스킨은 빌드 시점에 가져와지며 다른 스킨과 마찬가지로 기본값이 될 수 있습니다. 이 문서 사이트는 이런 방식으로 Citizen을 가져와 나머지 두 스킨과 함께 제공합니다.

skins:
  - Example
config:
  WikvenRepositories:
    Example:
      repository: https://github.com/example/Example.git
      reference: REL1_46

스킨별 설정

config 맵을 사용합니다.

config:
  VectorResponsive: false

설정은 다른 설정과 똑같은 방식으로 스킨에 전달되지만, 빌드에서 스킨이 여전히 그 설정을 읽을 때만 효과가 있습니다. Minerva는 대부분이 그렇지 않은 유일한 경우이니, 설정에 손대기 전에 부록의 Minerva 설정을 참고하십시오.

부록: Minerva

Minerva와 MobileFrontend

MinervaNeue는 MediaWiki에 번들되어 있지만, 함께 자라 온 MobileFrontend는 그렇지 않습니다. 이것이 없으면 스킨은 자체 initMobile.js를 건너뛰고 그것이 마련해 주는 것들을 잃는데, 목차 토글도 그중 하나입니다. Minerva를 활성화한다면 이 둘을 함께 가져오십시오. 이 사이트가 그렇게 하고 있으므로, 권장 구성은 모든 빌드가 렌더링하는 바로 그 구성입니다.

skins:
  - MinervaNeue
extensions:
  - MobileFrontend
config:
  WikvenRepositories:
    MobileFrontend:
      repository: https://github.com/wikimedia/mediawiki-extensions-MobileFrontend.git
      reference: REL1_46

Wikven은 MobileFrontend 없이도 Minerva를 렌더링합니다. Minerva가 제공하는 항목 중 정적 호스트가 서비스할 수 없는 것들은 어느 쪽이든 빠집니다.

Minerva를 지원하는 방식

Minerva도 나머지 둘과 똑같이 빌드되고 검증되지만, 그 지원의 상당 부분은 스킨을 설정하는 것이 아니라 Wikven이 스킨을 우회하는 일입니다. Minerva는 주 메뉴를 MediaWiki:Sidebar가 아니라 자체 정의에서 만들고, 여러 컨트롤이 MobileFrontend나 살아 있는 위키를 전제하므로, 빌드가 그 둘을 대신합니다.

  • 사이트 자체의 둘러보기는 렌더링되는 모든 문서의 주 메뉴에 직접 기록합니다. 스킨이 읽어 갈 사이드바 구획이 없기 때문입니다.
  • 임의 문서, 최근 바뀜, 특수 문서 목록, 환경 설정은 제거가 아니라 스타일시트로 숨깁니다. 스킨이 이들을 무조건 넣으므로, 내보낸 HTML에는 앵커가 그대로 남습니다.
  • 커뮤니티 포털은 스킨이 이미 확인하는 메시지를 통해 제대로 빠집니다.
  • 색 테마와 읽을 스킨은 빌드가 기록하는 Settings 문서에 있습니다. 스킨 자체의 것은 Special:MobileOptions이기 때문입니다.
  • 언어 버튼은 숨깁니다. 그 오버레이가 MobileFrontend의 것이기 때문입니다.
  • MobileFrontend가 없으면 목차는 접힌 채로 오고 그것을 펼 토글은 그려지지 않으므로, 스타일시트가 다시 펼칩니다.

독자가 이 가운데 무엇도 마주치지는 않습니다. 다만 Minerva의 겉을 손보기 전에 알아 둘 만합니다. 그 변경은 대개 설정이 아니라 maintenance/fillMinervaMenu.phpresources/skins.minerva.styles.less에 놓이기 때문입니다.

Minerva 설정

MobileFrontend의 설치 여부와 관계없이, $wgMinerva* 설정은 대부분 빌드에서 아무 일도 하지 않습니다. 스킨이 선언하는 열여섯 개 중 열 개는 MobileFrontend 기능으로 등록되어 SkinOptions::setMinervaSkinOptions()에서 다시 읽히는데, 이 메서드는 RequestContextCreateSkinMobile 훅에서 실행됩니다. 그리고 MobileFrontend는 모바일 뷰를 제공하기로 결정한 뒤에야 그 훅을 발동시키며, 그러려면 모바일 도메인이나 모바일 기기, 또는 useformat=mobile이 필요합니다. 빌드는 그 어느 것도 아니므로 스킨 옵션은 자체에 컴파일된 기본값을 그대로 유지하고, 다음 설정들은 작동하지 않습니다: MinervaShowCategories, MinervaPageIssuesNewTreatment, MinervaTalkAtTop, MinervaDonateLink, MinervaDonateBanner, MinervaHistoryInPageActions, MinervaOverflowInPageActions, MinervaAdvancedMainMenu, MinervaPersonalMenu, MinervaNightMode.

나머지 여섯 개는 스킨이 설정에서 직접 읽으므로 문서화된 대로 동작합니다: MinervaEnableSiteNotice, MinervaAlwaysShowLanguageButton, MinervaDownloadNamespaces, MinervaNightModeOptions, MinervaTypeahead, MinervaABSamplingRate. 이 중 손댈 만한 것은 MinervaTypeahead입니다. 스킨의 타입어헤드는 이 설정이 가리키는 검색 API가 아니라 정적 색인 위에서 돌아가므로, options는 읽히고 API URL은 읽히지 않으며, 빈 섬네일 열도 여기서 끕니다. 검색을 참고하십시오. MinervaABSamplingRate는 표본을 뽑을 A/B 버킷이 없어 작용할 대상이 없습니다. 언어 버튼은 그 오버레이가 MobileFrontend의 것이라 어느 쪽이든 숨겨집니다.

작동하지 않는 설정들이 구성했을 법한 것은, 가능한 범위에서 Wikven이 자체적인 방식으로 제공합니다. 색 테마는 빌드가 Special:MobileOptions 대신 기록하는 Settings 문서에 있고, 사이트 자체의 둘러보기는 렌더링되는 모든 문서의 주 메뉴에 기록됩니다.

원본 주소 "Skins/ko.html"