WIKI

SEOUL_still under construction‍
wiki:sw:dokuwiki
pageinfo
status
Draft

DokuWiki

개요

도쿠위키는 현존하는 (소형) 위키 엔진 중 가장 범용적이고 간편한 솔루션이다. PHP를 사용하기 때문에 배포가 쉬우며, 그렇지만 모던 PHP에 종속되지 않기 때문에 일반적인 호스팅 환경에서도 잘 작동하고, 파일 기반이기 때문에 저사양에서도 잘 작동한다. 코어 엔진은 극히 최소한의 기능만 담고 있으며 추가적인 기능은 extension으로 구현하도록 되어 있다. 즉 도쿠위키는 다른 위키엔진보다도 더 유연하고 개인화되어있다. 사실상 ‘개인 위키’란 컨셉에 가장 잘 들어맞는 소프트웨어는, 지금까지도 도쿠위키다. 그러나, 아래 마크업 단락에서 다루듯 도쿠위키가 가진 단점 또한 선명하다.

마크업

도쿠위키는 여타의 다른 마크업 언어와는 전혀 다른, 상당히 괴상한 문법을 하고 있다. 가장 거슬리는 것은 h1에서 아내로 내려가면서 등호의 개수가 줄어드는 것이다. 단순히 ‘가장 상위의 단락 기호는 가장 눈에 잘 띄여야 한다’라는 생각으로밖에 읽히지 않는, 쓰레기같은 문법이다. 의미론적이고 기능적인 차원에서 헤딩은 하위로 갈 수록(즉 깊어질 수록) 더 많은 수의 기호로 정의되어야 하는 것이 맞다. markdown이나 asciidoc 등 수많은 다른 마크업들이 괜히 반대로 규정하는 것이 아니다. 도쿠위키의 단 하나의 단점을 꼽자면, 이러한 불합리한 마크업 문법을 꼽을 수 있을 정도다.

기능

도쿠위키의 주요 기능에 대한 정리.

백업

최소한 다음 디렉토리를 백업하면 도쿠위키의 전체 컨텐츠를 복원할 수 있다. 나머지는 코어 파일을 그대로 사용하면 된다. 단 코어 파일을 고쳤다면 해당 파일도 백엄해야 한다.

  • data/pages: 최신 버전의 페이지
  • data/attic: 페이지의 과거 리비전
  • data/meta: 페이지 메타데이터
  • data/media: 최신 버전의 미디어
  • data/media_attic: 미디어의 과거 리비전
  • data/media_meta: 미디어 메타데이터
  • conf: 설정
  • lib: 플러그인과 템플릿

플러그인

Data

링크

위키 페이지에 구조화된 데이터를 추가하고, 이를 쿼리할 수 있도록 한다.

기본 타입

Data 플러그인은 이름에 (밑줄과 함께) 붙은 접미사로 타입을 구분한다. 충분히 타입을 유추하는 것이 가능할 것이나, 무결성을 확보하기 위한 결정일 것이다.

  • text: 접미사가 없으면 기본적으로 텍스트로 인식한다.
  • dt: YYYY-MM-DD 형식의 날짜를 입력받는다.
  • page: 페이지명을 입력받는다. 절대경로만 인식하므로 주의해야 한다.
  • title: 페이지명에 더해, 파이프 기호와 함께 표시하고자 하는 제목을 함께 입력받을 수 있다.
  • nspage
  • url
  • tag
  • mail
  • img<num>: 내부 id 또는 외부 url을 통해 이미지를 입력받는다. <num>은 이미지의 너비를 뜻하며, 기본값은 40이다.
  • wiki: 위키텍스트를 입력받는다. 성능 저하의 가능성이 있으므로 남용하지 않는 것이 좋다.
  • pageid
  • hidden: 페이지나 편집기(하술)에 표시하지 않는 값.

한 항목에 여러 값을 받고 싶다면 (타입 식별자를 포함한) 맨뒤에 s를 붙이면 된다. 단 s로 끝나는 이름의 경우, 밑줄을 붙여서 혼동을 피해야 한다.

사용자 타입

사용자 타입(type aliases)은 기본 타입을 기반으로 새로운 타입을 생성하는 기능이다. 관리 메뉴의 ‘필드 별칭‘ 항목을 통해 정의할 수 있으며, 기본 타입에 대입할 때 앞뒤에 추가할 접두사/접미사. 유효한 값의 목록 등을 정의할 수 있다.

Strata

Data 플러그인이 하나의 페이지에 하나의 데이터 엔트리만을 삽입할 수 있다는 한계를 극복하기 위해 만들어진 플러그인. sqlite 외에 mysql, postgresql 등의 데이터베이스 엔진을 선택할 수 있으며, SPARQL 형태의 쿼리를 요청할 수 있다.

Tips

  • DokuWiki는 업그레이드시 기본 페이지를 함께 덮어씌우므로, 해당 페이지를 수정했을 경우 유의해야 한다.
wiki/sw/dokuwiki.txt · 마지막으로 수정됨: 2024/11/16 13:01 저자 clockoon