미디어위키/미디어위키 익스텐션

미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CodeEditor 설치와 활용

씨실과 날실 2020. 4. 30. 09:00

[익스텐션 목록]

기본 익스텐션

2019/10/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Interwiki 설치와 활용

2020/04/28 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Nuke 설치와 활용

2020/04/28 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Renameuser 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CiteThisPage 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Replace Text 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) WikiEditor 설치와 활용

2020/04/30 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CodeEditor 설치와 활용

2020/04/30 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CategoryTree 설치와 활용

2020/05/01 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Cite 설치와 활용

2020/05/01 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ImageMap 설치와 활용

2020/05/02 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) InputBox 설치와 활용

2020/05/02 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ParserFunctions 설치와 활용

2020/05/03 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Poem 설치와 활용

2020/05/03 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) SyntaxHighlight 설치와 활용

2020/05/04 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) PDF Handler 설치와 활용

2020/05/04 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ConfirmEdit 설치와 활용

2020/05/05 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) SpamBlacklist 설치와 활용

2020/05/05 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) TitleBlacklist 설치와 활용

2020/05/06 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Gadgets 설치와 활용

2020/05/06 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) LocalisationUpdate 설치와 활용

2020/05/07 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) MultimediaViewer 설치와 활용

2020/05/07 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) OATHAuth 설치와 활용




[CodeEditor 익스텐션 관련 정보]

익스텐션 공식 안내 페이지

https://www.mediawiki.org/wiki/Extension:CodeEditor

다운로드

미디어위키 내 배포 페이지

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CodeEditor

github 페이지

https://github.com/wikimedia/mediawiki-extensions-CodeEditor


내용 작성 중입니다.


CodeEditor 익스텐션 기능

구문 강조 코드 편집기 익스텐션입니다.

Ace 편집기 위젯이 내장된 WikiEditor의 고급 편집 도구 모음을 확장하여 사용자/사이트 JS 문서, CSS 페이지에 대한 편리한 코드 편집 기능을 제공하며, Scribunto 익스텐션이 설치된 경우 모듈 네임 스페이스의 페이지에 대한 보다 편한 코드 작성 기능을 제공합니다.

참고

다른 익스텐션들도 유용하지만 위에서 언급된 두 익스텐션들은 위키 운영에 있어 필수적인 익스텐션입니다.

WikiEditor 익스텐션이 위키 문법 사용에 익숙지 않은 초보 사용자들에게 문서 작성 및 편집을 쉽게 할 수 있도록 도와주어 위키 자체에 대한 진입 장벽을 낮춰 준다면 Scribunto 익스텐션은 고급 위키 사용자가 위키 문서 페이지에 동적인 화면을 구성할 수 있도록 스크립트 언어를 위키 문서 내에 포함시킬 수 있도록 도와주는 프레임워크를 제공하는 익스텐션입니다.

CodeEditor 익스텐션 공식 페이지

https://www.mediawiki.org/wiki/Extension:CodeEditor

WikiEditor 익스텐션 공식 페이지

https://www.mediawiki.org/wiki/Extension:WikiEditor

Scribunto 익스텐션 공식 페이지

https://www.mediawiki.org/wiki/Extension:Scribunto

Scribunto 익스텐션의 경우 대부분의 다른 익스텐션과는 달리,  3~4가지 필요조건을 충족해야 하는데 이것들을 수행하기 위해서는 상당한 지식이 필요합니다.




익스텐션 설치 조건

WikiEditor 익스텐션이 필수로 설치, 활성화되어 있어야 합니다. Scribunto 익스텐션은 선택사항이지만 설치할 것을 권장하는 바입니다.


익스텐션 다운로드 및 설치

다운로드 안내

익스텐션 다운로드 및 설치 방법은 아래 링크를 참고하시기 바랍니다.


사용 중인 미디어위키의 버전에 맞는 배포 익스텐션 압축 파일을 다운로드받습니다.

익스텐션 공식 배포처

미디어위키 내 배포 페이지

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CodeEditor

github 페이지

https://github.com/wikimedia/mediawiki-extensions-CodeEditor




미디어위키 버전별 익스텐션 다운로드 주소

1.34

https://extdist.wmflabs.org/dist/extensions/CodeEditor-REL1_34-b3fb04b.tar.gz

1.33

https://extdist.wmflabs.org/dist/extensions/CodeEditor-REL1_33-bfb8a3a.tar.gz

1.32

https://extdist.wmflabs.org/dist/extensions/CodeEditor-REL1_32-1ff0d89.tar.gz

1.31

https://extdist.wmflabs.org/dist/extensions/CodeEditor-REL1_31-886d797.tar.gz

위 주소는 코드 수정으로 바뀔 수 있으므로 다운이 받아지지 않는다면 위 공식 루트를 통해 다운받으시기 바라비니다.

다운로드 받은 압축 파일을 서버 안 미디어위키 설치 폴더 내에 있는  extensions폴더 안에 풀어줍니다.

리눅스 서버의 경우

$ sudo tar -xzf CodeEditor-REL1_34-b3fb04b.tar.gz -C /미디어위키 설치 경로/extensions


예시 - Ubuntu

$ sudo tar -xzf CodeEditor-REL1_34-b3fb04b.tar.gz -C /var/www/html/w/extensions

위 명령은 제 블로그를 그대로 따라오신 분의 경우 적용되는 예시입니다.


윈도 서버의 경우

탐색기로 압축 파일을 해당 위치에 풀어주시면 됩니다.


호스팅을 받는 경우

파일질라, 알FTP 등 FTP 프로그램을 이용해 미리 풀어 놓은 익스텐션 폴더(CodeEditor)를 통째로 해당 위치에 전송해줍니다.




CodeEditor 익스텐션 필수 설정

미디어위키의 환경 설정 파일인 LocalSettings.php 파일에 다음과 같은 코드를 추가해줍니다.

wfLoadExtension( 'CodeEditor' );


... 전략 ...

# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtensions('ExtensionName');
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'WikiEditor' );

# End of automatically generated settings.
# Add more configuration options below.

... 후략 ...

미디어위키 설치시 기본 제공 익스텐션을 함께 설치하도록 설정한다면 코드는 보통 위 예시와 같은 위치에 추가됩니다.


$wgDefaultUserOptions['usebetatoolbar'] = 1;

위 코드는 베타 툴바 사용을 활성화하는 것으로, 이름이 베타지만 필수 옵션이나 마찬가지입니다.


설치 확인

미디어위키의 특수:버전(= Special:Version) 문서를 확인하면 위 익스텐션이 추가된 것을 확인할 수 있습니다.




CodeEditor 익스텐션 추가 구성 설정

추가 구성 코드

$wgCodeEditorEnableCore


미디어위키 안의 사용자 및 기타 핵심 네임스페이스의 JavaScript 및 CSS 페이지에서 편집기를 비활성화하려면 아래와 같이 코드를 추가해주시기 바랍니다. (기본값은 "true")

$wgCodeEditorEnableCore = false;


$wgScribuntoUseCodeEditor

Scribunto 익스텐션에 이 익스텐션 기능을 사용하려면 아래와 같이 코드를 추가해주시기 바랍니다. ( 예 : 모듈 네임 스페이스 세트에서 (기본값은 "false"))

$wgScribuntoUseCodeEditor = true;

이 구성 매개 변수는 Scribunto 확장에서 제공되므로 CodeEditor 및 Scribunto 익스텐션을 호출한 후에 추가해야합니다.

알기 쉬운 설명

위 문장을 쉽게 풀어 설명하자면 다음과 같습니다.

컴퓨터는 스크립트나 프로그래밍 언어를 해석할 때 위에서 아래로 순차적으로 읽어들여 실행합니다. 따라서 구문 작성 시 실행 순서대로 작성해야 합니다.

따라서 LocalSettings.php 파일에서 CodeEditor 및 Scribunto 익스텐션 활성화 코드 즉 아래의 코드가 먼저 나오고 나서 위의 $wgScribuntoUseCodeEditor 코드가 나와야 합니다. 순서가 뒤바뀌면 오류가 납니다.

wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'Scribunto' );

$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgScribuntoDefaultEngine = 'luastandalone';



$wgScribuntoUseGeSHi

Scribunto 및 SyntaxHighlight 익스텐션에  이 익스텐션을 사용하여 모듈 네임 스페이스 세트에서 구문 강조를 허용하려면 아래와 같이 코드를 추가해주시기 바랍니다. (기본값은 "false")

$wgScribuntoUseGeSHi = true;


이 구성 매개 변수는 Scribunto 확장에 의해 제공되므로 Scribunto 익스텐션뿐만 아니라 CodeEditor를 호출 한 후에 추가해야합니다.

wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'Scribunto' );

$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgScribuntoDefaultEngine = 'luastandalone';

후략

$wgScribuntoUseGeSHi = true;

이 작업을 수행하려면 Scribunto 및 SyntaxHighlight 확장도 설치해야합니다.

Scribunto 익스텐션 공식 페이지

https://www.mediawiki.org/wiki/Extension:Scribunto

SyntaxHighlight 익스텐션 공식 페이지

https://www.mediawiki.org/wiki/Extension:SyntaxHighlight


자바 스크립트

MediaWiki JS hook에 연결하여 ACE 편집기의 구성을 변경할 수 있습니다. hook에 전달된 인수는 ACE 편집기 세션 입니다.



CodeEditor 익스텐션 사용법