s_skaidocsTài liệu

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.

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
joinjoinCó sẵn · tái sử dụng
firstfirstCó sẵn · tái sử dụng
lastlastCó sẵn · tái sử dụng
mapmapĐang phát triển
sizelengthCó sẵn · tái sử dụng
sortdictsortCó 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ụng

Nố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.

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.

Hợp đồng sử dụng

Đầu vàolist các giá trị scalar
Tham sốseparator: string, bắt buộc
Đầu rastring

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.

VÍ DỤ LINGO / SKAI
{{ ["Áo", "Quần"]|join:", " }}
KẾT QUẢ MINH HỌA
Áo, Quần

Trườ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ụng

Lấ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.

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.

Hợp đồng sử dụng

Đầu vàolist hoặc string
Tham sốKhông có
Đầu raphầ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.

VÍ DỤ LINGO / SKAI
{{ ["Áo", "Quần"]|first }}
KẾT QUẢ MINH HỌA
Áo

Trườ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ụng

Lấ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.

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.

Hợp đồng sử dụng

Đầu vàolist hoặc string
Tham sốKhông có
Đầu raphầ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.

VÍ DỤ LINGO / SKAI
{{ ["Áo", "Quần"]|last }}
KẾT QUẢ MINH HỌA
Quần

Trườ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ển

Trí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.

Chưa khả dụngVí dụ minh họa thiết kế, không phải cú pháp đã hoạt động. Chỉ lập trình sau khi chốt kiểu dữ liệu, lỗi và kiểm thử.

Hợp đồng sử dụng

Đầu vàolist<object>
Tham sốfield: string, bắt buộc; chỉ key public
Đầu ralist 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.

CÚ PHÁP ĐỀ XUẤT · CHƯA CHẠY TRÊN RUNTIME
{# items = [{"title":"Áo"},{"title":"Quần"}] do resolver cấp #}
{% for title in items|map:"title" %}{{ title }};{% endfor %}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
Á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.

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.

Hợp đồng sử dụng

Đầu vàolist, map hoặc string
Tham sốKhông có
Đầu rainteger

Dùng length hiện có; không cần thêm alias size trong giai đoạn đầu.

VÍ DỤ LINGO / SKAI
{{ ["Áo", "Quần"]|length }}
KẾT QUẢ MINH HỌA
2

Trườ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ụng

Sắ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.

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.

Hợp đồng sử dụng

Đầu vàodanh sách map/struct (DTO public)
Tham sốfield: string bắt buộc
Đầu ralist sắp xếp theo field

Dùng dictsort, không tạo sort tương thích Liquid.

VÍ DỤ LINGO / SKAI
{# items = [{"price":20},{"price":10}] #}
{% for item in items|dictsort:"price" %}{{ item.price }};{% endfor %}
KẾT QUẢ MINH HỌA
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.