s_skaidocsTài liệu

Additional 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
datedateCó sẵn · tái sử dụng
defaultdefaultCó sẵn · tái sử dụng
default_errorsform_errorsĐang phát triển
default_paginationpagination_linksĐang phát triển
highlighthighlightĐang phát triển
highlight_active_tagactive_tag_classĐang phát triển
jsonjson_scriptCó sẵn · tái sử dụng
weight_with_unitweight_with_unitĐang phát triển

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.

date & date_go

Xem bảng token PHP và hướng dẫn date_go cho theme cũ →

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

Định dạng ngày. 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àotime.Time do resolver cung cấp
Tham sốformat: chuỗi token PHP, ví dụ Y-m-d
Đầ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
{# published_at = thời gian 2026-09-17 UTC #}
{{ published_at|date:"Y-m-d" }}
KẾT QUẢ MINH HỌA
2026-09-17

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

Timezone phải được resolver quyết định; không hỗ trợ %Y-%m-%d theo mặc định.

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: date. 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.

default

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

Giá trị dự phòng. 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àoany
Tham sốfallback: any
Đầu ragiá trị gốc hoặc fallback

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
{{ 0|default:"Chưa có" }}
KẾT QUẢ MINH HỌA
Chưa có

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

0, false, chuỗi rỗng đều falsy. Dùng default_if_none khi cần giữ 0.

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: default. 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.

form_errors

Đang phát triển

Hiển thị lỗi form. 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àomap field → list thông báo đã chuẩn hóa
Tham sốKhông có
Đầu raSafeHTML danh sách lỗi

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
{{ error.field_errors|form_errors }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
Danh sách lỗi theo thứ tự field từ schema, nội dung được escape.

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

Chỉ hiện lỗi public; không stacktrace/SQL; null → chuỗi rỗng. Cần adapter vì kiểu error hiện tại chưa chắc là list.

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: default_errors. 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.

Đang phát triển

Điều hướng phân trang. 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ử.
Đầu vàoPagination DTO
Tham sốoptions object tùy chọn: radius integer 1–3
Đầu raSafeHTML nav

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
{# pagination do resolver cấp, tổng trang 3, hiện tại 2 #}
{{ pagination|pagination_links }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
Điều hướng trang 1, 2 đang chọn, 3 với aria-current.

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

URL phải cùng scope ứng dụng; preserve query allowlist, encode. Không tự truy vấn DB; một trang → có thể ẩn nav.

  • 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.

Tên tham khảo: default_pagination. 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.

highlight

Đang phát triển

Đánh dấu từ khóa. 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àoplain text
Tham sốterm: string, không regex
Đầu raSafeHTML chứa mark

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
{{ "Áo xanh"|highlight:"xanh" }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
<mark>xanh</mark> nằm sau văn bản Áo.

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

Escape toàn bộ text trước, đánh dấu trên chuỗi gốc; term rỗng → text escaped; giới hạn số match.

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: highlight. 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.

active_tag_class

Đang phát triển

Đánh dấu tag lọc. 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àotag key
Tham sốselected: list<string>
Đầu rastring class hoặc rỗng

Đề xuất trả class thay HTML, dùng explicit selected list.

CÚ PHÁP ĐỀ XUẤT · CHƯA CHẠY TRÊN RUNTIME
{{ "sale"|active_tag_class:["sale","new"] }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
is-active

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

So key chính xác; không ghép HTML; không lấy global state ngầm.

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: highlight_active_tag. 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.

json_script

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

Xuất JSON. 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àoDTO public serializable
Tham sốid: string tùy chọn
Đầu raSafeHTML script type="application/json"

Dùng json_script của Lingo, bỏ đề xuất tojson/json mới.

VÍ DỤ LINGO / SKAI
{# public_data = {"name":"Skai"} #}
{{ public_data|json_script:"product-data" }}
KẾT QUẢ MINH HỌA
<script id="json-script-product-data" type="application/json">{"name":"Skai"}</script>

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

Filter đã encode HTML-sensitive characters. Không dùng trong attribute hoặc lồng script; strict profile chưa bật. Chỉ serialize DTO đã loại dữ liệu private.

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: json. 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.

weight_with_unit

Đang phát triển

Hiển thị khối lượng. 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àointeger gram
Tham sốunit: g hoặc kg, mặc định g
Đầu rastring

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
{{ 1250|weight_with_unit:"kg" }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
1.25 kg

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

Đề xuất đầu ra invariant cho v1; âm → lỗi; 0 hợp lệ. Locale formatter là mở rộng 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.
  • 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: weight_with_unit. 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.