s_skaidocsTài liệu

Control Flow Tags

Tài liệu theo cú pháp Lingo/Django. Cuộn xuống để đọc đầy đủ hướng dẫn; chọn tên trong danh sách để đến phần tương ứng.

Không phát triển lại tính năng có sẵnCác tên tham khảo từ Liquid được ánh xạ sang Lingo hoặc helper Skai. Chỉ những khả năng còn thiếu mới có badge “Đang phát triển”.

Danh sách đặc tả

THAM KHẢODÙNG TRONG SKAITRẠNG THÁI
ififCó sẵn · tái sử dụng
elsifelifCó sẵn · tái sử dụng
elseelseCó sẵn · tái sử dụng
caseif / elifCó sẵn · tái sử dụng
whenif / elifCó sẵn · tái sử dụng
unlessif notCó sẵn · tái sử dụng

Quy ước cú pháp, bảo mật và trạng thái →

Tham khảo danh mục: Haravan. Đặc tả Skai được biên soạn độc lập theo Lingo.

if

Có sẵn · tái sử dụng

Điều kiện. Dùng khả năng hiện có, không tạo alias hoặc triển khai engine trùng chức năng.

Phạm vi hỗ trợCó trong thư viện Lingo hoặc helper Skai không đồng nghĩa được phép trong mọi runtime. Chính sách allowlist vẫn áp dụng; không tự mở quyền trong thay đổi tài liệu này.

if · thay if

Đầu vàobiểu thức boolean/truthy
Tham sốĐiều kiện sau if; đóng endif
Đầu ranhánh HTML

Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.

VÍ DỤ LINGO / SKAI
{% if 3 > 0 %}Có hàng{% endif %}
KẾT QUẢ MINH HỌA
Có hàng

Trường hợp biên và an toàn

0, false, nil, chuỗi rỗng đều falsy; điều kiện không truy vấn DB.

elif · thay elsif

Đầu vàonhánh if đang mở
Tham sốBiểu thức sau elif
Đầu ranhánh đầu tiên đúng

Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.

VÍ DỤ LINGO / SKAI
{% if false %}A{% elif true %}B{% else %}C{% endif %}
KẾT QUẢ MINH HỌA
B

Trường hợp biên và an toàn

elif chỉ trong if. Không thêm elsif.

else · thay else

Đầu vàokhối if hoặc cấu trúc hỗ trợ
Tham sốKhông có
Đầu ranhánh dự phòng

Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.

VÍ DỤ LINGO / SKAI
{% if false %}A{% else %}B{% endif %}
KẾT QUẢ MINH HỌA
B

Trường hợp biên và an toàn

Vòng lặp rỗng dùng empty, không dùng else Liquid.

if / elif · thay case

Đầu vàogiá trị để so sánh
Tham sốChuỗi điều kiện ==
Đầu ramột nhánh

Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.

VÍ DỤ LINGO / SKAI
{% set kind = "shirt" %}{% if kind == "shirt" %}Áo{% elif kind == "hat" %}Mũ{% else %}Khác{% endif %}
KẾT QUẢ MINH HỌA
Áo

Trường hợp biên và an toàn

Dùng điều kiện rõ ràng; không cần tag case mới.

if / elif · thay when

Đầu vàogiá trị để so sánh
Tham sốChuỗi điều kiện ==
Đầu ramột nhánh

Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.

VÍ DỤ LINGO / SKAI
{% set kind = "hat" %}{% if kind == "shirt" %}Áo{% elif kind == "hat" %}Mũ{% endif %}
KẾT QUẢ MINH HỌA
Mũ

Trường hợp biên và an toàn

Không tạo tag when riêng.

if not · thay unless

Đầu vàobiểu thức
Tham sốnot hoặc ! theo Lingo
Đầu ranhánh phủ định

Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.

VÍ DỤ LINGO / SKAI
{% if not false %}Hiển thị{% endif %}
KẾT QUẢ MINH HỌA
Hiển thị

Trường hợp biên và an toàn

Không đổi truthiness cho tương thích Liquid.

Tiêu chí nghiệm thu

  • Kiểm thử ví dụ ở trên cùng đầu vào rỗng, Unicode, sai kiểu và giới hạn đầu ra.
  • Khóa hành vi của implementation hiện tại bằng test; không sửa ngữ nghĩa để khớp Liquid.
  • Không I/O, truy vấn hoặc thay đổi dữ liệu từ template; dữ liệu commerce chỉ qua resolver có quyền.
  • Kiểm thử escaping và profile runtime trước khi công bố cho theme.

Nguồn & quyết định chuyển đổi

Tên tham khảo: if, elsif, else, case, when, unless. Dùng tên/cú pháp Lingo hoặc helper Skai ghi ở đầu trang, không tạo alias tương thích Liquid.

Nguồn tham khảo Haravan · Quy ước đặc tả Skai

Đối chiếu mã nguồn local: skaiplatform/lingo/filters_builtin.go, tags_*.go, security.go và skaiweb/services/theme_engine/functions.go. Badge “Đang phát triển” biểu thị tài liệu dự kiến, không xác nhận engine đã được triển khai.