nme.kr

도쿠위키 디렉토리

도쿠위키 디렉토리에 관한 내용이다.

Main Window

이 페이지는 DokuWiki와 함께 제공되는 기본 템플릿을 사용하는 페이지의 레이아웃을 설명합니다. 추가 템플릿 테마 를 설치하여 페이지의 모양을 변경하고 사용자 지정할 수 있습니다 .

DokuWiki 페이지는 네 부분으로 나뉩니다. 맨 위에는 페이지 머리글, 탐색 이동 경로, 페이지 콘텐츠 및 바닥 글이 있습니다.

dokuwiki

도쿠위키가 동작하는 모듈과 데이터가 존재하는 디렉토리이다.

bin

  • conf : 환경설정 파일이다.
    • users.auth.php : 사용자 로그인 정보1)가 저장되어 있다.
    • mime.conf : 업로드를 허용하는 파일 리스트를 지정한다.
    • dokuwiki.php : 도쿠위키를 처음 실행시 사용자에게 보여주는 기본 설정을 한다.
    • local.hp : 사용자가 설정한 위키 기본 셋팅값이다.
  • data : 사용자가 작성한 위키 데이터가 들어있는 저장소이다.
    • media : 사용자가 업로드한 외부나 첨부 파일을 저장한다.
    • pages : 사용자가 작성한 위키 페이지 파일을 저장한다.
  • inc

lib

vendor

  • doku.php
  • feed.php
  • index.php
  • install.php
  • .htaccess.dist
  • COPYING
  • README
  • VERSION

DokuWiki 설정

대부분의 DokuWiki 기능들은 다양한 설정 옵션을 통해 설정할 수 있습니다. 이런 설정 옵션들을 가장 쉽게 변경하는 방법은 환경 설정 관리를 사용하는 것 입니다. 이 방법은 위키 관리자가 온라인으로 브라우저를 사용하여 위키 설정을 바꿀 수 있게 합니다.

'환경 설정 관리'를 시작하기 위해서는 관리자로 로그인 하고, '관리' 버튼을 클릭하세요.

설정할 수 있는 것

DokuWiki의 시스템 옵션은 conf/dokuwiki.php 파일에 있습니다. 그러나, 이 파일은 시스템의 “기본값”이 저장되어 있습니다. 설정을 변경할려면 conf/local.php파일을 편집하거나 또는 이 파일이 없다면 만들어야 합니다. 이 파일에서 설정할 수 있는 옵션은 사용 가능한 옵션을 참조하세요.

사용자 이름과 (암호화된) 패스워드 그리고 접근제어규칙은 conf 디렉터리에 있는 users.auth.php 그리고 acl.auth.php에 저장되어 있습니다.

미디어 관리에서 새로운 파일을 업로드할 때 “업로드가 거부, 이 파일의 확장자는 허용되지 않습니다!”라는 메시지를 볼 수 있습니다. 이 동작은 conf/mime.conf 파일에서 제어합니다. 새로운 종류의 파일을 업로드할려면 mime.conf 파일에서 정의하세요.

페이지를 편집할 때 내용의 일부는 자동 변환이 이루어집니다. 툴팁(tooltips), 스마일 문자 또는 특수 문자입니다. 이러한 동작은 acronyms.conf, smileys.conf 또는 entities.conf 파일에서 제어됩니다.

설정 파일들

Debian 패키지로 설치했을 경우 모든 설정 파일들은 ./conf 폴더 또는 /etc/dokuwiki 폴더에 있습니다.

“기본 파일”은 DokuWiki에 포함되어 잇지만, “로컬 파일” 들은 위키 관리자가 작성해야 합니다.

로컬 파일이 지원되면, 기본 파일 대신 로컬 파일을 편집해야 업그레이드 문제를 피할 수 있습니다.

기본 파일 로컬 파일 설정 종류 기본 내용
dokuwiki.php local.php
local.protected.php
아래 참조 일반적인 wiki 설정
acronyms.conf acronyms.local.conf abbreviations 자동 약어 힌트
entities.conf entities.local.conf entities 자동 변환 문자열
interwiki.conf interwiki.local.conf interwiki interwiki 링크s
mime.conf mime.local.conf mime 업로드 MIME 타입설정
smileys.conf smileys.local.conf smileys 텍스트 → 이미지 변환
acl.auth.php acl 참조 접근 제어 설정
users.auth.php acl 참조 사용자와 암호
license.php license.local.php license 사용가능한 라이센스 목록
scheme.conf scheme.local.conf urlschemes 링크로 인식되는 URL 구성표
mediameta.php exif 편집가능한 이미지 Metadata
wordblock.conf wordblock.local.conf blacklist 스팸 블랙리스트
plugins.required.php plugins.local.php
plugins.protected.php
아래 참조 플러그인 활성/비활성
userscript.js javascript 사용자설정 JavaScript 확장
userstyle.css css 사용자설정 CSS 확장

테마 설정 파일

추가적인 설정 파일은 /​var/​lib/​dokuwiki/​lib/​tpl/​dokuwiki에서 찾을 수 있습니다.​ (데비안), 예를 들어 ​style.ini​. Style.ini는 기본 테마파일이 읽어오는 텍스트 파일입니다. 그리고 사용자는 마음 내키는 대로 설정할 수 있습니다. (예:페이지의 배경 색상)

플러그인 활성/비활성

설치된 플러그인은 기본으로 사용 가능하도록 활성화 된다. 이것들은 플러그인 관리자를 사용하여 plugins.local.php파일에 기록하여 사용할 수 없도록 비활성화 할 수 있다. conf/plugins.protected.php에 기록하여 특정 플러그인을 보호하도록 할 수도 있다.

자동적으로 도쿠위키는 다음과 같은 순서로 해당 환경 설정 파일들을 로드합니다:

  1. conf/plugins.php – 기본 플러그인
  2. conf/plugins.local.php – 플러그인 매니저에 의해 변경된 플러그인
  3. conf/plugins.required.php – 플러그인 매니저로 변경할 수 없는 핵심 플러그인
  4. conf/plugins.protected.php – 다른 파일에 우선 적용되는 설정

설정파일의 로딩 순서는 전역변수 $config_cascade에 의해 제어됩니다. preload.php 파일을 사용하여 이 동작을 변경할 수 있습니다.

설정 옵션

[DokuWiki]]의 대부분 기능들은 다양한 설정 옵션을 통해 설정할 수 있습니다. 이러한 옵션을 변경하는 가장 쉬운 방법은 환경 설정 관리를 사용하는 것입니다.

사용가능한 설정은 아래에 나열되어 있습니다. 그것들의 기본 값은 conf/dokuwiki.php 파일에 저장되어 있습니다. 설정을 변경하기를 원한다면 conf/local.php에서 변경해야 합니다. – 이는 이후 업그레이드에 의해 자신만의 설정이 변경되는 막을 수 있습니다. 환경설정 관리(config manager)에서도 이 파일을 사용할 수 있습니다. conf/local.protected.php 파일은 변경할 수 없는 환경 설정을 위해서도 사용할 수 있습니다.

여기에 conf/local.php의 샘플이 있습니다.:

<?php
$conf['title']     = "Admin's Wiki. ";

$conf['useacl']    = 1;
$conf['superuser'] = 'admin';

설정 파일에 대한 몇가지 주의사항입니다. 이 파일은 PHP 코드로 취급되므로 PHP 문법이 지켜져야 합니다. 예를 들면 줄 끝에 세미콜론(;)을 붙이는 것입니다. 변수에도 여러 형식이 있습니다.

  • 숫자(Number) 는 그대로 쓸수 있습니다. 예: 9
  • 문자열(String) 은 작은 따옴표(') 또는 큰 따옴표(“)로 묶어야 합니다. 예: 'foo bar'
  • 부울(Boolean)1 또는 0입니다.
  • 배열(Array) 은 위 형식 중 하나로 여러 값을 포함합니다.

이용 가능한 옵션

DokuWiki 템플릿

새로운 템플릿을 만들어 DokuWiki의 디자인을 커스트마이징할 수 있다. 템플릿은 PHP와 CSS 파일들로 <dokuwiki>/lib/tpl/ 디렉토리에 저장된다.(실제로 템플릿은 HTML로 만들어지며, 그 내용 안에 PHP가 사용된다.)

시작

출발점으로 새로운 템플릿을 만드는 가장 쉬운 방법은 이미 만들어진 템플릿을 가져오는 것이다. 스타트 템플릿(starter template)은 안전하고 Dokuwiki의 템플릿 표준을 따르므로 이것을 사용하는 것은 좋은 아이디어이다.

  1. 스타트 템플릿(starter template)을 설치한다.
  2. lib/tpl/starter 디렉토리를 lib/tpl/yourname 으로 변경한다.
  3. 설정관리자(configuration manager)에서 새로운 템플릿을 선택한다.
  4. 그 다음 템플릿 파일을 살펴본다. (디렉토리 구조 참조)
  5. 도쿠위키가 CSS dispatcher를 이용하여 어떻게 CSS를 처리하는지 살펴본다.
  6. 설정을 구성하는 방법은 플러그인과 유사하다. 사용자정의 템플릿의 설정을 얻을려면 tpl_getConf(<setting>)을 사용한다.

템플릿이 안정화되면 도쿠위키 템플릿 페이지에 등록할 수 있다.

템플릿 이름 규칙

A 유효한 템플릿 이름 (디렉토리):

  • a-z and 0-9 문자만 사용해야 한다.
  • 마침표 ., 줄표 -와 밑줄 _ 은 사용할 수 없다 :
    • 도쿠위키의 인프라스트럭처는 그것을 어디에서도 지원하지 않는다.
    • 밑줄 _의 사용은 역시 0의 인기평가를 준다.
  • 만약 동일한 이름이 서로 다른 두 템플릿에 의해 사용되면
    • 그것들은 상호 배타적이고 호환되지 않으며
    • 나아가 그들 중 하나만 dokuwiki.org의 템플릿 홈페이지를 가질 수 있다.

template.info.txt에 고유한 필드 값(즉, 템플릿 이름)이나 또는 이름을 덮어 쓸 수 있는 기존의 템플릿으로 하는 것이 중요하다.

디렉토리 구조

템플릿은 아래의 디렉토리 구조(모든 경로는 템플릿 디렉토리를 기준으로)를 따라야 한다.

모든 CSS파일은 style.ini에 명시되지만 적어도 화면 프리젠테이션과 인쇄용으로 각각 하나의 CSS파일이 필요하다.

  • <dokuwiki>/lib/tpl/<template>/
    • <filename>.css – 템플릿의 스타일시트(몇 이상이 있는 경우, /css 서브디렉토리에 그룹화 하는 것이 합리적)
    • script.js – 선택사항, 템플릿에 자바스크립트가 필요한 경우 적용
    • main.php – 도쿠위키의 전체적인 레이아웃
    • detail.php – 이미지 상세 페이지
    • mediamanager.php – 미디어 선택 팝업
    • images/ – 템플릿에서 사용되는 모든 이미지
    • conf/ – 설정파일들 (선택사항, 설정이 사용된다면)
      • default.php – 템플릿 설정을 위한 디폴트 설정
      • template settings을 위한 default settings (tpl_getConf()를 통해 접근 가능, 로컬셋팅은 DokuWiki의 전역 <dokuwiki>/conf/local.php에 저장된다)
      • metadata.phpconfiguration metadata는 환경설정관리자에서 사용될 설정의 속성들을 기술
    • lang/ – 언어 파일
      • <lang code>/lang.php – 템플릿의 현지화 문자에 사용 (선택사항, 필요할 경우 사용)
      • <lang code>/settings.php – 현지화 문localization strings used in the configuration manager (만약 설정이 사용된다면)
    • style.ini – see style.ini
    • favicon.ico – 미디어 디렉토리에 없다면 사용된다 (tpl_favicon() 참조)
    • template.info.txt템플릿 정보가 있는 텍스트 파일 필수사항!

함수

API documentation에서 사용 가능한 함수를 확인할 수 있다. 여기는 특이한 몇가지 예이다.

  • tpl_content()
    이 함수는 페이지 본문, 즉 TOC을 포함한 위키페이지의 내용을 출력한다. 이 함수가 호출될 때 인자로 false를 전달하면 TOC가 출력되지 않도록 할 수 있다.:
    tpl_content(false);
    
    이것은 TOC를 컨텐츠로부터 분리하여 화면의 어딘가 다른 곳에 두고 싶을 때 사용할 수 있다. 보다 자세한 사항은 아래의 tpl_toc()를 살펴보라.
  • tpl_toc()
    디폴트로 tpl_content() 함수는 실제 페이지 컨텐츠에 덧붙여 자신의 Table of Contents 표시를 처리한다. 만약 템플릿이 사이드바를 사용하거나 좀더 복잡한 레이아웃이라면 TOC를 페이지 컨텐츠로 부터 독립적으로 위치시키기를 원할 수 있다. 이것은 tpl_toc() 함수로 가능하다. 이것을 사용할 때는 tpl_content() 함수의 인수를 false로하여 TOC 자동 배포를 비활성화 하는 것이 중요하다.

    예제:
    <div id="content">
        <?php tpl_content(false)?>
    </div>
    
    <div id="sidebar">
        <?php tpl_toc()?>
    </div>
    
    tpl_toc() 함수는 세 가지 다른 소스에서 TOC를 생성한다 : $TOC 전역변수, 해당 페이지의 metadata 또는 admin pluginsgetTOC() 메소드이다. 이전 버전이나 tpl_toc() 미리보기에서는 metadata가 없기 때문에 이런 경우 $TOC 전역변수만 사용할 수 있다. $TOC 변수는 페이지 렌더러에 의해 채워지기 때문에 이것은 오직 tpl_content() 이후에 tpl_toc() 이 호출될 경우에 작동된다. 만약 이런사항이 템플릿의 레이아웃상 불가능하다면 이러한 문제해결을 위해 출력버퍼링을 사용할 수 있다.

    예제:
    <?php
        // 나중에 사용하기 위해 버퍼에 컨텐츠 렌더링
        ob_start();
        tpl_content(false);
        $buffer = ob_get_clean();
    ?>
    
    <div id="sidebar">
        <?php tpl_toc()?>
    </div>
    
    <div id="content">
        <?php echo $buffer?>
    </div>
    
  • tpl_getLang('key')
    이 함수는 템플릿의 현지화된 문장에 접근하기 위해 사용된다. 자세한 사항은 localization 개발 문서를 살펴보라.
  • 또한 다른 많은 유용한 템플릿 함수들를 사용할 수 있다. API 문서를 살펴보기 바란다.

전역 변수와 상수

유용한 전역 변수와 상수의 전체 목록은 environment 페이지를 참조하라.

자동 유지관리

디폴트 템플릿의 main.php 파일 거의 맨아래에는 tpl_indexerWebBug() 함수가 있다. 이 함수는 lib/exe/indexer.php에 대한 요청이 이루어질 수 있도록 HTML <img> 태그를 생성한다. 이 필수적인 도쿠위키 일부분은 위키가 원활한 작동이 유지되도록 중요한 유지관리작업을 제공한다. 모든 템플릿은 이 함수를 포함해야하고, 그렇지 않으면 위키는 제대로 작동하지 않을 수 있다 (예를 들어 search index가 만들어지지 않는 등).

'dokuwiki' class

dokuwiki 값을 가진 class 속성은 각각의 템플릿의 main.php, detail.phpmediamanager.php에서 HTML 엘리먼트로 둘러싸인 몇 컨텐츠에서 (전체 또는 적어도 tpl_contents() 주변) 추가되어야 한다. 이것은 만약 잠재적으로 상충되는 CSS를 가진 기존의 사이트와 통합된 경우 도쿠위키의 스타일이 다른 스타일과 충돌하지 않도록 한다.

삽입 후크

삽입 후크는 별도의 Template을 만들지 않고 자신의 DokuWiki에 정적인 컨텐츠를 추가할 수 있는 간편한 방법이다. 이것을 이용하여 각 페이지 아래에 표준 머리글이나 회사로고 또는 법적고지사항을 추가 할 수 있다.

도쿠위키 디폴트 템플릿은 템플릿의 디렉토리 내부에 특별한 이름을 가진 파일을 찾아서 페이지가 표시될 때 정확한 위치에 삽입한다. 이 파일들에 원하는 어떤 HTML이든 추가할 수 있다. 물런 디폴트 템플릿이나 또는 삽입 후크를 지원하는 템플릿(starter 템플릿 처럼)을 사용할 경우에만 해당된다.

PHP도 이 파일들 안에 포함할 수 있다.

사용가능한 Hooks

모든 여기 파일들은 템플릿 디렉토리 즉 lib/tpl/dokuwiki/에서 검색된다.

파일명 삽입되는 HTML의 위치
meta.html HTML <head>에 들어갈 내용, meta 요소를 추가하기 위해 사용 (e.g. Google Analytics code)
header.html the header 위(로고, 위키 이름 등)
sidebarheader.html 사이드바 내용 바로 전 (그러나 사이드바에 포함)
sidebarfooter.html 사이드바 내용 바루 후 (그러나 사이드바에 포함)
pageheader.html 위키페이지 컨텐츠 상단 (그러나 컨텐츠 섹션에 포함)
pagefooter.html 위키페이지 컨텐츠 하단 (그러나 컨텐츠 섹션에 포함)
footer.html 페이지 끝

사용자 설명을 위한 include hooks 또한 살펴보라.

dokuwiki.org에 템플릿 등록

템플릿을 만들었다면, 커뮤니티에 공유하길 바란다. 단지 template 네임스페이스에 템플릿의 이름을 딴 페이지를 만들어라. 예를 들면 템플릿의 이름이 sample이면 이 위키 안에 template:sample의 페이지를 만들어라.

At the top of the template page a few metadata fields have to be filled in. A description of each field can be found on the Repository Plugin page.

From version Ponder Stibbons on an automated update signalling is possible. For the update process to work properly it is necessary that the date “Last updated on” on the template's wiki page equals the date in the file template.info.txt in the source tarball/zip file. If this is not the case the update will not take place or the “Update” signal persists.

Uploads are not allowed on dokuwiki.org, so you need to host your template files somewhere else. We recommend to manage your source with a Revision Control System like git. If you do, it's easiest to use a public repository host like GitHub which offers also a bug tracker for your repository.

모듈 구조도

edit box (글쓰기 박스)

상단의 글은 ../inc/lang/ko(언어) :f:폴더의

edit.txt 파일을 수정해서 사용할 수 있다. (이 폴더를 잘 뒤져보면 도쿠위키 페이지내의 여러가지 문구들을 내 입맛대로 수정할 수 있다.)

가장 많이 쓰는 구문 편집

글 작성 / 수정 페이지 상단에 아예 만들어 두었다. (어차피 나는 개인 위키로 운영하고 있으니까, 복사 붙여넣기를 할 일이 많이 있으므로, 핸드폰에서 글 작성, 수정하려면 tool에 있는 아이콘들은 가끔 불편하다.) 기본적으로 수정하려면 ./inc/lang/ko(언어)/edit.txt 를 수정하면 되고. 도쿠위키문법이 적용되어 나타난다.

전체문법 || ** 두꺼운글씨 || // 이탤릭 || __ 밑줄 || <del></del> 취소선 || '' (윗점두번/쌍점)모노스페이스 ||
<hi></hi> 하이라이트(기본색 노랑) || <code></code> 글박스

색인구문

폴더구문

툴바 toolbar

devel:toolbar

파일 경로 : ./inc

아이콘 이미지 경로 : ./lib/images/toolbar

22.01.19 현재 편집 소스

main.php

도쿠위키 디자인 편집의 가장 핵심이 되는 main.php의 standard 버젼의 php구문과 설명이다.

main.php

1)
패스워드는 암호화 되어 있다
2)
플러그인을 수동으로 설치하려면 설명서에서 지정한 이름으로 변경하고 이 경로에다가 복사를 하고 아파치를 재실행하면 된다.