מערכת ניהול תוכן ללא ראש
רכיבי הווב של Wink הם אלמנטים מותאמים אישית ב-HTML שאינם תלויים במסגרת עבודה. אם מערכת ניהול התוכן שלך ללא ראש מציגה HTML — בין אם דרך Next.js, Nuxt, Astro, SvelteKit או כל מסגרת אחרת — תוכל להטמיע את רכיבי Wink ללא אינטגרציה מיוחדת.
ההטמעה בשלושה שלבים
Section titled “ההטמעה בשלושה שלבים”כל אינטגרציה של Wink, ללא קשר לפלטפורמה, עוקבת אחרי אותם שלושה שלבים.
1. הוסף את גיליון הסגנונות
Section titled “1. הוסף את גיליון הסגנונות”הוסף זאת ל<head> של המסמך שלך (או לפריסת העיצוב הגלובלית המקבילה):
<link rel="stylesheet" href="https://elements.wink.travel/styles.css">2. הוסף את קוד ה-JavaScript
Section titled “2. הוסף את קוד ה-JavaScript”הוסף זאת לפני תג ה-</body> הסוגר (או בסקשן הסקריפט של הפריסה שלך):
<script src="https://elements.wink.travel/elements.js" type="module" defer></script>3. הוסף את הטוען של האפליקציה
Section titled “3. הוסף את הטוען של האפליקציה”מקם זאת פעם אחת בכל עמוד, בכל מקום בתוך ה-body (בדרך כלל בכותרת התחתונה של הפריסה הגלובלית):
<wink-app-loader client-id="YOUR_CLIENT_ID"></wink-app-loader>דוגמאות למסגרות עבודה
Section titled “דוגמאות למסגרות עבודה”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>מיקום רכיבים בתוכן
Section titled “מיקום רכיבים בתוכן”בשדות טקסט עשיר או שדות מותאמים אישית במערכת ניהול התוכן שלך, הטמע תגי רכיבים ישירות ביציאת ה-HTML:
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID"></wink-content-loader>למערכות כמו Contentful, Strapi, Sanity או פלטפורמות ללא ראש דומות, השתמש בשדה Rich Text או בCustom Block שמציג HTML גולמי, והדבק שם את תג הרכיב.
חבילת npm
Section titled “חבילת npm”לפרויקטים ב-TypeScript, חבילת @wink/elements מספקת:
- פונקציית
load()שמזריקה את סקריפטי ה-CDN באופן תכנותי - הכרזות טיפוסים מלאות לכל מאפייני הרכיבים
npm install @wink/elementsimport { load } from '@wink/elements';
// קריאה פעם אחת בעת הפעלת האפליקציהload({ clientId: 'YOUR_CLIENT_ID' });רכיבים זמינים
Section titled “רכיבים זמינים”| רכיב | תג HTML | מטרה |
|---|---|---|
| Content loader | <wink-content-loader> | הצגת כרטיסי מלונות, רשתות, מפות |
| Lookup | <wink-lookup> | שורת חיפוש ליעדים |
| Search button | <wink-search-button> | פתיחת בורר מסלול |
| Account button | <wink-account-button> | כניסה / תפריט משתמש |
| Itinerary button | <wink-itinerary-button> | הצגת המסלול הנוכחי |
| Itinerary picker | <wink-itinerary-picker> | טופס מסלול מלא |
| Shopping cart | <wink-shopping-cart-button> | כפתור סיכום עגלה |
עיין ב-Web Components לקבלת הפניה מלאה למאפיינים.