미디어위키/확장기능

미디어위키는 확장 기능을 지원해, 많은 사람들이 이미 만들어 놓은 확장 기능을 설치하는 것만으로 소소한 편의기능부터 위키 마개조까지 쉽게 해낼 수 있다.

확인하는 방법[편집 | 원본 편집]

리브레 위키에 설치된 확장 기능은 특수:버전에서 확인할 수 있다. 모든 미디어위키로 제작된 위키는 그 문서, 혹은 영어로 Special:Version에 확장기능이 등록된다.

확장기능에 대한 간단설명[편집 | 원본 편집]

굵은 글씨는 리브레 위키에 설치된 기능을 의미하며, 기울인 글씨는 미디어위키 1.28버전을 설치할 때 기본적으로 내장된 확장기능을 의미한다. 뒤에 위키 사이트 목록은 이 기능이 설치된 한국어 미디어위키 기반 사이트를 의미한다.

특수문서[편집 | 원본 편집]

우선 이 문단에서는 확장기능을 설치할 때 특수문서를 만들어내는 기능부터 살펴본다. 위키백과:특수:버전 문서도 참조할 것.

기능 간단설명
APIFeaturesUsage 사용자에 관한 API 기능 용법의 요약을 얻는다.
CategoryTree 분류가 배열된 구조(분류트리)를 동적으로 보여주는 기능이다. categorytree 태그를 이용해서 분류트리를 제작할 수도 있다.
Central Auth 서로 다른 위키 사이트에서 계정을 통합해서 사용하는 기능이다. 위키백과의 경우 자신의 한국어 위키백과 계정을 다른 언어판에서도 사용이 가능하게 하는 기능이다.
CheckUser 특정 사용자에게 사용자의 IP 주소등의 정보를 적절하게 보여줄 수 있는 권한을 준다.
리브레 위키에서는 검사관에게 주어진다.
CiteThisPage 문서 제목을 입력할 때 문서의 하이퍼링크와 인용구 양식을 보여주는 기능이다.
Collection 위키의 문서를 책 형태로 만드는 기능이다.
ContentTranslation 원본과 번역본을 대조하기 쉬운 형태로 배열해서 쉽게 번역할 수 있게 하는 확장기능이다. 아래의 SiteMatrix와 같이 활용할 때 효율이 오른다.
Echo 이벤트와 메시지를 사용자에게 알리는 기능이다. 이 기능이 있어야 자신이 주시하는 문서가 변한 것을 확인할 수 있다.
Editcount 특정 사용자의 총 편집 횟수를 보여주는 기능이다.
Global Usage 해당 파일을 사용하는 모든 문서를 보여주는 기능이다.
Interwiki 다른 위키 사이트의 문서에 접근할 수 있게 하는 기능이다. 인터위키 문서 참조.
Maintenance 미디어위키의 유지보수용 스크립트(Maintenance Script)를 셸(SSH)에서 php파일을 실행시키는 형태 대신 특수 문서에서 직접 실행시킬 수 있게 하는 확장기능이다. ini파일에 정해진 패턴대로 돌아간다. 비슷한 확장기능으로 MaintenanceShell도 있으며, 특수 문서에서 실행시키는 것은 동일하나 이쪽은 보다 더 셸에서 입력하는 듯한 디자인을 가진다.
MassEditRegex 정규 표현식을 활용해서 여러 문서를 한번에 바꿀 수 있게 하는 확장기능이다.
MergeAccount 여러 위키에서 한 계정을 사용할 수 있게 계정을 통합하는 기능이다.
Nuke 여러 개의 문서를 한번에 삭제할 수 있게 하는 기능이다. 보통은 관리자에게만 주어지며, 리브레 위키에서는 관리관에게만 이 권한이 주어진다.
Renameuser 특정 권한을 가진 사용자가 다른 사용자의 이름을 바꿀 수 있게 하는 기능이다. 보통은 사무관이 이 권한을 가지며, 리브레 위키감독관만 이 권한을 갖는다.
Renameuser for CentralAuth 통합 계정의 이름을 단번에 바꾸는 기능이다. 다른 언어판 등 자매 프로젝트가 있는 위키만 가지고 있는 기능이다.
Replace Text 위키 관리자가 위키 전체의 본문의 문자열을 찾아 바꿀 수 있게 하는 기능이다.
SiteMatrix 위키 팜 등 메타위키 사이트에서 하위 위키 사이트 목록 또는 같은 메타위키의 하위위키 목록을 보여주는 확장기능이다.
TemplateSandbox 연습장이나 문서 편집 공간에서 작성한 틀을 이미 완성된 문서에 삽입하는 효과를 보여줄 수 있게 하는 확장기능이다.
UrlShortner 개별 문서마다 단축된 URL 주소를 게시할 수 있게 하는 기능이다.
UserMerge 서로 다른 두 사용자 계정을 하나로 합치는 기능이다. UserMerge 권한이 필요하며, 보통 관리자에게만 주어진다.

파서 훅[편집 | 원본 편집]

특정한 태그나 파서함수를 이용해서 특수한 효과를 내는 확장기능들을 말한다. 특수:버전도 참조할 것.

기능 간단설명
AJaxPoll poll 태그를 이용해서 설문을 삽입할 수 있게 한다.
CategoryTree categorytree 태그를 이용해서 문서 내부에 분류 트리를 삽입할 수 있다.
CharInsert charinsert 태그를 이용해서 편집창 아래에 편집 상자를 만들 수 있다. 편집상자는 미디어위키:Edittools에서 편집가능.
Cite ref 태그를 이용해서 문서에 각주를 삽입할 수 있게 한다.
CSS css 파서함수를 이용해서 위키의 css를 바꿀 수 있다.
EmbedVideo ev 태그를 이용해서 동영상의 url만 입력해도 위키 내부에 동영상을 삽입할 수 있게 하는 기능이다.
ImageMap imagemap 태그를 이용해서 그림 파일 위에 일부분만을 표시하는 링크를 만든다.
InputBox inputbox 태그를 이용해서 검색 상자 등 HTML 입력 상자 양식을 만든다.
Josa 한국어 조사를 자동으로 변환하는 태그를 지원하는 확장기능이다.
Loops while문 등 반복문을 사용할 때 사용한다. 아래의 Variable 확장기능과 같이 사용할 때 활용도가 높아진다.
Math Texvc를 이용해서 math태그 안의 내용을 png 파일로 바꾸어서 출력시키거나 혹은 mathjax, 혹은 mathml을 활용해서 수식을 출력시킨다.
MsUpload 특수 문서를 호출하지 않고 편집창 상에서 여러 개의 파일들을 한번에 업로드할 수 있게 하는 기능이다.
OpenGraphMeta 페이스북의 좋아요 버튼에 사용되는 OpenGraph 메타 버튼을 추가하는 기능이다.
ParserFunction if, switch 등 분기문을 만드는 파서함수를 사용할 수 있게 하는 확장기능이다.
Poem poem 태그를 이용해서 시 형식 등을 만들 수 있게 하는 태그이다. blockquote와 별도의 디자인 가능.
Quiz quiz 태그를 이용해서 선택형 혹은 단답형 형태의 문제를 출력할 수 있는 확장기능이다.
Scribunto 미디어위키에 Lua 언어로 작동하는 스크립트를 삽입할 수 있게 하는 확장기능이다.

스크립트들은 모듈 이름공간에 저장하며 이 기능을 활용하면 랜덤 문서를 돌리는 효과를 사용할 수 있고, 분기문과 반복문으로 표현해야 하는 복잡한 틀을 간단하게 작성할 수 있게 도와준다. 작성한 모듈들은 {{#invoke:(모듈 이름)|함수 이름}}을 본문에 넣어 불러올 수 있다. 서버 내부에 Lua 설치 필요.

SimpleMathJax 자바스크립트를 이용해서 math 태그 안에 있는 수식을 출력시킨다. Math 확장기능과 달리 Texvc를 서버 내부에 별도로 설치할 필요가 없으나 자바스크립트를 이용하기에 복잡한 수식을 표현하는 경우 출력속도가 느려지는 단점이 있다.
SyntaxHighlight 파이썬 기반으로 돌아가는 수식 하이라이팅 소프트웨어인 Pygment를 이용해서 각종 프로그래밍 언어 구문에 색을 입혀 강조하는 효과를 표현한다. 과거에는 GeSHi 기반으로 작동했기에 확장기능의 구 명칭이 SyntaxHighlight_GeSHi라고 불렀다.
SyntaxHighlighter 자바스크립트 기반으로 수식에 강조 효과를 부여한다. 리눅스랑은 달리 Windows와 macOS는 파이썬이 기본으로 설치되어 있지 않아 Pygment를 실행시키지 못 하는 환경이 있는데, 그 때에 이 확장기능이 유용하다.
TemplateData JSON을 활용해서 틀의 변수에 대해 데이터를 저장할 수 있는 공간을 만든다. 사실상 시각편집기(VisualEditor) 확장기능을 설치해야만 의미있는 확장기능이며, 시각편집기를 통해 편집하는 중에 틀을 삽입할 때 자동으로 변수 데이터를 입력할 수 있게 하는 팝업창을 띄워준다.
Tvpot 다음 Tvpot 동영상을 삽입할 수 있게 하는 확장기능이다.
Variables 특정 변수를 지정하는데 사용하는 확장기능이다. 이 확장기능을 이용해서 'v'(또는 임의의 다른 이름)으로 지정된 변수를 정하고 변수의 값을 지정할 수 있다.
Widgets 정형화된 html 태그로 구성된 widget을 호출해서 위키 내부에 삽입할 수 있게 하는 기능이다. 참고로 미디어위키는 보안상의 문제로 인해 html 태그를 기본적으로 자유롭게 사용할 수 없게 만드는데, html을 푸는 옵션을 따로 지정할 수 있기는 한다. 그러나 이 확장기능을 이용하면 모든 html 태그를 개방하는 것이 아닌 위젯 형태로 지정된 html 태그만 개방시킬 수 있다. 참고로 이 태그를 이용해서 아래 YouTube 확장기능의 YouTube 동영상 삽입 기능을 대체할 수 있다.
WikiHiero hiero 태그를 이용해서 이집트 상형문자(Hieroglyph)를 삽입할 수 있게 하는 확장기능이다.
YouTube youtube 태그를 이용해서 youtube나 구글 비디오 등의 일부 동영상을 삽입할 수 있게 하는 확장기능이다.

미디어 핸들러[편집 | 원본 편집]

특정한 파일을 위키 엔진으로 직접 실행시킬 수 있게 도와주는 확장기능들이다.

기능 간단설명
PagedTiffHandler 보통 웹브라우저가 직접 지원하지 않는 Tiff 파일을 이미지 모드(파일 문서)에서도 직접 볼 수 있게 하는 확장기능이다.
PdfHandler 이 확장기능이 있으면 PDF 파일을 이미지 모드(파일 문서)에서 이미지 형식으로 볼 수 있게 된다.
TimedMediaHandler 이 확장기능은 ogg나 ogv 파일을 위키상에서 직접 재생할 수 있게 도와준다.
VipsScaler VIPS 스케일러를 이용해서 보정된 이미지의 갤러리를 출력할 수 있게 도와주는 확장기능이다. VIPSScaler를 별도로 설치해야 한다! [1]

스팸 막기[편집 | 원본 편집]

위키에 스팸이 삽입되거나 반달에 의한 문서 훼손을 방지할 때 유용한 확장기능이다.

기능 간단설명
AbuseFilter 편집 필터를 설치해서 패턴성으로 나타나는 부적절한 편집을 막거나 경고 메시지를 띄우는 봇을 사용하게 한다.
AntiSpoof 여러 문자를 섞은 문서명이나 기존 계정명과 혼동될 수 있는 계정명의 사용을 방지하게 하는 확장기능이다.
ConfirmEdit 스팸을 방지하기 위해 계정 생성이나 편집을 시도할 때 사용자가 수동으로 키보드/마우스 입력을 강제하게 하는 확인 절차를 거치게 한다. 단순한 수식의 결과를 입력하게 하는 SimpleCaptcha, 수식 확장기능으로 나타난 수식의 결과를 입력하게 하는 MathCaptcha, 일그러진 글씨를 출력시키고 올바른 글을 입력하게 하는 FancyCaptcha, 마우스의 입력이 봇인지 사람인지 온라인으로 점검하게 한 뒤에 애매할 경우 이미지의 정보를 해독하게 요구하는 ReCaptchaNoCaptcha, 위키 운영자가 임의로 지정한 질문을 답하게 하는 QuestyCaptcha 등으로 설정할 수 있다.
SpamBlacklist 미디어위키:Spam-blacklist(블랙리스트) 안에 있는 URL을 포함한 문서에 출력되지 않게 방지하는 확장기능이다. 정규 표현식을 활용한다.
TitleBlacklist 미디어위키:Titleblacklist(블랙리스트)를 지정해서 리스트 안에 표시된 문서의 제목이나 사용자 이름을 사용하지 못하게 방지하는 확장기능이다. 정규 표현식을 활용한다.
TorBlock Tor 사용을 감지하여 Tor를 이용한 사용자의 편집을 차단할 수 있게 하는 확장기능이다.

기타[편집 | 원본 편집]

기능 간단설명
DiscordNotifications 위키 내의 변경점, 최근 바뀜 등을 디스코드 알림으로 보낸다.

각주