Kontrak situs
Bundel JSON yang mendeskripsikan komponen, tipe halaman, koleksi, global, profil media, dan token desain situs web Anda.
Halaman ini diterjemahkan dari bahasa Inggris. Jika ada perbedaan, versi bahasa Inggris yang berlaku. Baca dalam bahasa Inggris
Kontrak situs adalah kesepakatan antara kode situs web Anda dan Atlas. Kontrak mendaftar apa yang ada di situs Anda dan apa yang boleh diubah editor. Kontrak tidak berisi kode yang dapat dieksekusi: hanya deskripsi dan bidang bertipe.
Simpan di repositori Anda (misalnya atlas/contract.bundle.json) dan beri versi bersama kode Anda.
Siklus hidup
Section titled “Siklus hidup”- Developer, atau agen AI melalui MCP, memvalidasi bundel dan mengusulkannya.
- Admin situs meninjau dan mengaktifkan (atau menolak) di Studio pada Site setup.
- Situs web Anda melaporkan digest bundel yang direndernya (
POST /deployments). Studio menampilkan apakah kode dan kontrak sinkron.
Digest adalah hash SHA-256 dari JSON kanonis bundel, sehingga bundel di repositori Anda harus persis sama dengan yang Anda ajukan.
Struktur tingkat atas
Section titled “Struktur tingkat atas”| Kunci | Isi |
|---|---|
contractVersion |
Selalu 1.0.0 untuk format ini |
bundleVersion |
Versi Anda sendiri untuk bundel ini, seperti 1.4.0 |
site |
key, displayName, runtimes (node, cloudflare-workers), locales (bawaan, didukung, kanan-ke-kiri), staticRoutes yang dimiliki kode Anda |
tokens |
Warna, gaya tipografi, dan spasi yang boleh dipilih editor |
motion |
Preset animasi bernama yang diimplementasikan kode Anda, beserta perilaku reduced-motion |
mediaProfiles |
Ukuran, rasio, dan rendisi gambar yang diizinkan |
components |
Hingga 300 komponen, masing-masing dengan id yang memenuhi syarat, versi, jenis, dan bidang |
collections |
Tipe konten berulang, dengan bidang, bidang judul dan slug, serta aturan keunikan |
pageTypes |
Hingga 100 tipe halaman: pola rute, koleksi terikat opsional, region, dan aturan SEO |
globals |
Konten bersama seperti site-header dan site-footer |
Sebuah komponen (disingkat)
Section titled “Sebuah komponen (disingkat)”{ "id": "acme.home.hero", "version": "1.0.0", "kind": "section", "label": "Home hero", "fields": [ { "key": "heading", "type": "text", "label": "Heading", "required": true, "maxLength": 80 }, { "key": "intro", "type": "longText", "label": "Intro", "maxLength": 400 }, { "key": "image", "type": "asset", "label": "Image", "profile": "hero" }, { "key": "cta", "type": "link", "label": "Button" } ]}Sebuah tipe halaman (disingkat)
Section titled “Sebuah tipe halaman (disingkat)”{ "key": "industry-landing", "version": "1.0.0", "label": "Industry landing", "route": { "pattern": "/industries/{entry.slug}" }, "entry": { "collection": "industries", "mode": "one-page-per-entry" }, "regions": [ { "key": "hero", "reorder": "locked", "sections": [ { "key": "hero", "component": { "id": "acme.industry.hero", "versionRange": "^1.0.0" }, "presence": "required", "bind": { "headline": "entry.headline", "image": "entry.image" } } ] }, { "key": "body", "reorder": "within-region", "min": 1, "max": 20, "insertable": ["acme.text", "acme.faq"] } ]}Region menentukan apa yang dapat dilakukan editor: seksi dapat bersifat required, default, atau optional; region dapat dikunci atau dapat diurutkan ulang, dengan jumlah seksi minimum dan maksimum serta daftar komponen yang dapat disisipkan. Bidang dapat diikat ke entri halaman, sehingga satu halaman per produk atau industri dibuat dari koleksi.
Tipe bidang
Section titled “Tipe bidang”| Tipe | Kegunaan | Batas |
|---|---|---|
text |
Teks satu baris pendek | hingga 500 karakter |
longText |
Paragraf, tanpa pemformatan | hingga 10.000 karakter |
richText |
Teks berformat, profil basic atau article |
Terstruktur, tidak pernah HTML mentah |
number |
Angka dengan rentang opsional | |
boolean |
Aktif/nonaktif | |
select |
Satu dari daftar tetap | hingga 100 opsi |
date |
Sebuah tanggal | |
link |
Rute internal atau, jika diizinkan, URL eksternal | |
asset |
Gambar dalam sebuah profil media | hingga 50 per bidang |
reference |
Tautan ke entri sebuah koleksi | hingga 200 per bidang |
list |
Grup bidang berulang | hingga 200 item, masing-masing 40 bidang |
group |
Bidang yang dikelompokkan | hingga 40 bidang |
table |
Baris dan kolom bertipe | hingga 12 kolom, 200 baris |
token |
Salah satu token desain Anda (warna, gaya tipografi, spasi) | |
icon |
Salah satu set ikon bernama yang disediakan kode Anda | hingga 200 opsi |
Bidang dapat ditandai required dan localized. Sebuah komponen atau koleksi dapat memiliki hingga 80 bidang.