LE NID DU CHEIRON — ACTUELE HERBOUWPROMPT Versie: 28 oktober 2026 Gebruik dit volledige document om de testwebsite opnieuw vanaf nul te maken. Het is de actuele specificatie, inclusief de aanvullingen van de eigenaar. Bij elke latere wijzigingsopdracht: werk deze prompt en de openbare handleiding bij en publiceer beide mee. Bewaar de actuele bezettingen vóór hergeneratie. ROL EN DOEL Gedraag je als ervaren webdesigner en copywriter in de toerismesector. Maak een conversiegerichte, warme, uitnodigende en professionele one-page website voor Le Nid du Cheiron: vakantiehuis voor maximaal 6 personen in de Haute Provence, Frankrijk, met een zwembad op het domein. Exacte residentie: Résidence du Lac de Castillon – Les Romarins, 04120 Castellane, Provence-Alpes-Côte d’Azur. Eigenaar bevestigt hoogwaardige meubels en een zeer mooi open uitzicht als onderscheidende kwaliteiten. Benoem deze concreet, zonder superlatieven als “de beste”, sterrenclassificatie of niet-bevestigde luxevoorzieningen. Geen claim van meerzicht, afstand tot het meer of eigen privézwembad. Doelgroep: personen, gezinnen en vriendengroepen op zoek naar rust, comfort, natuur of avontuur. Publiek adres: https://lenidducheiron.crabdance.com. Dit is voorlopig een testsite, met noindex/nofollow, maar publiek bereikbaar. ONTWERPREFERENTIES https://creativethemes.com/blocksy/starter-site/wedding/ https://www.villa-gisele.com/ Combineer de luchtige, elegante sfeer met overzichtelijke vakantiewoningsecties. Maak een eigen ontwerp en eigen teksten; kopieer geen foto's of verhalen. Witte achtergrond, veel witruimte, rustige olijf-/steentinten en duidelijke rode acties. Geen zware kaders of drukke effecten. Goed leesbaar op desktop, tablet én mobiel. Respecteer reduced motion, keyboardfocus en leesbare contrasten. OPENING EN NAVIGATIE - Een beeldvullende brede achtergrondfoto over de volledige paginabreedte. - Bovenaan een transparante keuzerij met een lichte witte stippellijn eronder. De rij blijft VAST bovenaan zichtbaar tijdens scrollen (position:fixed). Bovenaan transparant met witte tekst en stippellijn. Na 24px scrollen een witte achtergrond, donkere tekst en donker logo; het rode hoverlijntje blijft. Bij terugkeer naar boven wordt de balk weer transparant. Na scrollen compacter. Mobiel/tablet behouden een vast compact logo en uitklapmenu onder de balk. Bereken de actuele balkhoogte voor scroll-padding en de menu-offset, zodat sectietitels niet onder de balk verdwijnen. Zorg voor voldoende hero-ruimte voor de taalkeuze en sluit geen content achter een niet-scrollbaar mobiel menu. - Logo exact centraal, voorlopig eenvoudig vervangbaar beeldmerk. Klik gaat naar de top van de homepage. Links en rechts ieder drie navigatiewoorden. - Links van het logo: HOME, OVER ONS, OMGEVING. - Rechts: HET HUIS, FACILITEITEN, PRIJZEN. - Uiterst links Facebook- en Instagramiconen; uiterst rechts CONTACT in een knop met witte rand. Contactknop scrolt naar het formulier. - Navigatie in wit, hoofdletters, Dosis; lettergrootte/spreiding zo dat alles evenwichtig past. Helder rood onderlijntje bij hover én zichtbare focus. - Op tablet/mobiel een toegankelijk uitklapmenu, aria-expanded, sluiten bij navigatie/Escape. Geen horizontaal scrollende desktopnavigatie op een telefoon. - Taalkeuze NL / FR / EN / DE, zichtbaar in de hero. - Centraal op de foto: LE NID DU CHEIRON, Montserrat, hoofdletters en ruime tracking. - Daaronder twee gecentreerde regels, hoofdletters, Tenor Sans: VAKANTIEHUIS MET EEN VLEUGJE VERLEDEN Spreid de eerste regel zodat deze dezelfde breedte krijgt als de tweede. - Daaronder rode knop met witte hoofdletters BEKIJK BESCHIKBAARHEID, met kalendericoon. De knop is uitgelijnd met de tekst erboven en scrolt naar de kalendersectie. - Zorg voor natuurlijke vertalingen en passende tekstbreedtes in de vier talen. ONE-PAGE STRUCTUUR EN COPY 1. Hero met naam, slogan en beschikbaarheidsactie. 2. Korte feitenrij: maximaal 6 personen, Haute Provence, zwembad op het domein. 3. OVER ONS: warme introductie. Richting: “Even weg. Helemaal hier.” Benoem de residentie in Castellane, hoogwaardige meubels, open uitzicht en tijd voor elkaar. Introduceer Mieke als rechtstreeks aanspreekpunt. 4. HET HUIS: foto en verhaal naast elkaar, ruimte voor gezamenlijke momenten. Geen niet-bevestigde aantallen slaapkamers/badkamers of voorzieningen verzinnen. 5. FACILITEITEN: zwembad op het domein, hoogwaardige inrichting en open uitzicht. Niet claimen dat het zwembad privé/verwarmd/jaarrond open is. 6. OMGEVING: breed meer-sfeerbeeld en korte delen over Lac de Castillon, de straatjes van Castellane/Notre-Dame du Roc, wandelen en begeleide wildwateractiviteiten in de Verdon. Onderbouwd door de toeristische dienst. Geen reisafstanden vanaf het huis, meerzicht of jaarronde beschikbaarheid claimen. Voeg een link naar de officiële toeristische dienst toe. 7. PRIJZEN: voorlopig op aanvraag, vraag gewenste periode en gezelschap. Geen fictieve tarieven, inbegrepen kosten of annuleringsvoorwaarden. 8. BESCHIKBAARHEID: dynamische maandkalender met vorige/volgende maand en legenda. 9. CONTACT: Mieke, telefoon, e-mail en aanvraagformulier. 10. Footer met sfeerbeeldvermelding en links naar de openbare handleiding en prompt. TALEN Alle bezoekersgerichte teksten, menu's, knoppen, formulieren, kalenderdagen, maandnamen, foutmeldingen en alternatieve afbeeldingsteksten in NL, FR, EN en DE. Gebruik Intl.DateTimeFormat voor de kalender. URL ?lang=nl/fr/en/de en onthoud keuze in localStorage waar beschikbaar. Zet html lang en metadata per taal. NL standaard. Verdeel vertalingen overzichtelijk in public/translations.js. Geen tekst als HTML injecteren uit gebruikersgegevens of het datumbestand. BEZETTINGSBESTAND — ECHTE GEGEVENS public/data/bezet.txt is de bron van waarheid. Een periode per regel: 20261101-20261115 20261223-20270106 De eigenaar heeft deze twee periodes expliciet als ECHTE bezettingen aangewezen. Begin- EN einddag zijn bezet. Deze regels zijn een momentopname: bij herbouw altijd het recentste live bestand bewaren/gebruiken, nooit oude data terugzetten. Formaat YYYYMMDD-YYYYMMDD; lege regels en # commentaar toegestaan. Ondersteun schrikkeldagen, periodes over maand/jaargrenzen, overlappende periodes. Valideer echte datums en volgorde. Een foutieve regel of leesfout maakt de hele kalender onbekend; toon nooit alles als vrij bij een fout. - Lees bij openen, elke 30 seconden als tab zichtbaar is, bij terugkeer/focus en herstel van de internetverbinding. Geen handmatige paginaherlading nodig. - Fetch met cache:no-store en timestamp-query; serverdata Cache-Control:no-store. - Laat een oude HTTP-response nooit nieuwere data overschrijven. - Timeout op verzoeken; herstel automatisch na een volgende geslaagde lezing. - Maandag als eerste weekdag; vrij rustig groen, bezet rood plus arcering/streep, vandaag herkenbaar, verleden gedempt; toegankelijk tekstlabel per datum. - Toon huidige maand; navigatie tot vijf kalenderjaren vooruit, niet vóór huidige maand. - Kalender is informatief. Aanvraag wordt pas reservering na bevestiging. - Geen boekingsnamen of persoonsgegevens in het openbaar leesbare datumbestand. CONTACT EN LINKS Mieke De Vogel +32 479 64 34 01 lenidducheiron@gmail.com Facebook: https://www.facebook.com/p/Le-Nid-du-H%C3%A9ron-61577649723142/ Instagram: https://www.instagram.com/p/DWEhcn5DaRe/ Gebruik deze links exact. Instagram is bewust de aangeleverde berichtlink; Facebook heeft een andere naam in de URL, maar verander de sitenaam niet. Formulier: naam, e-mail, aankomst, vertrek, aantal personen 1–6, bericht. Controleer verplichte velden, vertrek na aankomst en overlap met echte bezetting. Vertrek is uitcheckdag en telt niet als extra overnachting. Statische site: formulier opent een ingevulde mailto in het mailprogramma van de bezoeker. Knop expliciet “Open aanvraag in e-mail”, vertaald. Geen stille verzending, geen opslag, geen fictieve verzondenmelding. Bezoeker moet zelf verzenden. Directe tel: en mailto: links blijven bereikbaar als alternatief. BESTANDEN EN TECHNIEK Bouw buildless HTML/CSS/vanilla JS, zonder framework, database of externe formuliertool. public/index.html, styles.css, app.js, translations.js, calendar.js, public/data/site-config.json en public/data/bezet.txt. Gebruik echte Dosis, Montserrat en Tenor Sans, lokaal gehost met licenties. Contact/social-config in site-config.json; availabilityIsDemo=false. Maak eenvoudige pure kalendertests: inclusieve endpoints, jaargrenzen, schrikkeldag, ongeldige regels/datums, lege bestanden, overlappingen en volledigheid vertalingen. Controleer lokale assets, HTTP, mobiele breedtes, navigatie en taalkeuzes. VERVANGBARE BEELDEN Gebruik heldere vaste namen zodat bestanden vervangen kunnen worden zonder HTML-edit: public/images/home-achtergrond.png (brede hero) public/images/provence-dorpsstraat.png (staande sfeerfoto bij huis) public/images/castellane-meer-sfeer.png (actief breed omgevingsbeeld, bergmeer) public/images/provence-landschap.png (bewaard oud omgevingsbeeld, niet meer actief) public/images/logo.svg (tijdelijk beeldmerk, later eigen SVG-logo) Zelfde echte bestandsformaat en naam behouden. Gebruik redelijke webbestandsgroottes. Tijdelijk generieke Provencebeelden via imagegen genereren. Duidelijk vermelden als AI-sfeerbeelden, geen foto's van het huis. Nooit een fictief huis of zwembad als echt presenteren. Geen beeldtekst, watermerk, personen of logo's. BEELDPROMPT 1 — HERO/LANDSCHAP Use case: photorealistic-natural. Asset type: full-width hero photograph for a peaceful French holiday rental website, generic illustrative Provence scenery, NOT a depiction of the actual rental. Wide landscape 16:9. Haute Provence rolling limestone hills, soft olive groves and a subtle lavender field in foreground, distant small stone village at far right. Elegant natural travel editorial photography, warm late afternoon sunlight, muted olive, sandy stone and lavender, hazy blue mountains. Wide calm center with enough visual quiet for white overlaid title. Realistic detail, no swimming pool or specific rental house, no people, no text, no logo, no watermark. Het oorspronkelijke panorama blijft de hero; het actieve omgevingsbeeld is nu het bergmeer uit beeldprompt 3. Bewaar het oude landschap als terugweg. BEELDPROMPT 2 — DORPSSTRAAT Use case: photorealistic-natural. Generic illustrative travel photograph for a Haute Provence holiday website, not an actual rental property. Portrait 4:5 composition, a quiet narrow lane in a traditional Provence village, warm limestone facades, weathered pale sage shutters, small terracotta pots with lavender and olive branches, soft dappled morning light. Understated refined editorial photography, natural imperfections, muted stone and olive palette, welcoming tranquil atmosphere. No people, text, signs, logos, watermark. Not a collage. OPENBARE DOCUMENTATIE Omdat dit een testsite is, publiceer public/handleiding.html en deze volledige prompt als public/maakprompt.txt. Link beide vanuit de footer (labels vertaald). De handleiding mag in Nederlands zijn en moet uitleggen hoe beelden, contact, vertalingen en bezettingen wijzigen, inclusief lokale versus online bestanden. Werk bij elk nieuw verzoek de actuele prompt bij, niet alleen een changelog. Geef ook een korte gedateerde wijzigingshistoriek. Zet nooit interne adressen, servercredentials, tokens, persoonlijke boekingsgegevens of backups online. WIJZIGINGSHISTORIE 2026-10-28: Eerste versie volgens aangeleverde one-page briefing en stijlvoorbeelden. 2026-10-28: Contactgegevens Mieke De Vogel en exacte sociale links toegevoegd. 2026-10-28: Voorbeeldperiodes op verzoek omgezet naar echte bezetting; automatisch verversen toegevoegd bij openen, elke 30 seconden, focus/terugkeer en onlineherstel. 2026-10-28: Op verzoek herbouwprompt en gebruikershandleiding openbaar gemaakt; toekomstige wijzigingen moeten beide documenten actueel houden. Beheerhulp: lever buiten public/ een lokaal uploadscript publish-bookings.py dat datums valideert, het vorige live bestand bewaart, atomisch publiceert en terugleest. Toegangsinstellingen horen uitsluitend in niet-publieke projectbestanden. 2026-10-28: Op verzoek navigatie permanent vastgezet; transparant bovenaan, wit met donkere tekst/logo na scrollen, compact mobiel en ankerafstand aangepast. CONTACTPRESENTATIE EN LOCATIE Toon een duidelijk blok “Jouw contactpersoon” met Mieke, klikbare telefoon en klikbaar e-mailadres. Daarnaast/eronder een afzonderlijk locatieblok met Le Nid du Cheiron, Résidence du Lac de Castillon – Les Romarins, 04120 Castellane, France, Provence-Alpes-Côte d’Azur. Exact huisnummer/aankomstadres nog niet bekend; verwijs hiervoor naar Mieke. Kaartlink opent de door de eigenaar aangeleverde locatie van Residence Du Lac de Castillon (de residentie, niet een afzonderlijke huispin): https://www.google.com/maps/place/Residence+Du+Lac+de+Castillon/@43.8485015,6.4870717,12z/data=!4m15!1m8!3m7!1s0x12cc0bf1313b25e7:0x40819a5fd97b590!2s04120+Castellane,+France!3b1!8m2!3d43.8461567!4d6.5125996!16zL20vMDhweGt3!3m5!1s0x12cc0c9881286105:0x286a459f20cfc044!8m2!3d43.8774538!4d6.508308!16s%2Fg%2F1tfh6r3v?entry=ttu&g_ep=EgoyMDI2MTAyMC4wIKXMDSoASAFQAw%3D%3D Gebruik CASTELLANE · PROVENCE in hero/footer. Feitenrij noemt Castellane · Les Romarins. Alle aanvullende labels en teksten ook in FR/EN/DE. BEELDPROMPT 3 — ACTIEF OMGEVINGSBEELD (ingebouwde imagegen) Use case: photorealistic-natural. Wide 16:9 travel editorial landscape for a holiday rental website in Castellane, Alpes-de-Haute-Provence. Illustrative scenery inspired by Lac de Castillon: calm clear turquoise mountain reservoir, pale limestone hills with green pine woodland, natural rocky shore, warm gentle late-afternoon light, restful elegant realistic photography. No lavender fields, no sea, no resort buildings, no rental house, no pool, no people, no text, no logo, no watermark. This is a generic AI atmosphere image, not an exact documentary view, not a claimed view from the house. Wide airy composition, lake and hills readable behind centered white website text. Opslaan als images/castellane-meer-sfeer.png. Alt-tekst expliciet illustratief, geïnspireerd door de streek, niet het uitzicht vanuit het huis. Oude foto's behouden. BRONNEN EN AFBAKENING Locatie, hoogwaardige meubels en open uitzicht: bevestigd door eigenaar, 28-10-2026. Streekinformatie: https://www.castellane-verdon.com/rever/nos-tops/le-top-des-activites-a-faire-a-castellane/ https://www.castellane-verdon.com/bouger/baignade/ Door eigenaar gegeven goedkoper vergelijkingsobject, geen Le Nid-specificatie: https://www.vacando.be/provence/castellane/frankrijk/vakantiehuis/OVGB2Cwuvk_HAqEpAglX1Q/ Deze Vacando-pagina kon tijdens de uitvoering niet worden uitgelezen. Geen foto's, prijzen, exacte adresgegevens of woningvoorzieningen ervan overgenomen. 2026-10-28: Castellane en Les Romarins expliciet vermeld. Hoogwaardige meubels en open uitzicht toegevoegd na bevestiging eigenaar. Contact- en locatieblok verbeterd; kaartlink naar Castellane. Omgevingscopy concreter en nieuw illustratief bergmeer. 2026-10-28: Kaartknop opent nu exact de aangeleverde Google Maps-locatie van Residence Du Lac de Castillon. Knoplabel aangepast in NL/FR/EN/DE. FOTOGALERIJ — ACTUELE AANVULLING 28 OKTOBER 2026 Plaats een galerij tussen Het huis en Faciliteiten. Foto's zijn door de eigenaar geleverd; vermeng ze niet met AI-sfeerbeelden. Footer onderscheidt beide. Map: public/images/galerij/. Controleer nummers 1 t/m 20, per nummer extensies in volgorde webp, jpg, jpeg, png. Exact kleine letters; geen voorloopnullen. Eén gevonden, laadbare foto per nummer, numeriek gesorteerd. Gaten overslaan. GEEN Caddy-directorylisting nodig. Gebruik asynchrone HEAD-controles met no-store, unieke query per paginalading en timeout; controleer dat gevonden foto's laden. Maximaal vier nummers tegelijk controleren, maximaal 80 HEAD-verzoeken. Een ongeldig beeld kan terugvallen op de volgende extensie voor hetzelfde nummer. Pagina verschijnt direct; galerij toont kort een vertaalde laadmelding. Geen zichtbare 404 of kapot beeld. Alleen technische browsertools tonen ontbrekende requests. Lege map krijgt nette melding; netwerkfouten een laadfoutmelding. Cacheversie ook op foto-URL: vervanging onder dezelfde naam zichtbaar na verversen. Galerij met paginering: desktop (>1000px) 3 foto’s in 3 kolommen, tablet (601–1000px) 2 foto’s in 2 kolommen, mobiel (tot 600px) 1 foto per pagina. Gelijke 4:3 tegels met object-fit:contain en neutrale achtergrond: volledige staande én liggende foto zichtbaar, geen uitsnede of zoom bij hover. Vorige/volgende paginaknoppen met vertaalde paginateller, geen rondlopen op de overzichtspagina’s. Verberg paginering als alles op één pagina past. Op mobiel vegen tussen pagina’s; swipe opent niet onbedoeld de vergroting. Bij resize de eerste zichtbare foto zoveel mogelijk behouden. Vergroting blijft alle foto’s doorlopen; na sluiten overzicht op laatst bekeken foto. Klik opent native modale dialog met volledig beeld (object-fit:contain), teller alleen over gevonden foto's, vorige/volgende met rondlopen, sluitknop, Escape, toetsenbordpijlen en mobiel vegen. Focus binnen dialog en terug naar geopende tegel bij sluiten; achtergrond niet scrollbaar. Pijlen uitgeschakeld bij één foto. Alle labels/status/alt-teksten in NL, FR, EN en DE; taalwissel werkt ook op galerij. Los modulebestand public/gallery.js; discoveryfunctie testbaar zonder browser. Handleiding: JPG/JPEG/WebP/PNG; circa 2000px langste zijde, bij voorkeur 200–500kB per foto en liefst maximaal circa 1MB. Liggend 3:2 of 4:3 voor rustig overzicht; staand ook ondersteund en volledig zichtbaar bij vergroten. Dit zijn adviezen, geen harde uploadlimieten. Browser schaalt weergave, verkleint niet het bronbestand. Online kalender/galerij leest online bestanden: lokale wijzigingen eerst uploaden. Geen verwijdering van bestaande live foto's zonder expliciete opdracht. Publiceer handleiding en deze prompt mee bij wijzigingen. 2026-10-28: Galerij op verzoek toegevoegd met .jpeg naast .webp/.jpg/.png. Eerste aangeleverde bestanden: 1.jpeg, 2.jpeg, 3.jpeg, 4.jpeg, 6.jpeg, 9.jpeg. 2026-10-28: Gebruik #gallery als taal-onafhankelijk galerijanker, met #galerij als blijvend ondersteund alias. Beide werken met ?lang=nl/fr/en/de. 2026-10-28: Lokale algemene publicatiehulp publish.py toegevoegd (buiten public/). Standaard publiceert deze public/ en foto's met backups, atomaire bestandsvervanging, index als laatste en HTTPS-hashcontrole. data/bezet.txt altijd uitsluiten; beheer via publish-bookings.py. Remote-only genummerde galerijfoto’s mogen uitsluitend na een expliciete j op de getoonde bestandslijst verwijderd worden. Enter/N betekent behouden; bij EOF of ontbrekende interactieve invoer stopt het script vóór upload. Andere remote-only bestanden blijven altijd behouden. --dry-run vergelijkt lokaal en online via alleen-lezen SSH, toont de kandidaten, vraagt geen toestemming en voert geen upload/verwijdering uit. Uitvoering vanuit willekeurige werkmap. Geen Caddy-reload, geen geheimen in publieke documenten. Test- en verificatiegrenzen transparant documenteren. Lokale wijzigingen worden pas na uitvoeren gepubliceerd. 2026-10-28: Portraitfoto’s volledig tonen op neutrale tegels; overzichtspaginering 3/2/1 voor desktop/tablet/mobiel (één rij; vervangt de eerdere 6/4/1-keuze). Vergrote viewer blijft over alle foto’s werken. 2026-10-28: Eén galerijrij: desktop 3, tablet 2, mobiel 1 foto. Reserveer vaste rijhoogte per breakpoint plus ruimte voor laadstatus en paginaknoppen, vanaf de initiële HTML/CSS (ook vóór JS). Houd deze ruimte op laatste/lege pagina zodat onderliggende inhoud niet verspringt. Volledige beelden op neutrale tegels. Publicatiescript toont exacte online-only fotobestanden, vraagt [j/N], default N. Bij j uitsluitend getoonde 1..20.webp/jpg/jpeg/png verwijderen, na root-only backup. Vergelijk SHA256 opnieuw vóór verwijderen; gewijzigde foto blokkeert de actie. Geen symlinks, padtraversal of bestanden buiten de galerij verwijderen. Herstel ook verwijderde foto's bij een installatiefout. Kalender blijft uitgesloten. 2026-10-28: Lever publish.cmd als dubbelklikbare Windows-terminalstarter voor publish.py; werkmap automatisch juist en venster blijft na afloop open. Detecteer niet-interactieve stdin vóór de bevestigingsvraag en stop met uitleg om Terminal of publish.cmd te gebruiken. Geen upload bij ontbrekende invoer/EOF. 2026-10-28: Windows-publicatiebevestiging vervangen door native Ja/Nee-venster (MessageBoxW, Nee standaard). Toon alle kandidaatbestanden gegroepeerd per nummer, map images/galerij duidelijk erbij. Geen console-invoer nodig op Windows. Ja geeft uitsluitend toestemming voor de getoonde lijst; Nee houdt foto's en publiceert wel overige wijzigingen. Fout bij openen stopt vóór upload. --dry-run opent geen venster. Op niet-Windows blijft [j/N] met stdin-controle gelden. Deze instructie vervangt de eerdere verplichting om op Windows te typen/een TTY te hebben. 2026-10-28: Voeg na geslaagde publicatie EN HTTPS-eindcontrole een afzonderlijk backupopruimvoorstel toe aan publish.py. Windows Ja/Nee, standaard Nee; elders j/N. Toon exacte kandidaatpaden, locatie en grootte, maximaal tien items per dialoog. Bescherm huidige publicatie plus twee recente eerdere herstelpunten met echte wijzigingen/verwijderingen. Alleen complete backups van dit publicatiescript en hun uploadarchieven; ook de hostkopie van die archieven meenemen. Geen onbekende, onvolledige of andere backups, geen symlinks of paden buiten de afgebakende root. Geen opruiming vóór geslaagde publicatie of bij dry-run. Na akkoord controleer vingerafdrukken opnieuw; veranderde kandidaten blokkeren verwijdering. Verwijderen van oude backups is definitief; maak geen backup van backups. Opruimfouten apart melden zonder de reeds geslaagde publicatie als mislukt te presenteren.