Skip to content

Commit faa85d0

Browse files
Merge pull request #110 from niteeshkanna-sh/claude/stoic-rubin-fnglq7
SEO: crawlable fleet and rates, 17 new pages, and a check that keeps them honest
2 parents 31bf3ae + 8ee6f06 commit faa85d0

134 files changed

Lines changed: 5226 additions & 678 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.site-manifest.json‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[
22
".htaccess",
3+
".vite",
34
"404.html",
45
"CNAME",
56
"about",
@@ -17,8 +18,12 @@
1718
"index.html",
1819
"maruti-brezza-self-drive-car-rental-nagercoil.avif",
1920
"monthly",
21+
"mountain-road-at-sunrise-self-drive-car-rental-1280w.webp",
22+
"mountain-road-at-sunrise-self-drive-car-rental-800w.webp",
2023
"mountain-road-at-sunrise-self-drive-car-rental.webp",
2124
"nitesha-cars-and-bikes-emblem.webp",
25+
"nitesha-cars-and-bikes-logo-nagercoil-v2-400w.webp",
26+
"nitesha-cars-and-bikes-logo-nagercoil-v2-800w.webp",
2227
"nitesha-cars-and-bikes-logo-nagercoil-v2.webp",
2328
"nri",
2429
"photos",

‎.vite/manifest.json‎

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
{
2+
"_PageHeader-B6dZ6efH.js": {
3+
"file": "assets/PageHeader-B6dZ6efH.js",
4+
"name": "PageHeader",
5+
"imports": [
6+
"_SectionArt-CRGDPXOj.js"
7+
]
8+
},
9+
"_SectionArt-CRGDPXOj.js": {
10+
"file": "assets/SectionArt-CRGDPXOj.js",
11+
"name": "SectionArt"
12+
},
13+
"_ServicePage-2R3tb8Gb.js": {
14+
"file": "assets/ServicePage-2R3tb8Gb.js",
15+
"name": "ServicePage",
16+
"imports": [
17+
"_SectionArt-CRGDPXOj.js",
18+
"index.html",
19+
"_PageHeader-B6dZ6efH.js"
20+
]
21+
},
22+
"index.html": {
23+
"file": "assets/index-BchjlLBy.js",
24+
"name": "index",
25+
"src": "index.html",
26+
"isEntry": true,
27+
"imports": [
28+
"_SectionArt-CRGDPXOj.js"
29+
],
30+
"dynamicImports": [
31+
"src/pages/About.tsx",
32+
"src/pages/Cars.tsx",
33+
"src/pages/Bikes.tsx",
34+
"src/pages/WeddingCars.tsx",
35+
"src/pages/TouristVehicles.tsx",
36+
"src/pages/Nri.tsx",
37+
"src/pages/Monthly.tsx",
38+
"src/pages/Tariff.tsx",
39+
"src/pages/Blog.tsx",
40+
"src/pages/Contact.tsx",
41+
"src/pages/Places.tsx",
42+
"src/pages/Services.tsx",
43+
"src/pages/NotFound.tsx",
44+
"src/pages/CarRentalAreas.tsx",
45+
"src/pages/Town.tsx",
46+
"src/pages/CarModel.tsx",
47+
"src/pages/ServiceArea.tsx",
48+
"src/pages/Post.tsx"
49+
],
50+
"css": [
51+
"assets/index-CTc6RczQ.css"
52+
]
53+
},
54+
"src/pages/About.tsx": {
55+
"file": "assets/About-BagSiI9V.js",
56+
"name": "About",
57+
"src": "src/pages/About.tsx",
58+
"isDynamicEntry": true,
59+
"imports": [
60+
"_SectionArt-CRGDPXOj.js",
61+
"index.html",
62+
"_PageHeader-B6dZ6efH.js"
63+
]
64+
},
65+
"src/pages/Bikes.tsx": {
66+
"file": "assets/Bikes-BGuFlx-H.js",
67+
"name": "Bikes",
68+
"src": "src/pages/Bikes.tsx",
69+
"isDynamicEntry": true,
70+
"imports": [
71+
"_SectionArt-CRGDPXOj.js",
72+
"_ServicePage-2R3tb8Gb.js"
73+
]
74+
},
75+
"src/pages/Blog.tsx": {
76+
"file": "assets/Blog-C8E-F237.js",
77+
"name": "Blog",
78+
"src": "src/pages/Blog.tsx",
79+
"isDynamicEntry": true,
80+
"imports": [
81+
"_SectionArt-CRGDPXOj.js",
82+
"index.html",
83+
"_PageHeader-B6dZ6efH.js"
84+
]
85+
},
86+
"src/pages/CarModel.tsx": {
87+
"file": "assets/CarModel-BNr5p2Tt.js",
88+
"name": "CarModel",
89+
"src": "src/pages/CarModel.tsx",
90+
"isDynamicEntry": true,
91+
"imports": [
92+
"_SectionArt-CRGDPXOj.js",
93+
"index.html",
94+
"_PageHeader-B6dZ6efH.js",
95+
"src/pages/NotFound.tsx"
96+
]
97+
},
98+
"src/pages/CarRentalAreas.tsx": {
99+
"file": "assets/CarRentalAreas-BLwzjYsU.js",
100+
"name": "CarRentalAreas",
101+
"src": "src/pages/CarRentalAreas.tsx",
102+
"isDynamicEntry": true,
103+
"imports": [
104+
"_SectionArt-CRGDPXOj.js",
105+
"index.html",
106+
"_PageHeader-B6dZ6efH.js"
107+
]
108+
},
109+
"src/pages/Cars.tsx": {
110+
"file": "assets/Cars-BT-gZgK7.js",
111+
"name": "Cars",
112+
"src": "src/pages/Cars.tsx",
113+
"isDynamicEntry": true,
114+
"imports": [
115+
"_SectionArt-CRGDPXOj.js",
116+
"index.html",
117+
"_PageHeader-B6dZ6efH.js"
118+
]
119+
},
120+
"src/pages/Contact.tsx": {
121+
"file": "assets/Contact-sMllwbKq.js",
122+
"name": "Contact",
123+
"src": "src/pages/Contact.tsx",
124+
"isDynamicEntry": true,
125+
"imports": [
126+
"_SectionArt-CRGDPXOj.js",
127+
"index.html",
128+
"_PageHeader-B6dZ6efH.js"
129+
]
130+
},
131+
"src/pages/Monthly.tsx": {
132+
"file": "assets/Monthly-DUOyZQBa.js",
133+
"name": "Monthly",
134+
"src": "src/pages/Monthly.tsx",
135+
"isDynamicEntry": true,
136+
"imports": [
137+
"_SectionArt-CRGDPXOj.js",
138+
"index.html",
139+
"_PageHeader-B6dZ6efH.js"
140+
]
141+
},
142+
"src/pages/NotFound.tsx": {
143+
"file": "assets/NotFound-BOhuBiIT.js",
144+
"name": "NotFound",
145+
"src": "src/pages/NotFound.tsx",
146+
"isDynamicEntry": true,
147+
"imports": [
148+
"_SectionArt-CRGDPXOj.js",
149+
"_PageHeader-B6dZ6efH.js"
150+
]
151+
},
152+
"src/pages/Nri.tsx": {
153+
"file": "assets/Nri-CYBhMv_I.js",
154+
"name": "Nri",
155+
"src": "src/pages/Nri.tsx",
156+
"isDynamicEntry": true,
157+
"imports": [
158+
"_SectionArt-CRGDPXOj.js",
159+
"index.html",
160+
"_PageHeader-B6dZ6efH.js"
161+
]
162+
},
163+
"src/pages/Places.tsx": {
164+
"file": "assets/Places-DeqB0d8-.js",
165+
"name": "Places",
166+
"src": "src/pages/Places.tsx",
167+
"isDynamicEntry": true,
168+
"imports": [
169+
"_SectionArt-CRGDPXOj.js",
170+
"index.html",
171+
"_PageHeader-B6dZ6efH.js"
172+
]
173+
},
174+
"src/pages/Post.tsx": {
175+
"file": "assets/Post-MIeUtpwm.js",
176+
"name": "Post",
177+
"src": "src/pages/Post.tsx",
178+
"isDynamicEntry": true,
179+
"imports": [
180+
"_SectionArt-CRGDPXOj.js",
181+
"index.html",
182+
"_PageHeader-B6dZ6efH.js",
183+
"src/pages/NotFound.tsx"
184+
]
185+
},
186+
"src/pages/ServiceArea.tsx": {
187+
"file": "assets/ServiceArea-ir_N5Ogd.js",
188+
"name": "ServiceArea",
189+
"src": "src/pages/ServiceArea.tsx",
190+
"isDynamicEntry": true,
191+
"imports": [
192+
"_SectionArt-CRGDPXOj.js",
193+
"index.html",
194+
"_PageHeader-B6dZ6efH.js",
195+
"src/pages/NotFound.tsx"
196+
]
197+
},
198+
"src/pages/Services.tsx": {
199+
"file": "assets/Services-BNXO2tQW.js",
200+
"name": "Services",
201+
"src": "src/pages/Services.tsx",
202+
"isDynamicEntry": true,
203+
"imports": [
204+
"_SectionArt-CRGDPXOj.js",
205+
"index.html",
206+
"_PageHeader-B6dZ6efH.js"
207+
]
208+
},
209+
"src/pages/Tariff.tsx": {
210+
"file": "assets/Tariff-DM63uEOD.js",
211+
"name": "Tariff",
212+
"src": "src/pages/Tariff.tsx",
213+
"isDynamicEntry": true,
214+
"imports": [
215+
"_SectionArt-CRGDPXOj.js",
216+
"index.html",
217+
"_PageHeader-B6dZ6efH.js"
218+
]
219+
},
220+
"src/pages/TouristVehicles.tsx": {
221+
"file": "assets/TouristVehicles-Or946-7L.js",
222+
"name": "TouristVehicles",
223+
"src": "src/pages/TouristVehicles.tsx",
224+
"isDynamicEntry": true,
225+
"imports": [
226+
"_SectionArt-CRGDPXOj.js",
227+
"_ServicePage-2R3tb8Gb.js"
228+
]
229+
},
230+
"src/pages/Town.tsx": {
231+
"file": "assets/Town-BnsId0Rm.js",
232+
"name": "Town",
233+
"src": "src/pages/Town.tsx",
234+
"isDynamicEntry": true,
235+
"imports": [
236+
"_SectionArt-CRGDPXOj.js",
237+
"index.html",
238+
"_PageHeader-B6dZ6efH.js",
239+
"src/pages/NotFound.tsx"
240+
]
241+
},
242+
"src/pages/WeddingCars.tsx": {
243+
"file": "assets/WeddingCars-DEx5ukzM.js",
244+
"name": "WeddingCars",
245+
"src": "src/pages/WeddingCars.tsx",
246+
"isDynamicEntry": true,
247+
"imports": [
248+
"_SectionArt-CRGDPXOj.js",
249+
"_ServicePage-2R3tb8Gb.js"
250+
]
251+
}
252+
}

‎404.html‎

Lines changed: 6 additions & 4 deletions
Large diffs are not rendered by default.

‎about/index.html‎

Lines changed: 5 additions & 4 deletions
Large diffs are not rendered by default.

‎admin/content-defaults.json‎

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -91,30 +91,6 @@
9191
}
9292
]
9393
},
94-
"highlights": {
95-
"eyebrow": "Also worth asking about",
96-
"heading": "Longer hires, visits home, and weddings",
97-
"items": [
98-
{
99-
"to": "/monthly",
100-
"title": "By the month",
101-
"body": "Hatchbacks to 7 seaters for weeks or months, with the daily rate falling the longer you keep it.",
102-
"cta": "Monthly rates"
103-
},
104-
{
105-
"to": "/nri",
106-
"title": "Coming home from abroad",
107-
"body": "Book from the Gulf, Singapore or Malaysia and the vehicle is waiting when you land.",
108-
"cta": "For NRI visitors"
109-
},
110-
{
111-
"to": "/wedding-cars",
112-
"title": "Wedding cars",
113-
"body": "A decorated car for the couple and vehicles for the family. Muhurtham dates go months ahead.",
114-
"cta": "See wedding cars"
115-
}
116-
]
117-
},
11894
"whyUs": {
11995
"badge": "Why hire from us",
12096
"heading": "Straight answers, and a vehicle that turns up",
@@ -161,16 +137,6 @@
161137
"noteLead": "Deposits are refundable.",
162138
"noteBody": "It is returned after the car comes back, less any extra-KM charges or damage. KM limits and extra-KM rates are listed on every car above, so there is nothing to discover later."
163139
},
164-
"openRoad": {
165-
"eyebrow": "Self drive",
166-
"headingLead": "No driver. No timetable.",
167-
"headingAccent": "Just the road ahead.",
168-
"body": "That is the whole point of self drive. You take the keys, you set the route, and the day belongs to you — a sunrise run down to Kanyakumari, the coast road to Colachel, or a long weekend with no fixed plan at all. Rates and limits are agreed before you leave, so nothing changes on the way back.",
169-
"primaryLabel": "Browse the fleet",
170-
"primaryHref": "/cars",
171-
"secondaryLabel": "Check availability",
172-
"secondaryHref": "/contact"
173-
},
174140
"areasServed": {
175141
"heading": "Where we hire across Kanyakumari district",
176142
"intro": "We serve the whole of Kanyakumari district in Tamil Nadu. Tell us where you are and we will sort out pickup.",

‎admin/src/content.php‎

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -82,27 +82,6 @@ function content_schema(): array
8282
],
8383
],
8484
],
85-
'highlights' => [
86-
'label' => 'The three worth asking for',
87-
'note' => 'Three cards for the bookings worth the most. The first is the big one; the other two sit beside it. One sentence each: this is the part of the page somebody reads while scrolling past, and the page it links to is where the detail belongs.',
88-
'fields' => [
89-
'eyebrow' => ['label' => 'Small line above', 'type' => 'text'],
90-
'heading' => ['label' => 'Heading', 'type' => 'text'],
91-
'items' => [
92-
'label' => 'Cards',
93-
'type' => 'repeater',
94-
// No icon field: the site draws one per service,
95-
// so the row cannot end up with one colour emoji
96-
// beside two flat ones, which is what it had.
97-
'fields' => [
98-
'title' => ['label' => 'Title', 'type' => 'text'],
99-
'body' => ['label' => 'One sentence', 'type' => 'textarea'],
100-
'cta' => ['label' => 'Link text', 'type' => 'text'],
101-
'to' => ['label' => 'Links to', 'type' => 'text'],
102-
],
103-
],
104-
],
105-
],
10685
'whyUs' => [
10786
'label' => 'Why hire from us',
10887
'fields' => [
@@ -136,19 +115,6 @@ function content_schema(): array
136115
'noteBody' => ['label' => 'Note', 'type' => 'textarea'],
137116
],
138117
],
139-
'openRoad' => [
140-
'label' => 'Open road band',
141-
'fields' => [
142-
'eyebrow' => ['label' => 'Eyebrow', 'type' => 'text'],
143-
'headingLead' => ['label' => 'Heading', 'type' => 'text'],
144-
'headingAccent' => ['label' => 'Heading, gold line', 'type' => 'text'],
145-
'body' => ['label' => 'Paragraph', 'type' => 'textarea'],
146-
'primaryLabel' => ['label' => 'Main button', 'type' => 'text'],
147-
'primaryHref' => ['label' => 'Main button link', 'type' => 'text'],
148-
'secondaryLabel' => ['label' => 'Second button', 'type' => 'text'],
149-
'secondaryHref' => ['label' => 'Second button link', 'type' => 'text'],
150-
],
151-
],
152118
'areasServed' => [
153119
'label' => 'Where we hire',
154120
'note' => 'The town names themselves come from the site\'s SEO data, so they stay in step with the structured data Google reads.',

‎admin/src/site-images.php‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
'home-hero' => 'Home page background',
4343
'why-us-1' => 'Why hire from us — large photo',
4444
'why-us-2' => 'Why hire from us — small photo',
45-
'open-road' => 'Open road band',
4645

4746
// The panel on the home page listing the towns served.
4847
'coast' => 'Areas we serve panel',
@@ -101,7 +100,6 @@
101100

102101
// Full-bleed sections, which are seen at whatever the window is.
103102
'home-hero' => [16, 9, 1600, 900],
104-
'open-road' => [16, 9, 1600, 900],
105103

106104
// The photographs beside "Why hire from us" are laid out 4:3.
107105
'why-us-1' => [4, 3, 1200, 900],
@@ -147,7 +145,6 @@
147145
'home-hero' => 'self drive car and bike rental Kanyakumari district',
148146
'why-us-1' => 'why hire from NiteSha Cars Nagercoil',
149147
'why-us-2' => 'self drive car handover Nagercoil',
150-
'open-road' => 'self drive road trip Kanyakumari',
151148
'coast' => 'car rental delivery areas Kanyakumari district',
152149

153150
'cars' => 'self drive cars for rent Nagercoil',

0 commit comments

Comments
 (0)