String 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 |
|---|---|---|
append | toán tử + | Có sẵn · tái sử dụng |
prepend | toán tử + | Có sẵn · tái sử dụng |
camelcase | camelcase | Đang phát triển |
capitalize | capfirst | Có sẵn · tái sử dụng |
downcase | lower | Có sẵn · tái sử dụng |
upcase | upper | Có sẵn · tái sử dụng |
escape | escape | Có sẵn · tái sử dụng |
handleize | slugify | Có sẵn · tái sử dụng |
handle | slugify | Có sẵn · tái sử dụng |
md5 | md5 | Đang phát triển |
newline_to_br | linebreaksbr | Có sẵn · tái sử dụng |
pluralize | pluralize | Có sẵn · tái sử dụng |
remove | cut | Có sẵn · tái sử dụng |
remove_first | remove_first | Đang phát triển |
replace | replace | Đang phát triển |
replace_first | replace_first | Đang phát triển |
slice | slice | Có sẵn · tái sử dụng |
split | split | Có sẵn · tái sử dụng |
strip | strip | Đang phát triển |
lstrip | lstrip | Đang phát triển |
rstrip | rstrip | Đang phát triển |
strip_html | striptags | Có sẵn · tái sử dụng |
strip_newlines | strip_newlines | Đang phát triển |
truncate | truncatechars | Có sẵn · tái sử dụng |
truncatewords | truncatewords | Có sẵn · tái sử dụng |
uniq | uniq | Đang phát triển |
url_escape | url_path_escape | Đang phát triển |
url_param_escape | urlencode | 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.
toán tử +
Có sẵn · tái sử dụngNối 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.
toán tử + · thay append
| Đầu vào | string |
|---|---|
| Tham số | Chuỗi nối phía sau |
| Đầu ra | string |
Dùng toán tử + hiện có; không cần alias append.
{{ "Áo" + " mới" }}Áo mớiTrường hợp biên và an toàn
Hai toán hạng phải là chuỗi, không ghép dữ liệu HTML chưa escape.
toán tử + · thay prepend
| Đầu vào | string |
|---|---|
| Tham số | Chuỗi nối phía trước |
| Đầu ra | string |
Dùng toán tử + hiện có; không cần alias prepend.
{{ "Mới: " + "Áo" }}Mới: ÁoTrường hợp biên và an toàn
Thứ tự toán hạng quyết định đầu ra; kiểm tra giới hạn chuỗ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.
- 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: append, prepend. 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.
camelcase
Đang phát triểnĐổi CamelCase. 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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ "summer-sale"|camelcase }}SummerSaleTrường hợp biên và an toàn
Đề xuất tách theo -, _, khoảng trắng; giữ Unicode, không dùng làm mã định danh bảo mật.
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: camelcase. 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.
capfirst
Có sẵn · tái sử dụngViết hoa đầ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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | string |
Dùng capfirst của Lingo, không thêm alias.
{{ "skai docs"|capfirst }}Skai docsTrường hợp biên và an toàn
Không tự viết thường phần còn lại; khác cách diễn giải capitalize của nền tảng khá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: capitalize. 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.
lower
Có sẵn · tái sử dụngĐổi chữ thườ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.
Hợp đồng sử dụng
| Đầu vào | string |
|---|---|
| Tham số | Không 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.
{{ "SKAI"|lower }}skaiTrường hợp biên và an toàn
Kiểm tra Unicode và chuỗi rỗ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: downcase. 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.
upper
Có sẵn · tái sử dụngĐổi chữ hoa. 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 | string |
|---|---|
| Tham số | Không 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.
{{ "skai"|upper }}SKAITrường hợp biên và an toàn
Không dùng đổi hoa/thường để quyết định quyền truy cập.
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: upcase. 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.
escape
Có sẵn · tái sử dụngEscape HTML. 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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | chuỗi HTML đã escape |
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.
{{ "<b>Áo</b>"|escape }}Mã HTML đầu ra: <b>Áo</b>Trường hợp biên và an toàn
Không áp dụng escaping HTML thay cho JavaScript hoặc URL. Không thêm safe.
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: escape. 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.
slugify
Có sẵn · tái sử dụngTạo slug. 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.
slugify · thay handleize
| Đầu vào | string |
|---|---|
| Tham số | Không có |
| Đầu ra | slug |
slugify đã có trong thư viện; strict profile chưa bật. Ưu tiên một tên chuẩn, không alias Liquid.
{{ "Summer Sale"|slugify }}summer-saleTrường hợp biên và an toàn
Unicode tiếng Việt và chuyển đ thành d phải chốt qua test trước; không tự cam kết transliteration. Không đảm bảo slug duy nhất. Strict profile chưa bật slugify.
slugify · thay handle
| Đầu vào | string |
|---|---|
| Tham số | Không có |
| Đầu ra | slug |
Cùng thiết kế với handleize; không tạo filter handle riêng.
{{ "Summer Sale"|slugify }}summer-saleTrường hợp biên và an toàn
Unicode tiếng Việt và chuyển đ thành d phải chốt qua test trước; không tự cam kết transliteration. Không đảm bảo slug duy nhất. Strict profile chưa bật slugify.
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: handleize, handle. 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.
md5
Đang phát triểnBăm MD5. 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 | string UTF-8 |
|---|---|
| Tham số | Không có |
| Đầu ra | 32 ký tự hex chữ thường |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ ""|md5 }}d41d8cd98f00b204e9800998ecf8427eTrường hợp biên và an toàn
Chỉ cho tương thích không bảo mật. Không mật khẩu, chữ ký, token; đề xuất tắt mặc định và ưu tiên thấp.
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: md5. 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.
linebreaksbr
Có sẵn · tái sử dụngĐổi xuống dò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.
Hợp đồng sử dụng
| Đầu vào | string |
|---|---|
| Tham số | Không có |
| Đầu ra | HTML xuống dòng |
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.
{{ "Dòng A\nDòng B"|linebreaksbr }}Nội dung hai dòng, phân tách bằng thẻ br.Trường hợp biên và an toàn
Kiểm thử autoescape với input có script và CRLF; không coi đây là sanitizer.
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: newline_to_br. 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.
pluralize
Có sẵn · tái sử dụngChọn số nhiề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 | number |
|---|---|
| Tham số | suffix: string; một hậu tố hoặc cặp dạng "y,ies" |
| Đầu ra | string hậu tố |
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.
{{ 2 }} item{{ 2|pluralize }}2 itemsTrường hợp biên và an toàn
Dùng i18n cho tiếng Việt/ngôn ngữ nhiều dạng số nhiều. Không truyền hai tham số phân cách dấu phẩy ngoài chuỗ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.
- 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: pluralize. 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.
cut
Có sẵn · tái sử dụngXóa chuỗi con. 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 | string |
|---|---|
| Tham số | substring: string |
| Đầu ra | string |
Dùng cut của Lingo; không thêm alias remove.
{{ "aa-bb-aa"|cut:"aa" }}-bb-Trường hợp biên và an toàn
Đối chiếu cut hiện có; chuỗi tìm rỗng không được gây vòng lặp vô hạn.
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: remove. 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.
remove_first
Đang phát triểnXóa lần đầu. 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 | string |
|---|---|
| Tham số | substring: string, bắt buộc |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ "aa-bb-aa"|remove_first:"aa" }}-bb-aaTrường hợp biên và an toàn
Chuỗi tìm rỗng → giữ nguyên; không thấy → giữ nguyên; Unicode theo chuỗi con hoàn chỉ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.
- 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: remove_first. 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.
replace
Đang phát triểnThay chuỗi. 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 | string |
|---|---|
| Tham số | pair: list<string> đúng 2 mục [old,new] |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ "red-red"|replace:["red", "blue"] }}blue-blueTrường hợp biên và an toàn
Đề xuất old rỗng → lỗi; thiếu/thừa mục → lỗi; thay tất cả, không regex.
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: replace. 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.
replace_first
Đang phát triểnThay lần đầu. 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 | string |
|---|---|
| Tham số | pair: list<string> đúng 2 mục [old,new] |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ "red-red"|replace_first:["red", "blue"] }}blue-redTrường hợp biên và an toàn
Chỉ thay lần đầu; old rỗng → lỗi. Một list là một tham số filter, không sửa parser theo 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.
- 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: replace_first. 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.
slice
Có sẵn · tái sử dụngCắt chuỗ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 | string hoặc list |
|---|---|
| Tham số | range: string dạng start:end |
| Đầu ra | cùng kiểu đầu vào |
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.
{{ "abcdef"|slice:"1:3" }}bcTrường hợp biên và an toàn
End không bao gồm; giữ quy tắc chỉ số âm và biên của Lingo, không port start,length 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: slice. 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.
split
Có sẵn · tái sử dụngTách chuỗ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 | string |
|---|---|
| Tham số | separator: string |
| Đầu ra | list<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.
{% for item in "a,b"|split:"," %}{{ item }};{% endfor %}a;b;Trường hợp biên và an toàn
Cần kiểm thử separator rỗng, chuỗi rỗng và dấu phân cách liên tiếp theo 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: split. 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.
strip
Đang phát triểnBỏ khoảng trắng. 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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ " Skai "|strip }}SkaiTrường hợp biên và an toàn
Loại whitespace Unicode ở cả hai đầu; không đổi khoảng trắng giữa.
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: strip. 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.
lstrip
Đang phát triểnBỏ trắng đầu. 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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ " Skai "|lstrip }}Skai Trường hợp biên và an toàn
Chỉ loại whitespace đầu; giữ nguyên cuố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: lstrip. 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.
rstrip
Đang phát triểnBỏ trắng cuối. 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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ " Skai "|rstrip }} SkaiTrường hợp biên và an toàn
Chỉ loại whitespace cuối; giữ nguyên đầ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.
- 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: rstrip. 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.
striptags
Có sẵn · tái sử dụngLoại tag HTML. 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 | string HTML |
|---|---|
| Tham số | Không 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.
{{ "<b>Áo</b>"|striptags }}ÁoTrường hợp biên và an toàn
Không phải HTML sanitizer. Không đánh dấu kết quả safe; script content có thể còn văn bản.
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: strip_html. 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.
strip_newlines
Đang phát triểnBỏ xuống dòng. 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 | string |
|---|---|
| Tham số | Không có |
| Đầu ra | string |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ "A\nB"|strip_newlines }}ABTrường hợp biên và an toàn
Bỏ CR, LF và cặp CRLF; giữ space/tab và ký tự khá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.
- 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: strip_newlines. 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.
truncatechars
Có sẵn · tái sử dụngRút gọn ký 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 | string |
|---|---|
| Tham số | length: integer |
| Đầ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.
{{ "Skai"|truncatechars:10 }}SkaiTrường hợp biên và an toàn
Ngưỡng nhỏ và ellipsis giữ đúng Lingo; không giả định giống dấu ba chấm 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: truncate. 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.
truncatewords
Có sẵn · tái sử dụngRút gọ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 | string |
|---|---|
| Tham số | count: integer |
| Đầ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.
{{ "Skai Docs"|truncatewords:5 }}Skai DocsTrường hợp biên và an toàn
Kiểm thử count 0/âm, Unicode và dấu câu theo 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: truncatewords. 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.
uniq
Đang phát triểnLoại mục trùng. 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 scalar |
|---|---|
| Tham số | Không có |
| Đầu ra | list mới |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{% for item in ["a","a","b"]|uniq %}{{ item }};{% endfor %}a;b;Trường hợp biên và an toàn
Giữ mục xuất hiện đầu. Phân biệt 1 và "1"; object đầu vào → lỗi để tránh so sánh mơ hồ.
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: uniq. 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.
url_path_escape
Đang phát triểnEscape URL. 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 | string một segment |
|---|---|
| Tham số | Không có |
| Đầu ra | string percent-encoded |
Bổ sung mới; cú pháp và hành vi bên dưới là đề xuất, chưa khả dụng.
{{ "summer sale"|url_path_escape }}summer%20saleTrường hợp biên và an toàn
Chỉ một path segment; / cũng phải encode. Không dùng cho URL đầy đủ hoặc query; không alias urlencode mơ hồ.
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: url_escape. 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.
urlencode
Có sẵn · tái sử dụngEscape tham số. 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 | string giá trị query |
|---|---|
| Tham số | Không có |
| Đầu ra | string encoded |
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.
{{ "a&b"|urlencode }}a%26bTrường hợp biên và an toàn
Không encode cả URL; không double encode; chốt cách biểu diễn space theo 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: url_param_escape. 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.