Headless CMS
Wink spletne komponente so neodvisni prilagojeni HTML elementi. Če vaš headless CMS upodablja HTML — ne glede na to, ali uporabljate Next.js, Nuxt, Astro, SvelteKit ali katerikoli drug okvir — lahko Wink komponente vdelate brez posebne integracije.
Treh korakov vdelave
Section titled “Treh korakov vdelave”Vsaka Wink integracija, ne glede na platformo, sledi istim trem korakom.
1. Vključite slogovno datoteko
Section titled “1. Vključite slogovno datoteko”Dodajte to v <head> dokumenta (ali ustrezno globalno postavitev):
<link rel="stylesheet" href="https://elements.wink.travel/styles.css">2. Vključite JavaScript
Section titled “2. Vključite JavaScript”Dodajte to pred zapiralnim </body> tagom (ali v skriptni del vaše postavitve):
<script src="https://elements.wink.travel/elements.js" type="module" defer></script>3. Dodajte nalagalnik aplikacije
Section titled “3. Dodajte nalagalnik aplikacije”Postavite to enkrat na stran, kjerkoli v telesu (običajno v nogi globalne postavitve):
<wink-app-loader client-id="YOUR_CLIENT_ID"></wink-app-loader>Primeri za ogrodja
Section titled “Primeri za ogrodja”Next.js (App Router)
Section titled “Next.js (App Router)”export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <head> <link rel="stylesheet" href="https://elements.wink.travel/styles.css" /> </head> <body> {children} <script src="https://elements.wink.travel/elements.js" type="module" defer /> <wink-app-loader client-id="YOUR_CLIENT_ID" /> </body> </html> );}Nuxt 3
Section titled “Nuxt 3”<template> <div> <slot /> <wink-app-loader client-id="YOUR_CLIENT_ID" /> </div></template>
<script setup>useHead({ link: [{ rel: 'stylesheet', href: 'https://elements.wink.travel/styles.css' }], script: [{ src: 'https://elements.wink.travel/elements.js', type: 'module', defer: true }],})</script><html lang="en"> <head> <link rel="stylesheet" href="https://elements.wink.travel/styles.css" /> </head> <body> <slot /> <script src="https://elements.wink.travel/elements.js" type="module" is:inline></script> <wink-app-loader client-id="YOUR_CLIENT_ID"></wink-app-loader> </body></html>SvelteKit
Section titled “SvelteKit”<svelte:head> <link rel="stylesheet" href="https://elements.wink.travel/styles.css" /></svelte:head>
<slot /><wink-app-loader client-id="YOUR_CLIENT_ID" />
<script> import { onMount } from 'svelte'; onMount(async () => { await import('https://elements.wink.travel/elements.js'); });</script>Postavljanje komponent v vsebino
Section titled “Postavljanje komponent v vsebino”V bogatem besedilu ali poljih po meri vašega CMS vdelajte oznake komponent neposredno v HTML izhod:
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID"></wink-content-loader>Za Contentful, Strapi, Sanity ali podobne headless platforme uporabite Rich Text polje ali Custom Block, ki upodablja surovi HTML, in tam prilepite oznako komponente.
npm paket
Section titled “npm paket”Za TypeScript projekte paket @wink/elements ponuja:
- Funkcijo
load(), ki programatično vključi CDN skripte - Polne TypeScript deklaracije tipov za vse atribute komponent
npm install @wink/elementsimport { load } from '@wink/elements';
// Pokličite enkrat ob zagonu aplikacijeload({ clientId: 'YOUR_CLIENT_ID' });Na voljo komponente
Section titled “Na voljo komponente”| Komponenta | HTML oznaka | Namen |
|---|---|---|
| Content loader | <wink-content-loader> | Prikaz hotelskih kartic, mrež, zemljevidov |
| Lookup | <wink-lookup> | Iskalna vrstica za destinacije |
| Search button | <wink-search-button> | Odpri izbirnik poti |
| Account button | <wink-account-button> | Prijava / uporabniški meni |
| Itinerary button | <wink-itinerary-button> | Prikaži trenutno pot |
| Itinerary picker | <wink-itinerary-picker> | Celoten obrazec poti |
| Shopping cart | <wink-shopping-cart-button> | Gumb s povzetkom košarice |
Oglejte si Web Components za celoten seznam atributov.