목차

1. 개요
2. 스킨 변수
2.1. 지원하는 변수들
2.1.1. imp
2.1.2. data
2.1.3. menu
2.1.3.1. 예제
3. 스킨 함수
3.1. 지원하는 함수
4. 기타
4.1. 다크모드

1. 개요

오픈나무의 스킨 제작 가이드 입니다. 오픈나무는 플라스크를 사용하므로 템플릿 엔진으로 Jinja2를 사용합니다. Jinja 기본 가이드

2. 스킨 변수

오픈나무의 스킨 시스템에서 변수는 {{변수_이름}}의 형태로 받아옵니다. {{변수_이름|safe}} 형태는 HTML 코드를 텍스트로 변환시키지 않고 적용하여 보여줍니다.

2.1. 지원하는 변수들

2.1.1. imp

오픈나무의 핵심 변수입니다. 위키의 중요한 내용을 담고 있습니다.
  • imp[0] : 문서 이름

  • imp[1][x]는 위키 설정에 대한 내용입니다.
  • imp[1][0] : 위키 이름
  • imp[1][1]|safe : 라이선스 내용
  • imp[1][2](A (1))
  • imp[1][3](A (2))
  • imp[1][4]|safe : 로고
  • imp[1][5]|safe : 전역 <HEAD>

  • imp[2][x]는 사용자 설정에 대한 내용입니다.
  • imp[2][0](A (3))
  • imp[2][1](A (4))
  • imp[2][2] : 사용자 상태 (0 : 비로그인, 1 : 로그인) {정수형}
  • imp[2][3]|safe : 사용자 <HEAD>
  • imp[2][4] : 사용자 이메일
  • imp[2][5] : 사용자 이름
  • imp[2][6] : 관리자 여부 (0 : 일반 사용자, 1 : 관리자)
  • imp[2][7] : 차단 여부 (0 : 일반 사용자, 1 : 차단된 사용자)
  • imp[2][8] : 알림 갯수
  • imp[2][9] : 가지고 있는 권한 (0 : 없을 때 {문자열}, 자세한 내용) {배열}
  • imp[2][10] : 아이피 or 사용자 이름
  • imp[2][11] : 사용자 토론 유무 (0 : 없음, 1 : 있음)

  • imp[3][0] : 서브 타이틀 (0 : 없을 때 {정수형})
  • imp[3][1] : 마지막으로 편집한 시간
  • imp[3][2]
  • imp[3][3]|safe : 필수 CSS, JS
  • imp[3][4] : 주시, 관심 문서 등록여부 확인 ('' : 문서 읽기 중 아님, 0 : 비로그인 상태, 1 : 등록하지 않음, 2 : 등록함) {정수형 : '' 제외 전부}

  • 특별한 부가 설명이 없으면 문자열 값 입니다.

2.1.2. data

{{data|safe}}

문서의 내용입니다. 필수로 들어가야 합니다.메뉴 관련 변수입니다. 배열값으로 전송합니다. 만약 메뉴가 없을 때는 정수 0을 전송합니다.

배열은 [[링크, 이름, 강조(5)]]로 구성 되어 있습니다.
2.1.3.1. 예제

for문 돌려서 메뉴를 표시하는 코드의 예제 입니다.

3. 스킨 함수

오픈나무 스킨 시스템에서 함수는 꼭 변수와 함께 {{'내용'|함수_이름}}이나 {{변수_이름|함수_이름}} 형태로 사용됩니다.

3.1. 지원하는 함수

  • load_lang : 내용의 대응하는 언어 내용을 불러옵니다.
  • md5_replace : 내용이나 변수의 MD5 해시를 반환합니다.
  • cut_100 : 100글자까지 내용이나 변수를 자릅니다.

4. 기타

4.1. 다크모드

다크모드 표준에 따라서 코드를 작성해야지만 에디터, 문법 다크모드 기능이 작동합니다.

다크모드 표준은 main_css_darkmode 쿠기 값을 1로 하면 ON 0으로 하면 OFF 입니다.



(A) (1) (2) (3) (4) 전역 HEAD로 통합되면서 삭제됨.
(5) 정수 1이면 강조되는 상태 정수 0이면 일반 상태