Praktisks ceļvedis: izveidojiet internacionÄlu lidostu direktoriju Profound CMS ā viens parametrisks marÅ”ruts, kas atveido lapu katrai lidostai 35 valodÄs.
Izveidojiet Ä«stu, internacionÄlu lidostu direktoriju Profound CMS: viens URL paraugs, kas atveido lapu katrai lidostai 35 valodÄs. JÅ«s rakstÄt Next.js kodu un manuÄli veidojat CMS struktÅ«ru; Claude Code (caur Profound MCP) paveic trÄ«s darbus ā Ä£enerÄ lidostu datus, pieslÄdz dizaina sistÄmu un izveido Äetrus React komponentus. TrÄ«s daļas: IestatīŔana, Izveide, Produkcija.
Noskatieties pilnu video pamÄcÄ«bu.
/{language}/{airport_code}.cms-renderer.curl -fsSL https://bun.sh/install | bashgh) un Vercel konts, kas savienots ar GitHub.language) ir iebÅ«vÄti.cms-renderer SDK ar lasīŔanas lÄ«meÅa API atslÄgu.Gala rezultÄts: ~50 lidostas CMS vidÄ, lietotne pieslÄgta to nolasīŔanai un vietÄ esoÅ”a dizaina sistÄma.
ReÄ£istrÄjieties Profound (WorkOS autentifikÄcija) un izveidojiet vietni ar nosaukumu airports. NokopÄjiet divas lietas: vietnes ID (UUID administrÄcijas URL) un lasīŔanas lÄ«meÅa API atslÄgu sadaÄ¼Ä Deployments ā Create API key. Lietotne tikai lasa, tÄpÄc pietiek ar lasīŔanas atslÄgu.
bunx create-profound-next airports
cd airports
Pievienojiet akreditÄcijas datus .env.local failÄ:
PROFOUND_API_KEY=<your read key>
NEXT_PUBLIC_PROFOUND_WEBSITE_ID=<your website id>
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_BUNNY_CDN_URL=https://cms-profound.b-cdn.net
Palaidiet bun dev un atveriet localhost:3000, lai pÄrliecinÄtos, ka savienojums darbojas.
airportAdministrÄcijÄ dodieties uz Components ā Create new component un nosauciet to par airport. Pievienojiet seÅ”us laukus: code, name, city, country (Text) un latitude, longitude (Number). AtzÄ«mÄjiet code kÄ Route Slug lauku un iestatiet statusu uz Active. AtstÄjiet visus laukus neobligÄtus, UI Element tagu nepievienojiet.
Komponents airport ā seÅ”i lauki, ar code, kas iestatÄ«ts kÄ Route Slug.
bun run generate-schemas
Tas saglabÄ airportSchema (Zod) un Airport (tipu) failÄ generated/cms-schemas.ts un apstiprina, ka jÅ«su akreditÄcijas dati darbojas.
PieslÄdziet MCP un autentificÄjieties:
claude mcp add --transport http Profound http://107.21.107.99:8081/mcp
Serveris autentificÄjas ar OAuth (WorkOS). Claude Code ievadiet /mcp, izvÄlieties Profound un pabeidziet pierakstīŔanos pÄrlÅ«kÄ ā Claude Code jÅ«s arÄ« automÄtiski aicina to darÄ«t, kad pirmoreiz tiek izsaukts Profound rÄ«ks. Kad /mcp rÄda, ka Profound ir connected, uzdodiet Claude pieprasÄ«jumu:
Ä¢enerÄ piecdesmit reÄlas lidostas ā pareizi IATA kodi, nosaukumi, pilsÄtas, valstis un koordinÄtas. SaglabÄ tÄs kÄ JSON mapÄ
data, validÄ pÄc mÅ«su airport komponenta un pÄc tam izveido katru kÄ publicÄtu dokumentu, izmantojot Profound MCP, paralÄli.
Atveriet airport ā Variants, lai pÄrliecinÄtos, ka ir ~50 publicÄtas lidostas. Lietotne lasa ar API atslÄgu, MCP raksta ar savu WorkOS sesiju.
ApmÄram 50 lidostas, ielÄdÄtas kÄ publicÄti varianti.
Karkass tiek piegÄdÄts bez stiliem. Novietojiet DESIGN.md (Tailwind v4 @theme bloks ar tokeniem) projekta saknÄ ā savu vai lejupielÄdÄtu no refero.design. PÄc tam dodiet Claude uzdevumu:
Izlasi DESIGN.md. UzstÄdi Tailwind v4 un pieslÄdz tÄmu un fontus. Izmanto
next/font, nevis Google fontu ielÄdi izpildlaikÄ. Tikai stili ā ne lapas un ne komponenti.
PÄrliecinieties, ka src/app/globals.css satur @import "tailwindcss"; un @theme bloku, kÄ arÄ« ka localhost:3000 attÄlo tokenus.
Izveidojiet atveidoÅ”anas slÄni: UI elementus, React komponentus, marÅ”rutu, CEL sasaistes un tulkojumu.
AdministrÄcijÄ Äetras reizes izvÄlieties Create new component (bez Route Slug). Katram pievienojiet laukus kÄ Text, ja nav norÄdÄ«ts citÄdi, iestatiet statusu uz Active un pievienojiet tagu UI Element sadaÄ¼Ä Settings ā Tags:
nav ā brandheadline ā title, subtitlebody ā code, city, country, latitude (Number), longitude (Number)footer ā textbody.latitude un body.longitude jÄbÅ«t Number, lai atbilstu airport komponentam.
Katrs UI elements ir atseviŔķs komponents ā Å”eit body, iestatÄ«ts Active ar tagu UI Element.
Visi Äetri UI elementi blakus komponentam airport.
bun run generate-schemas
Dodiet Claude norÄdi:
Uztaisi Äetrus React komponentus ā nav, headline, body, footer ā mapÄ
components/. KatrÄ ir vienscontentprops ar tipuBlockComponentProps<T>nocms-renderer/lib/types, kurTir elementa Ä£enerÄtais tips, un lauki tiek lasÄ«ti nocontent. ReÄ£istrÄ visus Äetrus kopÄ«gajÄ marÅ”ruta reÄ£istrÄ pÄc komponenta nosaukuma. StilÄ tos ar mÅ«su dizaina sistÄmu, bet kÄ mÅ«su paÅ”u komponentus ā nekopÄ avota vietnes izkÄrtojumu. NavigÄcija: zÄ«mols pa kreisi. Virsraksts: lidostas nosaukums ar apakÅ”virsrakstucode Ā· city, country. Body: detaļu panelis ar kodu, pilsÄtu, valsti un koordinÄtÄm. Footer: viena statiska rindiÅa. Tikai izkÄrtojums un stili.
Claude izveido Äetrus komponentus un aizpilda reÄ£istru failÄ src/app/[...slug]/page.tsx:
const registry = { nav: Nav, headline: Headline, body: Body, footer: Footer };
Divi noteikumi: katrs komponents savus laukus lasa no content (nevis kÄ atseviŔķus rekvizÄ«tus), un reÄ£istra atslÄgÄm precÄ«zi jÄsakrÄ«t ar CMS komponenÅ”u nosaukumiem ā neatbilstÄ«bas gadÄ«jumÄ nekas netiks atveidots.
AdministrÄcijÄ dodieties uz Pages ā Create page un iestatiet paraugu /{airport_code}. SadaÄ¼Ä Dynamic Segment Mappings sasaistiet airport_code ar komponentu airport, slug lauku code. SaglabÄjiet ā nonÄksiet Page Builder. PÄrbaudiet, ka /JFK strÄdÄ.
UI elementa pievienoŔana lapai no cilnes Custom.
Äetri UI elementi, pievienoti JFK sasaistÄ Page Builder vidÄ.
IzvÄlieties sasaisti JFK ā Add UI Element ā cilne Custom ā pievienojiet nav, headline, body, footer Å”ÄdÄ secÄ«bÄ. Profound piemÄro Å”o komplektu katrai lidostas sasaistÄ.
Aizpildiet laukus. StatiskÄs vÄrtÄ«bas (navigÄcijas zÄ«mols, kÄjenes teksts): ierakstiet tÄs tieÅ”i. DinamiskÄs vÄrtÄ«bas: pÄrslÄdziet uz dinamisko režīmu un rakstiet CEL. KoplietojamÄ meklÄÅ”ana ir documents.get("airport", meta.params.airport_code).
| Lauks | CEL vÄrtÄ«ba |
|---|---|
headline.title | documents.get("airport", meta.params.airport_code).name |
headline.subtitle | documents.get("airport", meta.params.airport_code).code + " Ā· " + documents.get("airport", meta.params.airport_code).city + ", " + documents.get("airport", meta.params.airport_code).country |
body.code / body.city / body.country | documents.get("airport", meta.params.airport_code).<field> |
body.latitude / body.longitude | documents.get("airport", meta.params.airport_code).latitude (un .longitude) |
nav.brand, footer.text | statiskas virknes |
PublicÄjiet lapu (augÅ”ÄjÄ labajÄ stÅ«rÄ«).
Atveriet localhost:3000/JFK, pÄc tam /SFO, /LAX ā viens un tas pats veidnes izkÄrtojums, bet cita lidosta.
PabeigtÄ lapa ar JFK datiem angļu valodÄ.
Vispirms iztulkojiet komponentus. AdministrÄcijÄ atveriet katru komponentu (jebkuru ā nav jÄbÅ«t UI elementam) un noklikŔķiniet Translate ā Submit. Profound pÄrtulko saturu visÄs 35 valodÄs vienlaikus, ieskaitot statiskos laukus. Dariet to pirms marÅ”ruta rediÄ£ÄÅ”anas vai jebkÄdas CEL izmaiÅas.
Translate ā Submit nosÅ«ta komponentu tulkoÅ”anai visÄs 35 valodÄs reizÄ.
Pievienojiet valodas dimensiju. SadaÄ¼Ä Pages mainiet paraugu uz /{language}/{airport_code}. Pievienojiet Dynamic Segment Mapping vÄrtÄ«bai language ā iebÅ«vÄtajam language System komponentam, slug lauks code. SaglabÄjiet un pÄrbaudiet, ka /en/JFK darbojas.
MarŔrutam pievienots segments {language}.
PÄradresÄjiet katru tulkojamo lauku uz tulkoto izgūŔanu. Lapai jÄbÅ«t pilnÄ«bÄ internacionÄlai, tÄpÄc katru no valodas atkarÄ«go lauku ā ne tikai virsrakstu ā nomainiet no documents.get(...) uz documents.translated("airport", meta.params.airport_code, meta.params.language):
| Lauks | TulkotÄ CEL |
|---|---|
headline.title | documents.translated("airport", meta.params.airport_code, meta.params.language).name |
headline.subtitle | documents.get("airport", meta.params.airport_code).code + " Ā· " + documents.translated("airport", meta.params.airport_code, meta.params.language).city + ", " + documents.translated("airport", meta.params.airport_code, meta.params.language).country |
body.city / body.country | documents.translated("airport", meta.params.airport_code, meta.params.language).city (un .country) |
IATA code un koordinÄtes atstÄjiet ar documents.get ā tÄs visÄs valodÄs ir identiskas. nav.brand un footer.text jau aptverti, tulkojot komponentu 1. solÄ«.
Kad visi trÄ«s soļi ir paveikti, /fr/SFO, /de/SFO u.c. lapas bÅ«s pilnÄ«bÄ iztulkotas.
AugÅ”upielÄdÄjiet GitHub:
git init
git add -A
git commit -m "Airport directory"
gh repo create airports --public --source=. --push
ImportÄjiet Vercel: Add New ā Project ā importÄjiet repozitoriju airports. Pievienojiet vides mainÄ«gos ā PROFOUND_API_KEY, NEXT_PUBLIC_PROFOUND_WEBSITE_ID, NEXT_PUBLIC_CMS_API_URL un, ja nepiecieÅ”ams, NEXT_PUBLIC_BUNNY_CDN_URL ā pÄc tam izvÄlieties Deploy. ApmeklÄjiet /en/JFK un /fr/SFO. Katrs turpmÄkais git push palaidÄ«s jaunu izvietoÅ”anu.
Abi ir iekļauti karkasÄ.
<Refresher> failÄ layout.tsx atjauno lapu, kuru priekÅ”skatÄt, tiklÄ«dz administrÄcijÄ saglabÄjat izmaiÅas ā izvietoÅ”ana nav nepiecieÅ”ama.?edit_mode=true jebkuram URL (piemÄram, ā¦/en/JFK?edit_mode=true), lai redzÄtu redaktora pÄrklÄjumus. Publiskie apmeklÄtÄji joprojÄm redz tÄ«ru lapu.?edit_mode=true pÄrklÄj tieÅ”saistes lapu ar redaktora elementiem.
Piecdesmit lidostas, 35 valodas, tieÅ”saistes režīms ā aprakstÄ«ts vienreiz un aizpildÄ«ts ar datiem: viens marÅ”ruts, Äetri React komponenti un pÄris CEL sasaistes. CMS glabÄ saturu, jÅ«su kods to atveido, un CEL visu savieno kopÄ.