상위 문서: 라이믹스/매뉴얼
개요
라이믹스에서 테마는 사이트 전체를 감싸는 레이아웃, 모듈의 화면을 구성하는 스킨, 위젯의 표시 방식을 정하는 위젯 스킨을 가리킨다. 데이터 처리 기능과 화면 표현을 나누어 같은 모듈에도 여러 디자인을 적용할 수 있다.
템플릿 버전 선택
| 구분 | 템플릿 문법 v1 | 템플릿 문법 v2 |
|---|---|---|
| 용도 | XE·기존 라이믹스 자료와의 호환 | 라이믹스 2.2 이상 대상 신규 자료에 권장 |
| 특징 | HTML 태그·주석 방식 | Blade 스타일의 지시자와 문맥별 자동 이스케이프 |
| 파일 | 보통 .html | .blade.php 또는 버전을 표기한 .html |
| 유지 방침 | 호환성 유지를 위해 계속 지원, 새 기능 추가는 예정하지 않음 | 2.1.8부터 프리뷰, 2.2부터 정식 지원하도록 안내 |
v2는 Laravel Blade의 문법 스타일을 차용한 라이믹스 자체 구현이다. Laravel의 모든 기능이 동일하게 작동하는 것은 아니다. 특히 템플릿 상속·컴포넌트 관련 미지원 지시자를 확인한다.
버전 지정
.blade.php는 v2로 인식한다. .html 파일에서 v2를 쓰려면 최상단에 아래 중 하나를 선언한다.
@version(2)
또는 다음과 같이 쓴다.
<config version="2" />
버전을 표기하지 않은 .html은 v1으로 취급한다. 자료가 지원해야 하는 최소 라이믹스 버전을 먼저 정한 뒤 문법을 선택한다.
기본 예제
v1
<config autoescape="on" />
<include target="header.html" />
<load target="style.scss" />
<!--@foreach($items as $item)-->
<div class="item">{$item->title}</div>
<!--@endforeach-->
v2
@version(2)
@include('header')
@load('style.scss')
@foreach ($items as $item)
<div class="item">{{ $item->title }}</div>
@endforeach
$items는 모듈·위젯 등에서 전달했다고 가정한다. CSS·JS는 템플릿의 리소스 로딩 기능을 사용하면 코어의 압축·합치기와 SCSS·LESS 컴파일에 연동된다.
기존 테마를 옮길 때
- v1과 v2는 서로의 템플릿을 인클루드할 수 있으므로 필요한 파일부터 점진적으로 바꿀 수 있다.
- v2에서는
<block>,loop, 일반 태그의cond속성 등을 그대로 쓸 수 없다. 조건문과 반복문을 대응하는 지시자로 바꾼다. - 출력 문맥에 맞는 이스케이프를 확인한다. 원문 HTML을 출력하는 기능은 신뢰할 수 있는 데이터에 한하여 필요한 위치에서만 사용한다.
- PC·모바일, 로그인 전후, 권한별 화면과 리소스 경로를 점검한다.
같이 보기
출처
이 문서는 라이믹스 공식 매뉴얼을 바탕으로 설명과 예제를 정리하였다. 공식 매뉴얼은 CC BY-SA 4.0으로 배포된다. 원문의 기여 이력은 rhymix-docs 저장소에서 확인할 수 있다.
| 라이믹스 · 설치·운영·개발 매뉴얼 둘러보기 | |
|---|---|
| 설치·이전 | 설치 환경 · 설치 · 업데이트 · XE에서 이전 · 호환성 점검 · nginx · 도메인 변경 |
| 운영 | 백업·복원 · 업로드·서버 진단 · 캐시·성능 · Crontab · 보안 · 릴리즈 노트 |
| 개발 | 확장 기능 제작 · 애드온 · DB 연산자 · 라우터 · 이벤트 · 개발 보안 |
| 테마·API | 테마 제작 · 템플릿 v1 · 템플릿 v2 · 프레임워크 · PHP 전역 함수 · JS 라이브러리 · JS 함수 · 레거시 JS 함수 · String 확장 |
| 기여·연동 | 이슈·PR · 코딩 규칙 · 라이선스 · IP 대역 · 시간대 · 포토스와이프 · 모바일 푸시 · 네모의 꿈 색상 |