Variable 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.
Danh sách đặc tả
| THAM KHẢO | DÙNG TRONG SKAI | TRẠNG THÁI |
|---|---|---|
assign | set | Có sẵn · tái sử dụng |
capture | capture | Đang phát triển |
increment | set | Có sẵn · tái sử dụng |
decrement | set | Có 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.
set
Có sẵn · tái sử dụngGán biế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.
set · thay assign
| Đầu vào | biểu thức |
|---|---|
| Tham số | name = expression |
| Đầu ra | biến trong template |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% set label = "Áo" %}{{ label }}ÁoTrường hợp biên và an toàn
Không tạo assign; không mutating DB qua template.
set · thay increment
| Đầu vào | integer cục bộ |
|---|---|
| Tham số | set counter = counter + 1 |
| Đầu ra | giá trị tăng |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% set counter = 0 %}{% set counter = counter + 1 %}{{ counter }}1Trường hợp biên và an toàn
Không tái tạo namespace counter Liquid. Trong for dùng forloop.Counter; không state giữa request.
set · thay decrement
| Đầu vào | integer cục bộ |
|---|---|
| Tham số | set counter = counter - 1 |
| Đầu ra | giá trị giảm |
Dùng cú pháp chính thức Lingo; không triển khai alias Liquid.
{% set counter = 3 %}{% set counter = counter - 1 %}{{ counter }}2Trường hợp biên và an toàn
Giữ phạm vi set của Lingo; không tag decrement riêng.
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: assign, increment, decrement. 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.
capture
Đang phát triểnThu nội dung. Bản thiết kế v0.1 để review trước khi triển khai, chưa phải API phát hành.
Hợp đồng sử dụng
| Đầu vào | nội dung block |
|---|---|
| Tham số | Cú pháp đề xuất: capture name … endcapture |
| Đầu ra | string giữ trạng thái escape |
Đặc tả mở rộng Skai; chưa được engine hỗ trợ.
{% capture label %}Áo {{ 2 }}{% endcapture %}{{ label }}Áo 2Trường hợp biên và an toàn
Giới hạn byte capture; không tự safe; bảo toàn escaping để tránh double-escape/XSS. Nhu cầu ghép chuỗi đơn giản dùng set với +.
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.
- Sai tham số phải trả lỗi có tên filter/tag; preview hiển thị vị trí lỗi, production không lộ nội bộ.
- 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: capture. Hợp đồng và ví dụ là đề xuất riêng cho Skai, không sao chép contract 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.