Modüller
Tema dili referansı
Şablonlarda kullanabileceğin filtreler, etiketler ve global nesneler — motorun kaynağından türetilmiştir.
<!-- 🔴 ÜRETİLMİŞ DOSYA — elle düzenlemeyin. Liste ops/apidocs/tema-envanteri-cikar.mjs ile motorun kaynağından türer; açıklamalar content/zenginlestirme/tema-dili.json içinde yaşar. -->
Tema şablonları Liquid ile yazılır (Shopify'ın diliyle uyumlu bir alt küme). Bu sayfadaki listeler motorun kaynağından türetilir: bir filtre eklenince burası da değişir.
🔴 Ziyaretçi sayfasında JavaScript çalışmaz. CSP'de
script-srcyoktur;script_tag·javascript_tagfiltreleri ve{% javascript %}bloğu Shopify uyumluluğu için durur ama tarayıcı çıktılarını sessizce düşürür.
Filtreler (114)
Dize
| Ad | Ne yapar | |
|---|---|---|
append | Sona metin ekler. `{{ 'a' \ | append: 'b' }} → ab` |
prepend | Başa metin ekler. | |
upcase | Büyük harfe çevirir. | |
downcase | Küçük harfe çevirir. | |
capitalize | İlk harfi büyütür. | |
strip | Baştaki ve sondaki boşlukları atar. | |
lstrip | Baştaki boşlukları atar. | |
rstrip | Sondaki boşlukları atar. | |
strip_newlines | Satır sonlarını atar. | |
newline_to_br | Satır sonlarını <br> yapar. | |
replace | Tüm eşleşmeleri değiştirir: `\ | replace: 'a', 'b'` |
replace_first | İlk eşleşmeyi değiştirir. | |
replace_last | Son eşleşmeyi değiştirir. | |
remove | Tüm eşleşmeleri siler. | |
remove_first | İlk eşleşmeyi siler. | |
remove_last | Son eşleşmeyi siler. | |
split | Ayraca göre diziye böler: `\ | split: ','` |
slice | Alt dize/dilim alır: `\ | slice: 0, 3` |
truncate | Karakter sayısına göre kısaltır (üç nokta ekler). | |
truncatewords | Kelime sayısına göre kısaltır. | |
escape | HTML özel karakterlerini kaçırır. Dış kaynaklı metni basmadan önce zorunludur. | |
escape_once | Zaten kaçırılmış olanı ikinci kez kaçırmaz. | |
strip_html | HTML etiketlerini söker (meta açıklaması üretirken). | |
url_encode | URL bileşeni olarak kodlar. | |
url_param_escape | url_encode ile aynı (Shopify uyumluluğu). | |
url_escape | URL'de güvenli olmayan karakterleri kodlar. | |
url_decode | URL kodlamasını çözer. | |
base64_encode | Base64'e çevirir. | |
base64_decode | Base64'ten çözer. | |
base64_url_safe_encode | URL'de güvenli Base64 (+/ yerine -_). | |
handleize | Metni slug'a çevirir: Ürün Adı → urun-adi | |
handle | handleize ile aynı. | |
camelize | bir-iki → BirIki | |
pluralize | Sayıya göre tekil/çoğul seçer: `{{ n \ | pluralize: 'ürün', 'ürün' }}. İkinci argüman verilmezse birincinin sonuna s` ekler — Türkçede ikisini de yazın. |
md5 | MD5 özeti (onaltılık). | |
sha1 | SHA-1 özeti. | |
sha256 | SHA-256 özeti. | |
hmac_sha1 | HMAC-SHA1: `\ | hmac_sha1: anahtar` |
hmac_sha256 | HMAC-SHA256. |
Sayı
| Ad | Ne yapar | |
|---|---|---|
plus | Toplar. | |
minus | Çıkarır. | |
times | Çarpar. | |
divided_by | Böler. | |
modulo | Kalanı verir. | |
abs | Mutlak değer. | |
ceil | Yukarı yuvarlar. | |
floor | Aşağı yuvarlar. | |
round | Yuvarlar (`\ | round: 2` ondalık basamakla). |
at_least | Alt sınır uygular (verilen değerden küçükse onu döndürür). | |
at_most | Üst sınır uygular. |
Dizi
| Ad | Ne yapar | |
|---|---|---|
size | Uzunluk (dizi ya da metin). | |
first | İlk öğe. | |
last | Son öğe. | |
join | Diziyi birleştirir: `\ | join: ', '` |
reverse | Ters çevirir. | |
sort | Sıralar (`\ | sort: 'alan'` ile alan bazlı). |
sort_natural | Büyük/küçük harf duyarsız sıralar. | |
map | Alanı çıkarır: `\ | map: 'baslik'` |
where | Alana göre süzer: `\ | where: 'tip', 'yazi'` |
reject | wherein tersi — eşleşenleri ATAR. | |
find | Eşleşen İLK öğeyi verir. | |
find_index | Eşleşen ilk öğenin sırasını verir. | |
uniq | Yinelenenleri atar. | |
compact | Boş (nil) öğeleri atar. | |
concat | İki diziyi birleştirir. | |
sum | Toplar (`\ | sum: 'alan'` ile alan bazlı). |
group_by | Alana göre gruplar; her grup { ad, ogeler } taşır. | |
default | Değer boşsa yedeğini verir: `\ | default: 'Adsız'. **Liquid'de boş dize DOĞRUdur** — {% if x %}` yerine bunu kullanın. |
Para
| Ad | Ne yapar | |
|---|---|---|
money | Kuruşu para biçimine çevirir: `4999 \ | money → ₺49,99`. Girdi KURUŞTUR (minor unit); kayan noktayla para hesabı yapılmaz. |
money_with_currency | ₺49,99 TRY | |
money_without_currency | 49,99 (simge ve kod yok). | |
money_without_trailing_zeros | Kuruş sıfırsa göstermez: 5000 → ₺50 |
URL / varlık
| Ad | Ne yapar | |
|---|---|---|
asset_url | Temanın varlığına adres: `'stil.css' \ | asset_url → /assets/stil.css` |
asset_img_url | Görsel türevine adres (ölçü argümanıyla). | |
img_url | asset_img_url ile aynı. | |
image_url | asset_img_url ile aynı. | |
file_url | Yüklenen dosyaya adres: /files/<ad> | |
file_img_url | file_url ile aynı. | |
global_asset_url | file_url ile aynı (Shopify uyumluluğu). | |
blesyum_asset_url | file_url ile aynı. | |
link_to | Bağlantı üretir: `{{ 'Metin' \ | link_to: '/yol' }}`. Hem metin hem adres kaçırılır. |
within | Adresi koleksiyon yoluna alır: /collections/<handle><adres> | |
url_for_type | Ürün tipi süzgecine adres. | |
url_for_vendor | Satıcı süzgecine adres. | |
payment_type_img_url | Ödeme yöntemi simgesi: /assets/payment/<ad>.svg |
HTML / medya
| Ad | Ne yapar |
|---|---|
stylesheet_tag | <link rel="stylesheet"> üretir. |
script_tag | 🔴 <script src> üretir ama ziyaretçi sayfasında ÇALIŞMAZ: CSP'de script-src yoktur ve tarayıcı betiği sessizce düşürür. Shopify uyumluluğu için durur; kullanmayın. |
javascript_tag | 🔴 script_tag ile aynı — çalışmaz (yukarıdaki uyarı). |
image_tag | <img> üretir (alt metni ve ölçü argümanlarıyla). |
external_video_url | Gömme adresini verir (YouTube/Vimeo). |
external_video_tag | Gömme <iframe>i üretir. |
video_tag | <video controls> üretir. |
model_viewer_tag | <model-viewer> üretir. |
media_tag | Medya türüne göre uygun etiketi seçer (video · external_video · model · görsel). |
highlight | Arama teriminin geçtiği yerleri <strong> ile işaretler. |
highlight_active_tag | Etkin etiketi <span class="active"> ile sarar. |
form_errors | Form hatalarını <ul><li> listesine çevirir (her hata kaçırılır). |
Renk
| Ad | Ne yapar | |
|---|---|---|
color_to_rgb | rgb(r, g, b) biçimine çevirir. | |
color_to_hex | #rrggbb biçimine çevirir. | |
color_to_hsl | hsl(h, s%, l%) biçimine çevirir. | |
color_extract | Bileşen okur: `\ | color_extract: 'hue'. Geçerli bileşenler: red · green · blue · hue · saturation · lightness`. Bunlar filtre değil, bu filtrenin argümanıdır. |
color_lighten | Açar (yüzde). | |
color_darken | Koyulaştırır (yüzde). | |
color_saturate | Doygunluğu artırır. | |
color_desaturate | Doygunluğu azaltır. | |
color_mix | İki rengi karıştırır: `\ | color_mix: '#fff', 50` |
color_modify | Tek bileşeni değiştirir: `\ | color_modify: 'lightness', 40` |
color_contrast | İki renk arasındaki WCAG kontrast oranı. Marka renginin üstüne hangi metin rengi gideceğine bununla karar verin (4,5 eşiği). | |
color_difference | İki renk arasındaki toplam fark. | |
brightness_difference | Parlaklık farkı. |
Tarih
| Ad | Ne yapar | |
|---|---|---|
date | Tarihi biçimler: `\ | date: '%d.%m.%Y'. Argüman verilmezse %d.%m.%Y`. |
Çeviri (locales)
| Ad | Ne yapar | |
|---|---|---|
t | 🔴 Bu motorda ÇALIŞMAZ ve ziyaretçiye translation missing: … basar. Çeviri sözlük NESNESİ ile yapılır: {{ t.anahtar }} (locales/<kod>.json). Tema doğrulayıcısı `\ | t` kullanımını hata olarak bildirir ve yükleme geçmez. |
translate | 🔴 t ile aynı — kullanmayın (yukarıdaki uyarı). |
JSON
| Ad | Ne yapar |
|---|---|
json | Değeri JSON'a çevirir. <script type="application/ld+json"> içinde kullanırken </script> kaçışına dikkat edin. |
Etiketler (26)
Tümü
| Ad | Ne yapar |
|---|---|
assign | Değişken atar. |
break | Döngüden çıkar. |
capture | Blok çıktısını değişkene alır. |
case | Çoklu dal: {% case x %}{% when 'a' %}…{% endcase %} |
content_for | Düzendeki adlandırılmış yuvaya içerik verir. |
continue | Sonraki adıma geçer. |
cycle | Değerler arasında sırayla döner (zebra satır). |
decrement | Sayaç azaltır. |
echo | Değer basar ({{ }} ile aynı, liquid bloğu içinde kullanışlı). |
for | Döngü. Seçenekler: limit: · offset: · reversed. Döngü içinde forloop.index · forloop.first · forloop.last vardır. |
form | Form açar; action adresini sunucu belirler ve tema ezemez. |
if | Koşul. {% if x %}…{% elsif y %}…{% else %}…{% endif %} |
include | Parçayı çağırır (snippets/). Çağıranın değişkenlerini GÖRÜR. |
increment | Sayaç artırır (çıktı verir). |
javascript | 🔴 Blok kabul edilir ama ziyaretçi sayfasında çalışmaz (CSP'de script-src yok). |
layout | Kullanılacak düzeni seçer. |
liquid | Tek blokta çok satırlı Liquid yazmayı sağlar. |
paginate | Sayfalama bloğu. |
render | Parçayı yalıtılmış bağlamda çağırır — yalnız verilen argümanları görür. Yeni kodda bunu tercih edin. |
schema | Bölümün ayar şemasını tanımlar (panelde form olur). |
section | Bölümü çizer. |
sections | Bölüm grubunu çizer. |
style | Satır içi <style> bloğu. |
stylesheet | style ile aynı. |
tablerow | Tablo satırı üreten döngü. |
unless | ifin tersi. |
Global nesneler (18)
Her şablonun gördüğü değişkenler. Tip önemlidir: {{ icerik }} hazır HTML'dir, {% for x in nav %} ise dizi ister.
| Nesne | Tip | Ne taşır |
|---|---|---|
blok | nesne | Blok şablonunda o bloğun düzleştirilmiş ayarları. |
bolge | nesne | Tema bölgelerine yerleştirilen widget'ların çizilmiş HTML'i (WEB25). Boş bölge yer kaplamaz. |
brand | nesne | Kiracının markası (BRAND-01). name · logo · favicon · color · on_color. Marka kurulmadıysa hiçbir alan yazılmaz; {% if brand.color %} ile sorup nötr kalın. Alanlar: name · logo · favicon · color · on_color. |
breadcrumb | metin (HTML) | Hazır kırıntı navigasyonu HTML'i. |
dogrulama | metin (HTML) | Arama motoru doğrulama kodları (<meta>). |
duyuru | metin (HTML) | Duyuru şeridi HTML'i (boşsa yer kaplamaz). |
hreflang | metin (HTML) | Dil alternatifi <link> etiketleri. |
icerik | metin (HTML) | Sayfanın gövdesi (blok ağacının çizilmiş HTML'i). Düzen şablonunda yuva budur. |
jsonld | metin (HTML) | Yapısal veri (<script type="application/ld+json"> bloğu) — motor üretir. |
menu_items | dizi | Menü öğeleri dizisi. |
nav | dizi | Gezinme öğeleri dizisi. |
preview | mantıksal | Sayfa önizleme kipinde mi (mantıksal). |
seo | nesne | SEO künyesi (başlık · açıklama · kanonik · OG alanları). |
settings | nesne | Temanın schema ile tanımladığı ayarların değerleri. |
site | nesne | Sitenin dili ve adı. locale · dir (ltr/rtl, daima yazılır) · title (site adı boşsa anahtar hiç yazılmaz — {% if site.title %} doğru çalışsın diye). Alanlar: locale · dir · title. |
stil | metin (HTML) | Motorun ürettiği CSS (marka paleti ve blok stilleri). |
t | nesne | Çeviri sözlüğü — locales/<kod>.jsondan doldurulur. Kullanım {{ t.anahtar }}. |
yuzen | metin (HTML) | Yüzen eylem düğmesi HTML'i. |
Kum havuzu bütçeleri
Şablon bu sınırları aşarsa render güvenli biçimde kesilir (sayfa çöker, sunucu çökmez). Gerçek bir tema hiçbirine yaklaşmaz; bir döngü hatası hepsine anında çarpar.
| Sınır | Yayın | Önizleme |
|---|---|---|
| Döngü adımı | 500.000 | 2.000.000 |
render/include derinliği | 24 | 24 |
| Çıktı boyutu | 8 MB | 8 MB |
| Süre | 2000 ms | 8000 ms |
Önizleme bütçesi daha cömerttir: yavaş şablonunu görmen gerekir, ama önizleme de sonsuza kadar dönmemeli.