json_script
Có sẵn · tái sử dụngXuấ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ào | DTO public serializable |
|---|---|
| Tham số | id: string tùy chọn |
| Đầu ra | SafeHTML 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="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.