Praktiline juhend CEL-avaldiste kirjutamiseks CMS-is.
Praktiline juhend CEL-avaldiste kirjutamiseks CMS-is.
CEL (Common Expression Language ehk levinud avaldiste keel) on meie CMS-i sisseehitatud kerge skriptikeel. See vĂ”imaldab kirjutada dĂŒnaamilisi avaldisi, mis hangivad andmeid dokumentidest, loevad URL-i parameetreid ja arvutavad vÀÀrtusi kĂ€igu pealt.
CEL-skripti kÀivitamisel toimub jÀrgmine:
Sinu skript Mootor Tulemus
| | |
v v v
documents.get("article", "intro") --> Hangib andmebaasist --> { headline: "Welcome", body: "..." }
.headline --> Eraldab vÀlja --> "Welcome"
MĂ”tle CEL-ist kui kirjutuskaitstud pĂ€ringukeeleks. See ei saa andmebaasis midagi muuta â see ainult loeb andmeid ja tagastab arvutatud tulemuse. SeetĂ”ttu on seda turvaline kasutada kĂ”ikjal CMS-is.
Igal CEL-avaldise kÀsutuses on kolm objekti:
| Objekt | Mis see on | NĂ€ide |
|---|---|---|
documents | Hangib CMS-ist mis tahes dokumendi | documents.get("country", "us") |
meta | Praeguse pÀringu teave (lokaat, URL-i parameetrid) | meta.locale, meta.params.slug |
schema | Praeguse dokumendi vÀljade mÀÀratlused | schema.fields |
docDokumendiredaktoris CEL-avaldiseid kirjutades saad praeguse dokumendi vÀljade vÀÀrtustele ligi objekti doc kaudu. See vÔimaldab luua arvutatud vÀlju ja vÀljadevahelisi viiteid.
// Praeguse dokumendi hinnavÀlja kasutamine
doc.price
// Praeguse dokumendi vÀljade pÔhjal kogusumma arvutamine
doc.price * doc.quantity
// Tingimus praeguse dokumendi oleku pÔhjal
doc.status == "published" ? doc.title : "Draft: " + doc.title
Objekt doc sisaldab kÔiki redigeeritava dokumendi vÀljade vÀÀrtusi. See on kasulik jÀrgmisteks toiminguteks:
doc.price * doc.quantity)CEL-i kÔige vÔimsam funktsioon on dokumentide hankimine CMS-i mis tahes kohast.
SĂŒntaks: documents.get(schemaName, identifier)
Oletame, et sul on article-dokument identifikaatoriga "welcome-post":
// CMS-is salvestatud kujul: article / welcome-post
{
"headline": "Welcome to Our Platform",
"author": "Sarah Chen",
"body": "We're excited to announce...",
"tags": ["announcement", "news"]
}
Kogu dokumendi hankimiseks:
documents.get("article", "welcome-post")
Tagastab:
{
"headline": "Welcome to Our Platform",
"author": "Sarah Chen",
"body": "We're excited to announce...",
"tags": ["announcement", "news"]
}
Ainult pealkirja hankimiseks:
documents.get("article", "welcome-post").headline
Tagastab: "Welcome to Our Platform"
Autori hankimiseks:
documents.get("article", "welcome-post").author
Tagastab: "Sarah Chen"
Kui lehel on dĂŒnaamilised marsruudid (nt /articles/[slug]), saad URL-i parameetri saamiseks ja Ă”ige dokumendi hankimiseks kasutada meta.params-i.
Kui keegi kĂŒlastab aadressi /articles/welcome-post:
documents.get("article", meta.params.slug).headline
Tagastab: "Welcome to Our Platform"
Nii luuakse dĂŒnaamilisi lehti â sama CEL-skript töötab kĂ”igi artiklite puhul, kasutades lihtsalt URL-is olevat slug'i.
SĂŒntaks: documents.find(schemaName) vĂ”i documents.find(schemaName, filter)
// KÔigi riikide hankimine
documents.find("country")
Tagastab:
[
{ "code": "us", "name": "United States", "flag": "US" },
{ "code": "sa", "name": "Saudi Arabia", "flag": "SA" },
{ "code": "gb", "name": "United Kingdom", "flag": "GB" }
]
// Filtriga riikide hankimine
documents.find("country", { "where": { "code": "us" } })
Tagastab:
[
{ "code": "us", "name": "United States", "flag": "US" }
]
CEL toetab tĂ”lgitud dokumendisisu hankimist kahel viisil: lokaaÂdil pĂ”hinev automaatne tĂ”lge ja sĂ”naselge tĂ”lkeotsing.
meta.locale kauduKui meta.locale on mÀÀratud (nĂ€iteks marsruudi parameetrite vĂ”i kasutaja eelistuste kaudu), ĂŒhendab documents.get() automaatselt tĂ”lgitud sisu:
// Kui meta.locale on "fr", tagastab baasdokumendiga ĂŒhendatud prantsuskeelse tĂ”lke
documents.get("greeting", "welcome").headline
Kuidas see töötab:
meta.locale ei ole "en" ega "en-US", otsitakse tĂ”lget tabelist translations{ ...baseContent, ...translatedContent }See tĂ€hendab, et tĂ”lgitud vĂ€ljad kirjutavad baasvĂ€ljad ĂŒle, tĂ”lkimata vĂ€ljad aga langevad tagasi baasdokumendi vÀÀrtustele.
documents.translated()Kui on vaja hankida kindel tÔlge sÔltumata praegusest lokaadist:
SĂŒntaks: documents.translated(schemaName, identifier, locale)
// Hispaaniakeelse tÔlke hankimine
documents.translated("greeting", "welcome", "es").headline
// URL-i parameetri pÔhjal tÔlke hankimine
documents.translated("product", meta.params.id, meta.params.lang).description
// TÔlgete vÔrdlemine
documents.translated("article", "intro", "en").title + " / " + documents.translated("article", "intro", "fr").title
TÔlgetega tervitusdokumendid:
// Baasdokument: greeting / welcome
{ "headline": "Welcome", "subheadline": "Welcome to our platform" }
// TÔlge (keel: "fr")
{ "headline": "Bienvenue", "subheadline": "Bienvenue sur notre plateforme" }
// TÔlge (keel: "es")
{ "headline": "Bienvenido", "subheadline": "Bienvenido a nuestra plataforma" }
CEL-skriptid:
// meta.locale = "fr"
documents.get("greeting", "welcome").headline
// Tagastab: "Bienvenue"
// SÔnaselge hispaaniakeelne tÔlge
documents.translated("greeting", "welcome", "es").headline
// Tagastab: "Bienvenido"
// Varumuster puuduvate tÔlgete korral
documents.translated("greeting", "welcome", meta.params.lang) != null
? documents.translated("greeting", "welcome", meta.params.lang).headline
: documents.get("greeting", "welcome").headline
Sul on hero-block, mis peab kuvama article-dokumendist hangitud pealkirja.
Sinu artiklidokument (identifikaator: "homepage-hero"):
{
"headline": "Build Faster, Ship Smarter",
"subheadline": "The modern CMS for developers"
}
KangelÔigu pealkirjavÀlja CEL-skript:
documents.get("article", "homepage-hero").headline
Tulemus: kangelÔik kuvab "Build Faster, Ship Smarter"
LoĐŸĐ± lehte aadressil /countries/[code] ja soovid kuvada riigi tĂ€ieliku nime.
Sinu riigidokumendid:
// country / us
{ "code": "us", "name": "United States", "flag": "US", "languages": ["en", "es"] }
// country / sa
{ "code": "sa", "name": "Saudi Arabia", "flag": "SA", "languages": ["ar", "en"] }
CEL-skript:
documents.get("country", meta.params.code).name
Kui keegi kĂŒlastab aadressi /countries/us:
meta.params.code = "us""United States"Kui keegi kĂŒlastab aadressi /countries/sa:
meta.params.code = "sa""Saudi Arabia"Kuva kasutaja lokaadi pÔhjal erinevaid pealkirju.
meta.locale == "ar-SA" ? "Welcome, everyone" : "Welcome"
Kui lokaat on "ar-SA": tagastab "Welcome, everyone"
Kui lokaat on midagi muud: tagastab "Welcome"
Sinu article-dokumendil on vÀli countryCode ja soovid saada riigi tÀieliku nime.
Artiklidokument:
{ "headline": "News from the US", "countryCode": "us" }
CEL-skript:
documents.get("country", documents.get("article", "us-news").countryCode).name
Toimub jÀrgmine:
documents.get("article", "us-news") tagastab { "headline": "News from the US", "countryCode": "us" }.countryCode eraldab vÀÀrtuse "us"documents.get("country", "us") tagastab { "code": "us", "name": "United States", ... }.name eraldab vÀÀrtuse "United States"Tulemus: "United States"
Kui dokumenti ei pruugi olemas olla, saad mÀÀrata varuvÀÀrtuse:
documents.get("article", meta.params.slug) != null
? documents.get("article", meta.params.slug).headline
: "Article Not Found"
VÔi kontrolli, kas konkreetne vÀli on olemas:
documents.get("article", "intro").author != null
? documents.get("article", "intro").author
: "Unknown Author"
Sinu artiklil on sildid ja soovid kontrollida, kas konkreetne silt on olemas:
"featured" in documents.get("article", "welcome-post").tags
Tagastab: true, kui artiklil on silt "featured"
Esimese sildi hankimine:
documents.get("article", "welcome-post").tags[0]
Tagastab: "announcement" (esimene silt)
Siltide loendamine:
size(documents.get("article", "welcome-post").tags)
Tagastab: 2 (siltide arv)
meta.paramsParameetrilised marsruudid on dĂŒnaamiliste lokaliseeritud lehtede loomise vĂ”ti. Kui mÀÀrad marsruudimustri, nĂ€iteks /{lang}/landingPage, eraldab CMS URL-ist parameetrid ja teeb need kĂ€ttesaadavaks meta.params kaudu.
Marsruudimustri mÀÀratlus:
Marsruudid kasutavad dĂŒnaamiliste lĂ”ikude mÀÀratlemiseks sĂŒntaksit :paramName vĂ”i {paramName}:
| Muster | NĂ€idis-URL | Eraldatud parameetrid |
|---|---|---|
/:lang/landingPage | /ko/landingPage | { lang: "ko" } |
/{country}/{lang}/products | /us/en/products | { country: "us", lang: "en" } |
/articles/:slug | /articles/welcome-post | { slug: "welcome-post" } |
Parameetrite sidumised: Iga marsruudi parameetri saab valideerimiseks siduda dokumendiskeemiga:
{
"pattern": "/{lang}/landingPage",
"param_bindings": {
"lang": "language"
}
}
See sidumine ĂŒtleb CMS-ile:
langlanguage-skeemi vastu (otsi dokumenti, mille content.code sobib)Marsruudi konfiguratsioon:
/{lang}/landingPage/{lang}/landingPage{ "lang": "language" }Sinu tervitusdokumendid:
// greeting / ko
{ "code": "ko", "headline": "Welcome", "subheadline": "Welcome to our platform", "ctaText": "Get Started", "ctaUrl": "/ko/get-started" }
// greeting / en
{ "code": "en", "headline": "Welcome", "subheadline": "Welcome to our platform", "ctaText": "Get Started", "ctaUrl": "/en/get-started" }
// greeting / ja
{ "code": "ja", "headline": "Welcome", "subheadline": "Welcome to our platform", "ctaText": "Start", "ctaUrl": "/ja/get-started" }
Lokaliseeritud sisu hankiv CEL-skript:
documents.get("greeting", meta.params.lang).headline
Lahendamise tulemus:
| URL | meta.params.lang | Tulemus |
|---|---|---|
/ko/landingPage | "ko" | "Welcome" |
/en/landingPage | "en" | "Welcome" |
/ja/landingPage | "ja" | "Welcome" |
meta.segments â töötlemata URL-i teemeta.segments pakub töötlemata URL-i teed massiivina. See on kasulik, kui vajad positsioonipĂ”hist ligipÀÀsu nimega parameetrite asemel.
| URL-i tee | meta.segments |
|---|---|
/articles/tech/ai-news | ["articles", "tech", "ai-news"] |
/ko/landingPage | ["ko", "landingPage"] |
/us/en/products/featured | ["us", "en", "products", "featured"] |
/ | [] |
meta.segments-i ja millal meta.params-i| Kasutusjuht | Parim lÀhenemine |
|---|---|
| Marsruudimustri nimega parameetrid | meta.params.lang |
| PositsioonipÔhine ligipÀÀs | meta.segments[0] |
| Tee sĂŒgavuse hankimine | size(meta.segments) |
| Kontroll, kas tee sisaldab lÔiku | "admin" in meta.segments |
meta tÀielik viideObjekt meta sisaldab kogu praeguse pÀringu konteksti:
| Omadus | TĂŒĂŒp | Kirjeldus |
|---|---|---|
meta.locale | string | Praegune lokaadikood (nt "en-US", "ko-KR", "ar-SA") |
meta.params | Record<string, string> | URL-i mustrist eraldatud marsruudiparameetrid |
meta.segments | string[] | Segmentideks jaotatud URL-i tee |
meta.docId | string | null | Praeguse dokumendi UUID (uue dokumendi korral null) |
meta.title | string | Praeguse dokumendi pealkiri |
meta.localeLokaat jÀrgib BCP 47 vormingut (keel-piirkond):
// RTL-keelte kontrollimine
meta.locale == "ar-SA" || meta.locale == "he-IL" ? "rtl" : "ltr"
// Ainult keeleosa hankimine
meta.locale.split("-")[0] // Pole toetatud â kasuta selle asemel meta.params.lang-i
meta.paramsMarsruudiparameetrid on alati stringid. CMS valideerib need enne hindamist seotud skeemide vastu:
// Nimega parameetri kasutamine
meta.params.lang // "ko"
meta.params.country // "us"
meta.params.slug // "welcome-post"
// Parameetri olemasolu kontrollimine
has(meta.params.category) // true/false
// Kasutamine dokumendi hankimisel
documents.get("greeting", meta.params.lang)
documents.ref("airports").get(meta.params.code)
meta.segmentsTöötlemata URL-i segmendid massiivina:
meta.segments[0] // Esimene segment
meta.segments[1] // Teine segment
size(meta.segments) // Segmentide arv
"products" in meta.segments // Kas tee sisaldab sÔna "products"?
meta.docIdPraeguse dokumendi UUID, mis on kasulik iseendale viitavates skriptides:
meta.docId != null ? "editing" : "creating new"
meta.docId != null ? documents.get("article", meta.docId).status : "draft"
meta.titlePraeguse dokumendi pealkiri:
"Editing: " + meta.title
meta.title.contains("Draft") ? "work in progress" : "published"
documents.ref() â aheldatud otsingudKui skeem on teada, kuid identifikaator on dĂŒnaamiline, annab ref() puhtama sĂŒntaksi:
documents.get("airports", meta.params.code).name
documents.ref("airports").get(meta.params.code).name
MĂ”lemad on samavÀÀrsed, kuid ref() muudab dĂŒnaamilise osa selgemaks.
documents.get("schema", "identifier") // Hangi ĂŒks dokument
documents.get("schema", "id").fieldName // Hangi konkreetne vÀli
documents.find("schema") // Hangi kÔik dokumendid
documents.find("schema", { "where": {...}}) // Filtreeritud pÀring
documents.ref("schema").get(identifier) // Aheldatud otsing
documents.translated("schema", "id", "fr") // Hangi mÀÀratud lokaadiga
meta.locale // "en-US", "ar-SA" jne
meta.params.xyz // URL-i parameeter nimega "xyz"
meta.segments // URL-i tee massiivina
meta.segments[0] // Tee esimene segment
meta.docId // Praeguse dokumendi ID (vÔi null)
meta.title // Praeguse dokumendi pealkiri
doc.fieldName // Praeguse dokumendi vÀlja vÀÀrtus redaktori kontekstis
== != < <= > >=
&& || !
condition ? valueIfTrue : valueIfFalse
"value" in listOrMap
size(list) // Ăksuste arv
size(string) // Stringi pikkus
"text".startsWith("te") // true
"text".endsWith("xt") // true
"text".contains("ex") // true
has(object.property) // Kontrolli omaduse olemasolu
hasProperty(obj, "key") // Kontrolli objekti vÔtme olemasolu
Kui midagi lĂ€heb valesti, nĂ€ed ĂŒht jĂ€rgmistest teadetest:
| Viga | TĂ€hendus |
|---|---|
SYNTAX_ERROR | Skriptis on trĂŒkiviga (puuduv jutumĂ€rk vĂ”i vigane operaator) |
TYPE_ERROR | Segad omavahel tĂŒĂŒpe, mida ei saa koos kasutada |
RUNTIME_ERROR | Skript kÀivitus, kuid sattus probleemi (mÀÀratlemata muutuja) |
FETCH_LIMIT_EXCEEDED | Hangid liiga palju dokumente (maksimaalselt 50) |
TIMEOUT | Skripti kÀivitamine vÔttis liiga kaua (maksimaalselt 5 sekundit) |
AST_DEPTH_EXCEEDED | Avaldis on liiga sĂŒgavalt pesastatud (maksimaalne sĂŒgavus: 50) |
SCRIPT_TOO_LONG | Skript ĂŒletab 5000 mĂ€rgi piirangu |
CEL-i mootor on loodud laiendatavust silmas pidades. Kavandatud tulevikuvÔimalused hÔlmavad jÀrgmist:
mcp.translate(meta.params.text, "en", meta.params.lang)
mcp.analyze(documents.get("article", meta.params.id).body)
ai.summarize(documents.get("article", meta.params.id).body, 100)
ai.translate(meta.params.text, meta.params.targetLang)
ai.classify(meta.params.input, ["positive", "negative", "neutral"])
Need vĂ”imalused lisatakse registreeritud funktsioonide sĂŒsteemi kaudu, sĂ€ilitades olemasolevate skriptide tagasiĂŒhilduvuse.
documents. vĂ”i meta. ja redaktor kuvab saadaolevad valikuddocuments.get("schema", "id")-ga ja lisa seejĂ€rel .fieldName!= null ? ... : ...documents.get() vĂ”i documents.find() arvestatakse 50 dokumendi piirangu sissemeta.params-i meta.segments-ile â nimega parameetrid on valideeritud ja usaldusvÀÀrsemadhas()-i â kontrolli enne ligipÀÀsu has(meta.params.category) abildocuments.ref()-i â selgem sĂŒntaks, kui skeem on staatiline, kuid identifikaator dĂŒnaamilinedoc.fieldName-i â pÀÀsed arvutatud avaldiste sees ligi praeguse dokumendi vĂ€ljadeleSee jaotis kĂ€sitleb tĂ€psemaid mustreid dokumentide ĂŒhendamiseks ja relatsiooniliste sisustruktuuride loomiseks.
Lihtsaim vorm: ĂŒks dokument viitab teisele identifikaatori kaudu.
documents.get("author", documents.get("article", "intro").authorId).name
documents.ref()Kui identifikaator on dĂŒnaamiline:
documents.get("country", documents.get("airport", meta.params.code).countryCode).name
documents.ref("country").get(documents.get("airport", meta.params.code).countryCode).name
SĂŒgavate seoste loomiseks ahelda mitu otsingut:
documents.get("continent",
documents.get("region",
documents.get("country",
documents.get("airport", meta.params.code).countryCode
).regionCode
).continentCode
).name
Ăhenda dokumendiviited tĂ”lgetega:
documents.translated("country",
documents.get("airport", meta.params.code).countryCode,
meta.params.lang
).name
Dokument salvestab teisele dokumendile viitava ID.
{ "title": "Tech Update", "authorId": "author-123", "categoryId": "cat-tech" }
documents.get("author", documents.get("article", meta.params.slug).authorId).name
documents.get("article", meta.params.slug).categoryId != null
? documents.get("category", documents.get("article", meta.params.slug).categoryId).name
: "Uncategorized"
Dokumendid viitavad ĂŒksteisele tĂ€henduslike koodide, mitte UUID-de kaudu.
{ "code": "JFK", "name": "John F. Kennedy International", "countryCode": "us" }
{ "code": "us", "name": "United States", "currencyCode": "usd" }
{ "code": "usd", "symbol": "$", "name": "US Dollar" }
documents.get("currency",
documents.get("country",
documents.get("airport", meta.params.code).countryCode
).currencyCode
).symbol
doc-kontekstisKasuta doc-i arvutatud vÀljade puhul, mis viitavad teistele dokumentidele praeguse dokumendi vÀÀrtuste pÔhjal.
documents.get("category", doc.categoryId).description
documents.get("shipping-rates", doc.originCountry).baseRate * doc.weight
Kui dokumendid viitavad ĂŒksteisele, ole hankimispiirangute suhtes ettevaatlik.
documents.find("article", { "where": { "authorId": documents.get("article", meta.params.slug).authorId } })
Kui vÀli vÔib viidata erinevatele skeemidele:
{ "type": "hero", "sourceType": "article", "sourceId": "welcome-post" }
{ "type": "hero", "sourceType": "product", "sourceId": "featured-item" }
documents.get("content-block", "hero-1").sourceType == "article"
? documents.get("article", documents.get("content-block", "hero-1").sourceId).headline
: documents.get("product", documents.get("content-block", "hero-1").sourceId).name
Iga documents.get(), documents.find() ja documents.ref().get() kÔne registreeritakse vahemÀlu kehtetuks muutmiseks. Kui viidatud dokument muutub, teab CMS, millised CEL-avaldised tuleb uuesti hinnata.
JÀlgitavad sÔltuvused hÔlmavad:
schema:identifier â konkreetse dokumendi sĂ”ltuvusschema:identifier â sama mis get-i puhul, aheldatud sĂŒntaksi kauduschema:* â skeemitaseme sĂ”ltuvus (mis tahes dokument selles skeemis)See juhend loob mitmekeelse sihtlehe, millele pÀÀseb ligi aadressil /{lang}/landingPage.
Loo CMS-i halduses kohandatud skeem nimega greeting:
{
"name": "greeting",
"fields": [
{ "name": "code", "type": "string", "required": true },
{ "name": "headline", "type": "string", "required": true },
{ "name": "subheadline", "type": "string" },
{ "name": "ctaText", "type": "string" },
{ "name": "ctaUrl", "type": "string" }
]
}
Loo iga keele jaoks dokument:
Dokument: greeting/ko
{
"code": "ko",
"headline": "Welcome",
"subheadline": "Welcome to our platform",
"ctaText": "Get Started",
"ctaUrl": "/ko/get-started"
}
Dokument: greeting/en
{
"code": "en",
"headline": "Welcome",
"subheadline": "Welcome to our platform",
"ctaText": "Get Started",
"ctaUrl": "/en/get-started"
}
Dokument: greeting/ja
{
"code": "ja",
"headline": "Welcome",
"subheadline": "Welcome to our platform",
"ctaText": "Start",
"ctaUrl": "/ja/get-started"
}
Loo jÀrgmise konfiguratsiooniga leht:
/{lang}/landingPagelang komponendiga languageLisa marsruudile kangelÔik, kasutades iga vÀlja jaoks jÀrgmisi CEL-skripte:
PealkirjavÀli:
documents.get("greeting", meta.params.lang).headline
AlapealkirjavÀli:
documents.get("greeting", meta.params.lang).subheadline
CTA teksti vÀli:
documents.get("greeting", meta.params.lang).ctaText
CTA URL-i vÀli:
documents.get("greeting", meta.params.lang).ctaUrl
Lisa kĂ”ikehĂ”lmav marsruut. ParametricRoutePage lahendab lehe, eraldab URL-ist meta.params-i, hindab CEL-i sidumised serveri poolel ja renderdab iga ploki registri kaudu â sa ei pea ise meta-konteksti looma ega madala taseme klienti kutsuma.
Lokaliseeritud sisu nĂ€gemiseks kĂŒlasta jĂ€rgmisi URL-e:
| URL | Oodatav pealkiri |
|---|---|
/ko/landingPage | íì |
/en/landingPage | Welcome |
/ja/landingPage | ăăăŁăăăăŸă |
Kui kasutaja kĂŒlastab aadressi /ko/landingPage:
/{lang}/landingPagemeta.params.lang = "ko""ko" leidub language-skeemisdocuments.get("greeting", meta.params.lang) lahenduvad koreakeelseks sisuksinterface CelMeta {
locale: string;
params: Record<string, string>;
segments: string[];
docId: string | null;
title: string;
}
Funktsioon extractParams töötleb URL-i teid:
Muster: /{country}/{lang}/products
Tee: /us/en/products
Algoritm:
1. Normaliseeri mÔlemad (eemalda lÔpus olevad kaldkriipsud)
2. Jaga segmentideks
3. VÔrdle segmentide arvu
4. Töötle iga segapaari:
- Kui muster algab mÀrgiga : vÔi {}, eralda see parameetrina
- Vastasel juhul peab see tÀpselt sobima
5. Tagasta: { country: "us", lang: "en" }
{ "lang": "language" }
{
"lang": {
"schemaName": "language",
"slugField": "code"
},
"slug": {
"schemaName": "article",
"slugField": "slug"
}
}
Kui hankida dokument funktsiooniga documents.get(schema, identifier):
id jÀrgicontent.codecontent.slugtitleSee vÔimaldab paindlikult viidata dokumentidele mis tahes unikaalse identifikaatori kaudu.