Cấu trúc thư mục theme
Trang JSON hiện dùng cây element của Visual Builder. File HTML vẫn phục vụ layout, element custom và các trang viết trực tiếp bằng template.
Cấu trúc theme
my-theme/
├── assets/ CSS, JS, ảnh, font (flat)
├── config/ JSON cấu hình (flat)
│ ├── theme.json
│ ├── config_schema.json
│ ├── config_data.json
│ ├── nav-main.json
│ └── layout-main.json Cây element các slot của main
├── elements/ Template + schema element custom (flat)
│ └── promo-card.html
├── layouts/ Layout HTML dùng chung (flat)
│ └── main.html
├── locales/
│ ├── vi/common.json
│ └── en/common.json
├── pages/
│ ├── index.json Document skai.visual cho trang chủ
│ ├── about.json
│ └── projects/detail.json
├── blocks/ Nhóm element Visual dùng chung (flat)
│ └── contact-card.json
├── errors/ Trang lỗi (flat)
└── sections/ Tương thích theme cũ (flat)pages/*.json
Mỗi file gồm format, version, title, layout và children. Element trong children dùng id/type/props/styles. Không dùng sections/order của page engine cũ. Xem hướng dẫn page Visual.
Layout khai báo slots bằng schema trong HTML; config/layout-main.json chứa dữ liệu header/footer/sidebar. Xem cấu trúc layout và slot.
Quy tắc thư mục
Chỉ có một thư mục config/, không dùng configs/. Assets, config, elements, blocks, layouts, errors và sections lưu file phẳng. Pages có thể có thư mục con. Bản dịch lưu đúng locales/<locale>/<namespace>.json, không tạo locales/vi.json.
Element hệ thống được engine cung cấp; chỉ đặt element riêng của theme trong elements/. Thư mục sections được giữ cho theme cũ, không phải thành phần bắt buộc khi xây page Visual mới.