s_skaidocsTài liệu

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.

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
appendtoán tử +Có sẵn · tái sử dụng
prependtoán tử +Có sẵn · tái sử dụng
camelcasecamelcaseĐang phát triển
capitalizecapfirstCó sẵn · tái sử dụng
downcaselowerCó sẵn · tái sử dụng
upcaseupperCó sẵn · tái sử dụng
escapeescapeCó sẵn · tái sử dụng
handleizeslugifyCó sẵn · tái sử dụng
handleslugifyCó sẵn · tái sử dụng
md5md5Đang phát triển
newline_to_brlinebreaksbrCó sẵn · tái sử dụng
pluralizepluralizeCó sẵn · tái sử dụng
removecutCó sẵn · tái sử dụng
remove_firstremove_firstĐang phát triển
replacereplaceĐang phát triển
replace_firstreplace_firstĐang phát triển
slicesliceCó sẵn · tái sử dụng
splitsplitCó sẵn · tái sử dụng
stripstripĐang phát triển
lstriplstripĐang phát triển
rstriprstripĐang phát triển
strip_htmlstriptagsCó sẵn · tái sử dụng
strip_newlinesstrip_newlinesĐang phát triển
truncatetruncatecharsCó sẵn · tái sử dụng
truncatewordstruncatewordsCó sẵn · tái sử dụng
uniquniqĐang phát triển
url_escapeurl_path_escapeĐang phát triển
url_param_escapeurlencodeCó 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ụng

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

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.

toán tử + · thay append

Đầu vàostring
Tham sốChuỗi nối phía sau
Đầu rastring

Dùng toán tử + hiện có; không cần alias append.

VÍ DỤ LINGO / SKAI
{{ "Áo" + " mới" }}
KẾT QUẢ MINH HỌA
Áo mới

Trườ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àostring
Tham sốChuỗi nối phía trước
Đầu rastring

Dùng toán tử + hiện có; không cần alias prepend.

VÍ DỤ LINGO / SKAI
{{ "Mới: " + "Áo" }}
KẾT QUẢ MINH HỌA
Mới: Áo

Trườ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.

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àostring
Tham sốKhông có
Đầ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
{{ "summer-sale"|camelcase }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
SummerSale

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

Viế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.

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àostring
Tham sốKhông có
Đầu rastring

Dùng capfirst của Lingo, không thêm alias.

VÍ DỤ LINGO / SKAI
{{ "skai docs"|capfirst }}
KẾT QUẢ MINH HỌA
Skai docs

Trườ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.

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àostring
Tham sốKhông 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
{{ "SKAI"|lower }}
KẾT QUẢ MINH HỌA
skai

Trườ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.

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àostring
Tham sốKhông 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
{{ "skai"|upper }}
KẾT QUẢ MINH HỌA
SKAI

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

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

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àostring
Tham sốKhông có
Đầu rachuỗ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.

VÍ DỤ LINGO / SKAI
{{ "<b>Áo</b>"|escape }}
KẾT QUẢ MINH HỌA
Mã HTML đầu ra: &lt;b&gt;Áo&lt;/b&gt;

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ụng

Tạ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.

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.

slugify · thay handleize

Đầu vàostring
Tham sốKhông có
Đầu raslug

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.

VÍ DỤ LINGO / SKAI
{{ "Summer Sale"|slugify }}
KẾT QUẢ MINH HỌA
summer-sale

Trườ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àostring
Tham sốKhông có
Đầu raslug

Cùng thiết kế với handleize; không tạo filter handle riêng.

VÍ DỤ LINGO / SKAI
{{ "Summer Sale"|slugify }}
KẾT QUẢ MINH HỌA
summer-sale

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

Bă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.

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àostring UTF-8
Tham sốKhông có
Đầu ra32 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.

CÚ PHÁP ĐỀ XUẤT · CHƯA CHẠY TRÊN RUNTIME
{{ ""|md5 }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
d41d8cd98f00b204e9800998ecf8427e

Trườ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.

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àostring
Tham sốKhông có
Đầu raHTML 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.

VÍ DỤ LINGO / SKAI
{{ "Dòng A\nDòng B"|linebreaksbr }}
KẾT QUẢ MINH HỌA
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ụng

Chọ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.

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àonumber
Tham sốsuffix: string; một hậu tố hoặc cặp dạng "y,ies"
Đầu rastring 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.

VÍ DỤ LINGO / SKAI
{{ 2 }} item{{ 2|pluralize }}
KẾT QUẢ MINH HỌA
2 items

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

Xó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.

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àostring
Tham sốsubstring: string
Đầu rastring

Dùng cut của Lingo; không thêm alias remove.

VÍ DỤ LINGO / SKAI
{{ "aa-bb-aa"|cut:"aa" }}
KẾT QUẢ MINH HỌA
-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ển

Xó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.

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àostring
Tham sốsubstring: string, bắt buộc
Đầ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
{{ "aa-bb-aa"|remove_first:"aa" }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
-bb-aa

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

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

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àostring
Tham sốpair: list<string> đúng 2 mục [old,new]
Đầ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
{{ "red-red"|replace:["red", "blue"] }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
blue-blue

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

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

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àostring
Tham sốpair: list<string> đúng 2 mục [old,new]
Đầ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
{{ "red-red"|replace_first:["red", "blue"] }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
blue-red

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

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

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àostring hoặc list
Tham sốrange: string dạng start:end
Đầu racù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.

VÍ DỤ LINGO / SKAI
{{ "abcdef"|slice:"1:3" }}
KẾT QUẢ MINH HỌA
bc

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

Tá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.

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àostring
Tham sốseparator: string
Đầu ralist<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.

VÍ DỤ LINGO / SKAI
{% for item in "a,b"|split:"," %}{{ item }};{% endfor %}
KẾT QUẢ MINH HỌA
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ển

Bỏ 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.

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àostring
Tham sốKhông có
Đầ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
{{ "  Skai  "|strip }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
Skai

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

Bỏ 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.

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àostring
Tham sốKhông có
Đầ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
{{ "  Skai  "|lstrip }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
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ển

Bỏ 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.

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àostring
Tham sốKhông có
Đầ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
{{ "  Skai  "|rstrip }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
  Skai

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

Loạ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.

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àostring HTML
Tham sốKhông 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
{{ "<b>Áo</b>"|striptags }}
KẾT QUẢ MINH HỌA
Áo

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

Bỏ 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.

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àostring
Tham sốKhông có
Đầ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
{{ "A\nB"|strip_newlines }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
AB

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

Rú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.

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àostring
Tham sốlength: integer
Đầ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
{{ "Skai"|truncatechars:10 }}
KẾT QUẢ MINH HỌA
Skai

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

Rú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.

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àostring
Tham sốcount: integer
Đầ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
{{ "Skai Docs"|truncatewords:5 }}
KẾT QUẢ MINH HỌA
Skai Docs

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

Loạ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.

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 scalar
Tham sốKhông có
Đầu ralist 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.

CÚ PHÁP ĐỀ XUẤT · CHƯA CHẠY TRÊN RUNTIME
{% for item in ["a","a","b"]|uniq %}{{ item }};{% endfor %}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
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ển

Escape URL. 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àostring một segment
Tham sốKhông có
Đầu rastring 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.

CÚ PHÁP ĐỀ XUẤT · CHƯA CHẠY TRÊN RUNTIME
{{ "summer sale"|url_path_escape }}
KẾT QUẢ MONG MUỐN · ĐẶC TẢ
summer%20sale

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

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

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àostring giá trị query
Tham sốKhông có
Đầu rastring 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.

VÍ DỤ LINGO / SKAI
{{ "a&b"|urlencode }}
KẾT QUẢ MINH HỌA
a%26b

Trườ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.