이 문서는 Extensions 문서를 번역한 것이며 번역은 100% 완료했습니다.

Wikven은 빌드 시점에 진짜 MediaWiki를 실행하므로, MediaWiki 확장 기능은 늘 그렇듯 작동합니다. 다만 그 확장 기능이 하는 일이 사이트가 게시되기 전에 끝날 수 있어야 합니다. 이 문서는 어떤 확장 기능을 쓸 수 있는지, 그리고 아직 없는 것을 어떻게 가져오는지를 다룹니다.

확장 기능 켜기

.wikven.yaml에 이름을 적으십시오. Wikven 안에 함께 들어 있는 확장 기능은 그것으로 끝입니다:

extensions:
  - ParserFunctions
  - SyntaxHighlight_GeSHi

Wikven이 디스크에서 찾지 못한 이름은 빌드를 실패시키는 대신 로그에 경고를 남기고 건너뜁니다. 그래서 오타는 아무 일도 하지 않는 확장 기능의 모습으로 드러납니다. 함께 들어 있지 않은 것은 WikvenRepositories에 출처를 밝혀야 합니다.

이미 들어 있는 것

Wikven 이미지에는 MediaWiki에 번들된 것 전부가 — ParserFunctions, Cite, Gadgets, SyntaxHighlight_GeSHi, TemplateStyles 등 — 들어 있고, 여기에 정적 사이트에 필요한 것으로 Wikven이 셋을 더합니다:

SifterSearch
클라이언트 사이드 검색. 모든 사이트에서 기본으로 켜지므로 검색이 아무 설정 없이도 작동합니다.
Translate
소스 트리에서 다루는 다국어 문서. 번역하기를 참고하십시오.
UniversalLanguageSelector
Translate 자신의 의존성이며, 번들 웹폰트가 나오는 곳입니다.

뒤의 둘은 여러분이 목록에 적어야 불러와지고, SifterSearch는 알아서 불러와집니다. 특정 이미지에 정확히 무엇이 들어 있는지는 그 이미지에게 물어보십시오:

docker run --rm --entrypoint ls ghcr.io/chaotic-ground/wikven extensions
docker run --rm --entrypoint ls ghcr.io/chaotic-ground/wikven skins

그 밖의 것

이미지에 없는 확장 기능은 여러분이 밝힌 출처에서 빌드 시점에 가져옵니다. 타르볼, Git 저장소, Composer 패키지 중 하나입니다. 이름은 여전히 extensions에 들어가고, WikvenRepositories는 어디서 가져올지만 말합니다:

extensions:
  - TabberNeue
config:
  WikvenRepositories:
    TabberNeue:
      repository: https://github.com/StarCitizenTools/mediawiki-extensions-TabberNeue.git
      reference: v4.0.0

이 문서 사이트가 TabberNeue를 정확히 그렇게 가져옵니다. 시작하기의 탭이 그것입니다. MinervaNeue가 기대는 MobileFrontend도 마찬가지입니다. 출처를 밝히는 세 가지 방법과 각각에 필요한 호스트 도구, 그리고 가져오는 것을 왜 고정해야 하는지는 WikvenRepositories를 참고하십시오.

작동하지 않는 것

확장 기능은 빌드 중에 자기 일을 끝내야 합니다. 게시된 사이트는 PHP를 실행하지 않는 호스트 위의 파일들이기 때문입니다. 살아 있는 위키에서 아무리 잘 동작하더라도, 다음 부류는 그래서 제외됩니다:

  • 편집하는 것. 시각편집기, WikiEditor, CodeEditor에는 저장할 곳이 없습니다.
  • 요청에 응답하는 것. 기능이 특수 문서나 API 모듈이거나, 독자가 누를 때 실행되는 질의인 확장 기능에는 돌아갈 서버가 없습니다. 빌드 시점에 문서 안으로 렌더링해 넣은 것만 남습니다.
  • 독자에 매인 것. 내보내기에는 계정도, 환경 설정도, 세션도 없으므로 알림·주시문서 목록·사용자별 설정은 기댈 것이 없습니다.

위키텍스트가 렌더링되는 방식만 바꾸는 확장 기능 — 파서 태그, 파서 함수, 스타일, 템플릿 — 이 가장 잘 맞습니다. 그 일은 문서가 파일로 쓰이는 시점에 이미 끝나 있기 때문입니다.

여러분의 확장 기능을 빌드에서 살아남도록 일부러 만들 수도 있습니다. 확장 기능 만들기가 그에 대한 계약입니다.

원본 주소 "Extensions/ko.html"