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

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

씨실과 날실 2020. 4. 30. 14: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 설치와 활용




[CategoryTree 익스텐션 관련 정보]

익스텐션 공식 안내 페이지

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

다운로드

미디어위키 내 배포 페이지

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

github 페이지

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


CategoryTree 익스텐션 기능

위키의 카테고리 구조를 트리(tree) 형식으로 보여주는 다이나믹 뷰 기능의 익스텐션입니다.

필요에 따라 AJAX를 사용하여 트리의 일부를 로드합니다.




익스텐션 다운로드 및 설치

다운로드 안내

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


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

익스텐션 공식 배포처

미디어위키 내 배포 페이지

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

github 페이지

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




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

1.34

https://extdist.wmflabs.org/dist/extensions/CategoryTree-REL1_34-b8ad728.tar.gz

1.33

https://extdist.wmflabs.org/dist/extensions/CategoryTree-REL1_33-ece3dc2.tar.gz

1.32

https://extdist.wmflabs.org/dist/extensions/CategoryTree-REL1_32-5866bb9.tar.gz

1.31

https://extdist.wmflabs.org/dist/extensions/CategoryTree-REL1_31-a171718.tar.gz

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

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

리눅스 서버의 경우

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


예시 - Ubuntu

$ sudo tar -xzf CategoryTree-REL1_34-b8ad728.tar.gz -C /var/www/html/w/extensions

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


윈도 서버의 경우

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


호스팅을 받는 경우

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




CategoryTree 익스텐션 필수 설정

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

wfLoadExtension( 'CategoryTree' );


... 전략 ...

# 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.

... 후략 ...

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


설치 확인

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




CategoryTree 익스텐션 추가 구성 설정

$wgCategoryTreeMaxChildren

// 기본값은 200

트리 노드에 표시되는 최대 자식 수를 설정합니다.


$wgCategoryTreeAllowTag

// 기본값은 true

<categorytree> 태그를 활성화합니다.


$wgCategoryTreeDynamicTag

// 기본값은 false

<categorytree>에서 트리의 첫 번째 레벨을 동적으로 로드합니다.

이런 식으로 캐시를 비활성화할 필요가 없습니다.


$wgCategoryTreeDisableCache

// 기본값은 21600 (=6시간)

<categorytree> 태그가 있는 페이지의 파서 캐시를 비활성화하거나 최대 캐시 시간 (초)을 설정합니다.


$wgCategoryTreeUseCache

// 기본값은 false

익명 사용자를 위한 HTTP 캐시를 활성화합니다.


$wgCategoryTreeMaxDepth

<category> 태그의 depth 매개 변수를 사용하여 트리를 처음에 확장할 수 있는 각 모드의 최대 깊이를 정의하는 배열입니다.

기본적으로 "카테고리"모드의 경우 2로 설정되고 다른 모드의 경우 1로 설정됩니다.

예를 들어 카테고리의 경우 3, 다른 모드의 경우 2로 설정하려면 아래 코드를 추가해주시면 됩니다.

$wgCategoryTreeMaxDepth = [10 => 2, 20 => 2, 0 => 3, 100 => 2];


$ wgCategoryTreeForceHeaders

// 기본값은 false

설정값이 true인 경우 모든 페이지에서 CategoryTree에 필요한 스크립트를 주문형이 아닌 강제로 적용합니다.

예를 들어 사용자 정의 스킨 또는 시스템 메시지 ( 2008년 7월 r36888 이후)에 CategoryTree가 비정상적인 방식으로 포함된 경우 필요할 수 있습니다 .


$wgCategoryTreeSidebarRoot

사이드 바에서 카테고리 트리를 통합하는 데 사용할 루트 카테고리 설정 코드입니다. ( 2008년 7월 r36920부터)

설정하지 않으면 트리가 통합되지 않습니다 (기본값).

CategoryTree를 사이드 바에 통합하는 것은 SkinTemplate을 기반으로하는 스킨, 즉 Modern, Monobook, Chick, Simple 및 MySkin에서만 작동하고, Standard, Nostalgia 또는 CologneBlue에서는 작동하지 않습니다.


$wgCategoryTreeDefaultOptions

배열로 적용할 기본 옵션입니다. (2008년 7월 r36864 이후)

사용 가능한 옵션은 익스텐션 공식 페이지의 <categorytree> 태그 항목에서 확인할 수 있습니다.

아래는 사용 예입니다.

$wgCategoryTreeDefaultOptions['mode'] = 'pages';


$wgCategoryTreeCategoryPageOptions

카테고리 페이지에서 배열로 사용할 옵션입니다.


$wgCategoryTreeSpecialPageOptions

Special:CategoryTree에서 배열로 사용할 옵션입니다.


$wgCategoryTreeSidebarOptions

사이드 바에 트리를 배열로 표시할 때 사용할 옵션입니다.


보다 자세한 내용은 익스텐션의 공식 페이지를 참고하시기 바랍니다.




분류(Category)와 관련 문서 만들기

어떤 위키 문서를 특정 분류(Category)에 속하게 하려면 위 그림처럼 아래의 위키 구문을 작성해주어야 합니다.

[[분류:해당 문서를 속하게 할 분류명]]


분류 구문을 적고 저장해주면 위 그림처럼 해당 문서가 특정 분류에 속하게 된 것을 볼 수 있습니다.

참고

참고로 붉은 글자는 위키에 아직 해당 문서가 존재하지 않다는 뜻입니다. 즉 위의 예시는 '독립운동가'라는 분류(Category)는 DB에 생성되었지만 해당 분류에 대한 문서는 존재하지 않는다는 뜻입니다.  해당 문서를 생성해주면 글자색이 파랗게 바뀌게 될 것입니다.


CategoryTree 익스텐션 사용법

CategoryTree 익스텐션은 세 가지 방법으로 사용할 수 있습니다.

1. 위키 페이지에 "사용자 정의 태그(custom tag)" 사용

2. "구문 분석 기능(파서 함수 parser function)" 사용

3. 특수문서 페이지에서 분류 문서 검색

CategoryTree 익스텐션은 카테고리 페이지에 나열된 하위 카테고리에 ► "확장" 위젯을 추가합니다.



<categorytree> 태그


<categorytree mode="pages">분류명</categorytree>

 카테고리 트리를 표현하는 사용자 정의 태그는 <categorytree>입니다.

예를 들어, 위키 페이지에 <categorytree>독립운동가</ categorytree>를 넣으면 독립운동가 카테고리의 콘텐츠가 해당 페이지에서 동적 트리로 표시됩니다.

<categorytree mode="pages">독립운동가</categorytree>

이 태그는 HTML과 유사한 구문을 사용하여 여러 속성을 사용할 수 있습니다. 이에 대한 내용은 너무 많으므로 링크를 거는 것으로 대신하도록 하겠습니다.


{{#categorytree}} 파서 함수

파서함수를 이용해 카테고리 트리(category tree)를 표현하려면 반드시 분류 문서가 존재해야 합니다. 만약 해당 분류 문서가 존재하지 않고 분류를 지정해놓으면 위 그림과 같이 오류를 출력합니다.


위 그림처럼 '분류:생성할 분류명' 문서를 따로 생성해줍니다.


그 다음에 파서함수를 이용해 카테고리 트리 구문을 작성하면 위 그림처럼 정상적으로 표시됩니다.


{{#categorytree:분류명}}

기본 함수는 위와 같습니다.


{{#categorytree:Foo|hideroot|mode=pages}}

위처럼 옵션을 달아 보다 세부적인 설정을 하여 카테고리 구조를 구현할 수도 있습니다.


파서 함수 구문을 사용하면 표시할 카테고리를 지정할 때 매직워드, 템플릿 및 템플릿 매개 변수를 사용하여 다양한 조건을 걸 수 있습니다.

{{#categorytree:{{PAGENAME}}}}

매직 변수를 사용하여 "이 페이지"범주 트리를 표시합니다 (범주 설명 페이지에서 유용 할 수 있음) .

{{#categorytree:{{root category}}}}

템플릿을 사용하여 카테고리를 지정합니다.

루트 카테고리의 이름은 Template:Root_category의 내용으로 정의됩니다.


{{#categorytree:{{{1}}}}}

템플릿 내부에서 CategoryTree를 사용할 때 템플릿 매개 변수를 사용하여 카테고리를 지정하십시오.

Template:Baz에서 {{#categorytree:{{{1}}}}}은 {{Baz | Foo}}를 사용하여 호출 할 수 있습니다.

특수 문서 Special:CategoryTree

Special:CategoryTree입니다. 거기에서 카테고리 이름을 입력한 다음 컨텐츠를 찾아 볼 수 있습니다.


특수:특수문서 페이지를 보면 위 그림처럼 문서목록 파트에 분류 목록과 분류 트리 링크가 있습니다.


분류 목록은 말 그대로 분류 목록을 확인핦 수 있습니다. 분류 목록 페이지에 들어가면 미디어위키 내 존재하는 모든 목록을 바로 확인할 수 있습니다.


분류 트리는 위 그림처럼 분류 목록만 확인할 수도 있고,


분류 문서 내에 속한 하위 문서들도 확인할 수 있습니다.