处理模板时发生错误。
Syntax error in template "18378663404775#20120#121715" in line 393, column 48:
Encountered "index", but was expecting one of these patterns:
    ","
    ">"
1<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;800&display=swap"> 
2<style>:root { 
3    --bg: #fff; 
4    --alt: #f3f6fc; 
5    --card: #fff; 
6    --ink: #0b1f3a; 
7    --mut: #56657d; 
8    --line: #dde4f0; 
9    --blue: #1f5fff; 
10    --gold: #b8893b; 
11    --hero: #0b1f3a 
12} 
13 
14* { 
15    box-sizing: border-box 
16} 
17 
18.cs { 
19    font-family: 'Manrope', system-ui, sans-serif; 
20    line-height: 1.6; 
21    color: var(--ink); 
22    background: var(--bg) 
23} 
24 
25.cs .w { 
26    max-width: 1120px; 
27    margin: 0 auto; 
28    padding: 0 20px 
29} 
30 
31.cs .hero { 
32    background: var(--hero); 
33    color: #fff; 
34    padding: 56px 0 
35} 
36 
37.cs .hero h1 { 
38    font-size: clamp(30px, 5vw, 50px); 
39    line-height: 1.15; 
40    margin: 14px 0; 
41    max-width: 800px 
42} 
43 
44.cs .hero h1 em { 
45    font-style: normal; 
46    color: #e0b76a 
47} 
48 
49.cs .hero p { 
50    max-width: 660px; 
51    opacity: .85; 
52    margin: 0 0 8px 
53} 
54 
55.cs .meta { 
56    display: grid; 
57    grid-template-columns: 1fr 1fr 2.4fr; 
58    gap: 1px; 
59    background: #ffffff26; 
60    border-radius: 12px; 
61    overflow: hidden; 
62    margin-top: 24px 
63} 
64 
65@media(max-width:700px) { 
66    .cs .meta { 
67        grid-template-columns: 1fr 
68    } 
69} 
70 
71.cs .meta div { 
72    background: #13294a; 
73    padding: 18px 20px 
74} 
75 
76.cs .meta small { 
77    display: block; 
78    font-size: 11px; 
79    letter-spacing: 1.5px; 
80    text-transform: uppercase; 
81    color: #e0b76a 
82} 
83 
84.cs .meta span { 
85    font-weight: 600; 
86    font-size: 14px 
87} 
88 
89.cs .chips { 
90    display: flex; 
91    flex-wrap: wrap; 
92    gap: 8px; 
93    margin-top: 6px 
94} 
95 
96.cs .chips span { 
97    background: #ffffff14; 
98    border: 1px solid #ffffff30; 
99    color: #fff; 
100    font-size: 12px; 
101    padding: 4px 11px; 
102    border-radius: 99px 
103} 
104 
105.cs section { 
106    padding: 56px 0 
107} 
108 
109.cs .alt { 
110    background: var(--alt) 
111} 
112 
113.cs .tag { 
114    font-size: 12px; 
115    font-weight: 800; 
116    letter-spacing: 2px; 
117    text-transform: uppercase; 
118    color: var(--blue) 
119} 
120 
121.cs h2 { 
122    font-size: clamp(24px, 3.5vw, 32px); 
123    margin: 8px 0 18px 
124} 
125 
126.cs .lead { 
127    max-width: 780px; 
128    color: var(--mut); 
129    font-size: 16px 
130} 
131 
132.cs .g2 { 
133    display: grid; 
134    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
135    gap: 24px; 
136    margin-top: 20px 
137} 
138 
139.cs .g3 { 
140    display: grid; 
141    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); 
142    gap: 20px; 
143    margin-top: 20px 
144} 
145 
146.cs .card { 
147    background: var(--card); 
148    border: 1px solid var(--line); 
149    border-radius: 14px; 
150    padding: 24px 
151} 
152 
153.cs .card h3 { 
154    margin: 0 0 10px; 
155    font-size: 18px 
156} 
157 
158.cs ul.x { 
159    list-style: none; 
160    padding: 0; 
161    margin: 0 
162} 
163 
164.cs ul.x li { 
165    padding: 8px 0 8px 24px; 
166    position: relative; 
167    font-size: 15px; 
168    border-bottom: 1px dashed var(--line) 
169} 
170 
171.cs ul.x li:last-child { 
172    border: 0 
173} 
174 
175.cs ul.x li:before { 
176    content: ""; 
177    position: absolute; 
178    left: 0; 
179    top: 14px; 
180    width: 8px; 
181    height: 8px; 
182    border-radius: 50%; 
183    background: var(--gold) 
184} 
185 
186.cs ul.x.ok li:before { 
187    background: var(--blue) 
188} 
189 
190.cs .tbl { 
191    width: 100%; 
192    border-collapse: collapse; 
193    background: var(--card); 
194    border: 1px solid var(--line); 
195    border-radius: 14px; 
196    overflow: hidden; 
197    font-size: 14px; 
198    margin-top: 16px 
199} 
200 
201.cs .tbl th { 
202    background: var(--hero); 
203    color: #fff; 
204    text-align: left; 
205    padding: 12px 16px 
206} 
207 
208.cs .tbl td { 
209    padding: 11px 16px; 
210    border-top: 1px solid var(--line) 
211} 
212 
213.cs .scroll { 
214    overflow-x: auto 
215} 
216 
217.cs .step { 
218    display: flex; 
219    gap: 14px 
220} 
221 
222.cs .num { 
223    width: 32px; 
224    height: 32px; 
225    border-radius: 50%; 
226    background: var(--blue); 
227    color: #fff; 
228    display: grid; 
229    place-items: center; 
230    font-weight: 800; 
231    flex: none; 
232    font-size: 14px 
233} 
234 
235.cs .out { 
236    background: var(--hero); 
237    color: #fff; 
238    text-align: center; 
239    border-radius: 16px; 
240    padding: 44px 24px 
241} 
242 
243.cs .out .path { 
244    display: flex; 
245    flex-wrap: wrap; 
246    justify-content: center; 
247    gap: 8px; 
248    margin: 20px 0 
249} 
250 
251.cs .out .path span { 
252    background: #ffffff18; 
253    padding: 8px 14px; 
254    border-radius: 99px; 
255    font-size: 13px; 
256    font-weight: 700 
257} 
258 
259.cs .out h3 { 
260    color: #e0b76a; 
261    font-size: 20px; 
262    margin: 16px 0 0 
263} 
264 
265</style> 
266 
267<div class="cs"> 
268 
269<#-- ===================== HERO ===================== --> 
270<header class="hero"><div class="w"> 
271 
272  <#-- Wrap the highlighted phrase (heroHighlight) inside the full title (heroTitle) 
273       in <em>, which the CSS above renders in gold instead of italic. --> 
274  <#assign fullTitle = heroTitle.getData()!""> 
275  <#assign highlight = heroHighlight.getData()!""> 
276  <#if highlight?has_content && fullTitle?contains(highlight)> 
277    <#assign titleHtml = fullTitle?replace(highlight, "<em>" + highlight + "</em>")> 
278  <#else> 
279    <#assign titleHtml = fullTitle> 
280  </#if> 
281 
282  <h1>${titleHtml}</h1> 
283  <p>${heroDescription.getData()!""}</p> 
284 
285  <div class="meta"> 
286    <div><small>Client</small><span>${client.getData()!""}</span></div> 
287    <div><small>Industry</small><span>${industry.getData()!""}</span></div> 
288    <div> 
289      <small>Services Provided by GIKS INDIA</small> 
290      <div class="chips"> 
291        <#list services.getSiblings() as service> 
292          <span>${service.getData()}</span> 
293        </#list> 
294      </div> 
295    </div> 
296  </div> 
297</div></header> 
298 
299<#-- ===================== PROJECT OVERVIEW (label hardcoded) ===================== --> 
300<section><div class="w"> 
301  <div class="tag">Project Overview</div> 
302  <p class="lead">${overviewText.getData()!""}</p> 
303</div></section> 
304 
305<#-- ===================== THE CHALLENGE (label hardcoded, heading dynamic) ===================== --> 
306<section class="alt"><div class="w"> 
307  <div class="tag">The Challenge</div> 
308  <h2>${challengeHeading.getData()!""}</h2> 
309  <p class="lead">${challengeDescription.getData()!""}</p> 
310  <div class="g2"> 
311    <#list challengeCards.getSiblings() as card> 
312      <div class="card"> 
313        <h3>${card.cardHeading.getData()}</h3> 
314        <ul class="x"> 
315          <#list card.cardPoints.getSiblings() as point> 
316            <li>${point.getData()}</li> 
317          </#list> 
318        </ul> 
319      </div> 
320    </#list> 
321  </div> 
322</div></section> 
323 
324<#-- ===================== GIKS INDIA'S SOLUTION (label hardcoded, heading dynamic) ===================== --> 
325<section><div class="w"> 
326  <div class="tag">GIKS INDIA's Solution</div> 
327  <h2>${solutionHeading.getData()!""}</h2> 
328  <p class="lead">${solutionDescription.getData()!""}</p> 
329  <div class="g2"> 
330    <#list solutionBlocks.getSiblings() as block> 
331      <div class="card"> 
332        <h3>${block.solutionTitle.getData()}</h3> 
333        <p class="lead" style="margin-bottom:12px">${block.solutionBlockDescription.getData()}</p> 
334        <ul class="x ok"> 
335          <#list block.solutionPoints.getSiblings() as point> 
336            <li>${point.getData()}</li> 
337          </#list> 
338        </ul> 
339      </div> 
340    </#list> 
341  </div> 
342</div></section> 
343 
344<#-- ===================== TECHNOLOGY STACK (label hardcoded) ===================== --> 
345<section class="alt"><div class="w"> 
346  <div class="tag">Technology Stack</div> 
347  <h2>Built with</h2> 
348  <div class="scroll"> 
349    <table class="tbl"> 
350      <tr><th>Category</th><th>Technologies</th></tr> 
351      <#list techRows.getSiblings() as row> 
352        <tr><td>${row.techCategory.getData()}</td><td>${row.techList.getData()}</td></tr> 
353      </#list> 
354    </table> 
355  </div> 
356</div></section> 
357 
358<#-- ===================== BEFORE & AFTER (label hardcoded, heading dynamic) ===================== --> 
359<section><div class="w"> 
360  <div class="tag">Before &amp; After</div> 
361  <h2>${comparisonHeading.getData()!""}</h2> 
362  <div class="scroll"> 
363    <table class="tbl"> 
364      <tr><th>Before</th><th>After GIKS INDIA</th></tr> 
365      <#list comparisonRows.getSiblings() as row> 
366        <tr><td>${row.beforeText.getData()}</td><td>${row.afterText.getData()}</td></tr> 
367      </#list> 
368    </table> 
369  </div> 
370</div></section> 
371 
372<#-- ===================== BUSINESS BENEFITS (label hardcoded, heading dynamic) ===================== --> 
373<section class="alt"><div class="w"> 
374  <div class="tag">Business Benefits</div> 
375  <h2>${benefitsHeading.getData()!""}</h2> 
376  <p class="lead">${benefitsDescription.getData()!""}</p> 
377  <div class="card" style="margin-top:20px"> 
378    <ul class="x ok"> 
379      <#list benefitPoints.getSiblings() as point> 
380        <li>${point.getData()}</li> 
381      </#list> 
382    </ul> 
383  </div> 
384</div></section> 
385 
386<#-- ===================== PROJECT DEVELOPMENT APPROACH (label hardcoded) ===================== --> 
387<section><div class="w"> 
388  <div class="tag">Project Development Approach</div> 
389  <h2>How we delivered</h2> 
390  <div class="g3"> 
391    <#list approachSteps.getSiblings() as step index=step_index> 
392      <div class="card step"> 
393        <div class="num">${step_index + 1}</div> 
394        <div> 
395          <b>${step.stepTitle.getData()}</b> 
396          <p class="lead" style="margin:4px 0 0">${step.stepDescription.getData()}</p> 
397        </div> 
398      </div> 
399    </#list> 
400  </div> 
401</div></section> 
402 
403<#-- ===================== OUTCOME (label hardcoded) ===================== --> 
404<section class="alt"><div class="w"> 
405  <div class="out"> 
406    <div class="tag" style="color:#e0b76a">Outcome</div> 
407    <div class="path"> 
408      <#list outcomePathSteps.getSiblings() as step> 
409        <span>${step.getData()}</span> 
410      </#list> 
411    </div> 
412    <p class="lead" style="margin:0 auto;color:#c5d2ea">${outcomeDescription.getData()!""}</p> 
413    <h3>${outcomeTagline.getData()!""}</h3> 
414  </div> 
415</div></section> 
416 
417</div>