Array Filters
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 |
|---|---|---|
join | join | Có sẵn · tái sử dụng |
first | first | Có sẵn · tái sử dụng |
last | last | Có sẵn · tái sử dụng |
map | map | Đang phát triển |
size | length | Có sẵn · tái sử dụng |
sort | dictsort | 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.
join
Có sẵn · tái sử dụngNối phần tử. 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.
Hợp đồng sử dụng
| Đầu vào | list các giá trị scalar |
|---|---|
| Tham số | separator: string, bắt buộc |
| Đầu ra | string |
Tái sử dụng Lingo hiện có; kiểm thử tích hợp và allowlist trước khi công bố hỗ trợ trong theme.
{{ ["Áo", "Quần"]|join:", " }}Áo, QuầnTrường hợp biên và an toàn
Giữ hành vi Lingo: separator rỗng trả in.String(), không mặc định hiểu là phép nối không dấu. Backend nên chuẩn hóa list scalar; kiểm thử null/Unicode.
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: join. 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.
first
Có sẵn · tái sử dụngLấy mục đầu. 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.
Hợp đồng sử dụng
| Đầu vào | list hoặc string |
|---|---|
| Tham số | Không có |
| Đầu ra | phần tử hoặc ký tự đầu |
Tái sử dụng Lingo hiện có; kiểm thử tích hợp và allowlist trước khi công bố hỗ trợ trong theme.
{{ ["Áo", "Quần"]|first }}ÁoTrường hợp biên và an toàn
Kiểm thử danh sách rỗng và chuỗi Unicode theo phiên bản Lingo; không truy vấn thêm dữ liệu.
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: first. 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.
last
Có sẵn · tái sử dụngLấy mục cuối. 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.
Hợp đồng sử dụng
| Đầu vào | list hoặc string |
|---|---|
| Tham số | Không có |
| Đầu ra | phần tử hoặc ký tự cuối |
Tái sử dụng Lingo hiện có; kiểm thử tích hợp và allowlist trước khi công bố hỗ trợ trong theme.
{{ ["Áo", "Quần"]|last }}QuầnTrường hợp biên và an toàn
Kiểm thử danh sách rỗng và chuỗi Unicode; không thay đổi danh sách gốc.
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: last. 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.
map
Đang phát triểnTrích thuộc tính. 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 | list<object> |
|---|---|
| Tham số | field: string, bắt buộc; chỉ key public |
| Đầu ra | list giá trị cùng thứ tự |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{# items = [{"title":"Áo"},{"title":"Quần"}] do resolver cấp #}
{% for title in items|map:"title" %}{{ title }};{% endfor %}Áo;Quần;Trường hợp biên và an toàn
Đề xuất: key thiếu → null tại vị trí tương ứng; không tự bỏ mục. Cấm field bắt đầu bằng _ và không gọi method.
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: map. 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.
length
Có sẵn · tái sử dụngĐếm phần tử. 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.
Hợp đồng sử dụng
| Đầu vào | list, map hoặc string |
|---|---|
| Tham số | Không có |
| Đầu ra | integer |
Dùng length hiện có; không cần thêm alias size trong giai đoạn đầu.
{{ ["Áo", "Quần"]|length }}2Trường hợp biên và an toàn
Không dùng .size theo Liquid. Unicode và map phải theo hành vi length của Lingo.
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: size. 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.
dictsort
Có sẵn · tái sử dụngSắp xếp danh sách. 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.
Hợp đồng sử dụng
| Đầu vào | danh sách map/struct (DTO public) |
|---|---|
| Tham số | field: string bắt buộc |
| Đầu ra | list sắp xếp theo field |
Dùng dictsort, không tạo sort tương thích Liquid.
{# items = [{"price":20},{"price":10}] #}
{% for item in items|dictsort:"price" %}{{ item.price }};{% endfor %}10;20;Trường hợp biên và an toàn
Dùng hành vi Lingo hiện có; không hứa stable sort hoặc null-last. Strict profile hiện chưa bật; không viết lại sort.
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: sort. 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.