DokuWiki

It's better when it's simple

사용자 도구

사이트 도구


ko:devel:metadata

메타 데이타 저장

위키 페이지에서 저장되는 내용물들이 data라면 마지막 편집 시간, 편집자, 파일 크기 같은 정보들은 위키 페이지들의 metadata로 간주될 수 있습니다. 이 페이지는 이런 추가 정보들이 DokuWiki내에서 저장되는 방법과 위치를 설명합니다.

분산 저장

DokuWiki는 모든 metadata를 한 장소에 저장하지 않습니다.(예를 들면 데이타베이스나 레지스트리) 대신 changelog, 데이타 파일 속성(예를 들면 파일 크기, 마지막 수정 시간), meta 디렉토리에서 metadata를 찾아 볼 수 있습니다.

분산 저장의 장단점에 대한 논의는 토론 페이지를 참고합니다.

Metadata 처리기

meta디렉토리 안의 정보는 초기에는 metadata renderer에 의해 쓰여집니다. meta디렉토리 안에서 $id.meta로 이름 붙여진 각 페이지에 대해 1 대 1 대응되는 파일이 생성되며, 파일은 각 키들이 Dublin Core요소 이름을 가진 직렬화된 다차원 PHP배열입니다.

처리기(renderer)는 페이지가 저장될 때, indexer를 통해 페이지가 추가되었을 때, DokuWiki가 처리하는 것이 아닌 다른 방법(예: 스크립트)에 의해 시작됩니다.

메타 데이타 Get, Set 함수들

inc/parserutils.php에는 메타 데이타를 다루는 2개의 함수가 있습니다:

''p_get_metadata($id)''

페이지의 다차원 배열을 넘겨줍니다.

인자 이름 설명
$id 위키 페이지 ID(필수)

''p_set_metadata($id, $data, $render, $persistent)''

메타데이타의 정보를 설정합니다.

인자 이름 설명
$id 위키 페이지 ID(필수)
$data 메타 데이타에서 설정되어야 하는 배열(key ⇒ value 쌍) (필수)
$render boolean, 페이지 메타 데이타가 renderer을 이용해 생성되어야할지 여부(옵션,기본값=false)
$persistent boolean, 특별한 메타 데이타값이 다음 메타 데이타 renderer를 통해 유지되어야 할 지 여부(기본값=true)

Data 구조

현재 아래 metadata는 core metadata renderer에 의해 저장됩니다:

  • 'title' – 문자열, 첫번째 제목
  • 'creator' – 문자열, 페이지 만든 사람의 실제 이름
  • 'description' – 배열
    • 'abstract' – 페이지의 raw 텍스트 abstract(250 ~ 500 문자)
    • 'tableofcontents' – 배열, header id('hid') 목록, 제목 ('title'), 목록 항목 타잎 ('type')과 header레벨 ('level')
  • 'contributor' 배열, 사용자 ID목록 ⇒ 페이지 작성에 공헌한 사용자들 실제 이름
  • 'date' – 배열
    • 'created' – timestamp, 생성 시간
    • 'modified'– timestamp, 가장 최근 수정 시간(부분 수정 옵션이 아닌 경우만)
  • 'relation' – 배열
    • 'isreferencedby' – 배열, 이 페이지에 링크된 페이지들 목록: ID ⇒ boolean(존재 여부)
    • 'references' – 배열, 링크하는 페이지들 목록: ID ⇒ boolean(존재 여부)

추가적으로, 플러그인들은 더 많은 metadata요소들을 지원할 수 있습니다. 계획:

  • 'subject' – 배열, 태그 목록(blog plugin)
  • 'relation' – 배열
    • 'ispartof' – 배열, 현재 페이지를 포함하고 있는 페이지 목록: ID ⇒ boolean(존재 여부) (includeblog plugin)
    • 'haspart' – 배열, 포함된 페이지 목록: ID ⇒ boolean(존재 여부) (includeblog plugin)

외부적으로 사용될 수 있는 메타 데이타의 키들은 Dublin Core element set에 정의된 이름을 사용해야 합니다.

Metadata Persistence

내부적으로 DokuWiki는 metadata를 위해 2개의 배열(currentpersistent)을 유지합니다.

persistent은 참조 과정중에 지워지지 않는 key/values쌍의 복사본을 저장하기 위한 배열입니다. p_get_metadata()를 사용하는 metadata에 대한 모든 요구들은 current배열을 사용하는 것는 것입니다.

persistenet 메타 데이타 키들의 예:

  • 'creator'
  • 'contributor'

Metadata와 플러그인

위에서 설명한 metadata get/set 함수 외에, 플러그인이 metadata와 상호작용할 수 있는 2가지 다른 메카니즘이 제공됩니다.

문법 플러그인$format==“metadata”이 처리하는 render()함수를 사용하여 current페이지에 대한 metadata를 생성할 수 있습니다. method by handling the .

Metadata key/value쌍은 renderer->meta배열에 추가되고 persistent값들 역시 renderer->persistent배열에 추가됩니다.

Action Plugins은 metadta 처리 전/후에 metadata를 들여다 보거나 수정하기 위한 PARSER_METADATA_RENDER를 위해 등록이 가능합니다.

번역

english version: dokuwiki-2006-11-06.

Add your email here if you created translated or modified whole or part of this page.

  • jk Lee - real mail domain is gmail, not zoo.com for spam filtering 2007-2-7 created
ko/devel/metadata.txt · 마지막으로 수정됨: 2013-03-25 13:06 저자 Klap-in

별도로 명시하지 않을 경우, 이 위키의 내용은 다음 라이선스에 따라 사용할 수 있습니다: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki