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.
if · thay if
| Đầu vào | biểu thức boolean/truthy |
|---|---|
| Tham số | Điều kiện sau if; đóng endif |
| Đầu ra | nhánh HTML |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% if 3 > 0 %}Có hàng{% endif %}Có hàngTrườ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ào | nhánh if đang mở |
|---|---|
| Tham số | Biểu thức sau elif |
| Đầu ra | nhánh đầu tiên đúng |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% if false %}A{% elif true %}B{% else %}C{% endif %}BTrường hợp biên và an toàn
elif chỉ trong if. Không thêm elsif.
else · thay else
| Đầu vào | khối if hoặc cấu trúc hỗ trợ |
|---|---|
| Tham số | Không có |
| Đầu ra | nhánh dự phòng |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% if false %}A{% else %}B{% endif %}BTrườ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ào | giá trị để so sánh |
|---|---|
| Tham số | Chuỗi điều kiện == |
| Đầu ra | một nhánh |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% set kind = "shirt" %}{% if kind == "shirt" %}Áo{% elif kind == "hat" %}Mũ{% else %}Khác{% endif %}ÁoTrườ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ào | giá trị để so sánh |
|---|---|
| Tham số | Chuỗi điều kiện == |
| Đầu ra | một nhánh |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% set kind = "hat" %}{% if kind == "shirt" %}Áo{% elif kind == "hat" %}Mũ{% endif %}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ào | biểu thức |
|---|---|
| Tham số | not hoặc ! theo Lingo |
| Đầu ra | nhánh phủ định |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% if not false %}Hiển thị{% endif %}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.