Reduce CTA density across agency pages

This commit is contained in:
2026-03-31 04:03:23 +02:00
parent 4ffe6adf0a
commit a9ab4a9518

View File

@@ -3729,6 +3729,71 @@ def _footer_stream_data(
return footer, [block("text", cfg["mini"])]
INLINE_LINK_TEXT = {
"process": {
"nl": "Bekijk hoe dit werkt",
"en": "See how this works",
"de": "So läuft der Ablauf",
"fr": "Voir comment cela fonctionne",
"es": "Vea cómo funciona",
"it": "Veda come funziona",
"pt": "Veja como funciona",
"ru": "Посмотреть, как это работает",
},
"services": {
"nl": "Bekijk onze diensten",
"en": "View our services",
"de": "Unsere Leistungen ansehen",
"fr": "Voir nos services",
"es": "Ver nuestros servicios",
"it": "Vedere i nostri servizi",
"pt": "Ver os nossos serviços",
"ru": "Посмотреть услуги",
},
}
CHOOSE_CARD_TITLES = {
"nl": ["Goede match", "Wat dit praktisch betekent", "Eerst de werkwijze zien"],
"en": ["Good fit", "What this means in practice", "See the process first"],
"de": ["Gute Wahl", "Was das praktisch bedeutet", "Erst den Ablauf sehen"],
"fr": ["Bon choix", "Ce que cela signifie concrètement", "Voir d'abord la méthode"],
"es": ["Buena opción", "Qué significa en la práctica", "Ver primero el proceso"],
"it": ["Scelta adatta", "Cosa significa in pratica", "Vedere prima il metodo"],
"pt": ["Boa escolha", "O que isto significa na prática", "Ver primeiro o método"],
"ru": ["Подходит вам", "Что это означает на практике", "Сначала посмотреть процесс"],
}
def _inline_link_text(locale: str, key: str) -> str:
return INLINE_LINK_TEXT[key][locale]
def _choose_cards(locale: str, items: list[str], process_url: str) -> list[dict[str, Any]]:
titles = CHOOSE_CARD_TITLES[locale]
cards: list[dict[str, Any]] = []
for index, body in enumerate(items):
description = body
if index == len(items) - 1:
description = (
f'{body} <a href="{process_url}">{_inline_link_text(locale, "process")}</a>.'
)
cards.append(
item(
{
"icon": "arrow-right-circle",
"icon_image": None,
"title": titles[min(index, len(titles) - 1)],
"description": description,
"link_text": "",
"link_url": "",
"highlight": "none",
}
)
)
return cards
def _home_body(
locale: str, urls: dict[str, str], page_title_map: dict[str, dict[str, str]]
) -> list[dict[str, Any]]:
@@ -3747,8 +3812,8 @@ def _home_body(
"sub_headline": cfg["sub"],
"primary_cta_text": cta["primary"],
"primary_cta_url": urls["contact"],
"secondary_cta_text": cta["secondary"],
"secondary_cta_url": urls["services"],
"secondary_cta_text": "",
"secondary_cta_url": "",
"hero_image": 1,
"video_url": "",
"stats": [
@@ -3773,7 +3838,7 @@ def _home_body(
"icon_image": None,
"title": title,
"description": desc,
"link_text": link_text or cta["secondary"],
"link_text": link_text or _inline_link_text(locale, "process"),
"link_url": urls[link_key],
"highlight": highlight,
}
@@ -3785,43 +3850,6 @@ def _home_body(
"columns": "2",
},
),
block(
"saas_pricing",
{
"layout_width": "container",
"background_style": "light",
"layout": "cards",
"section_title": cfg["pricing_title"],
"section_subtitle": cfg["pricing_sub"],
"show_annual_toggle": False,
"annual_discount_text": "",
"tiers": [
item(
{
"name": page_title_map[key][locale],
"description": desc,
"price_monthly": None,
"price_annual": None,
"price_suffix": "",
"custom_price_text": "Op offertebasis"
if locale == "nl"
else "Custom quote",
"features": [
item({"text": text, "included": True, "tooltip": ""})
for text in features
],
"cta_text": cta["primary"],
"cta_url": urls["contact"],
"cta_style": "primary" if featured else "secondary",
"is_featured": featured,
"featured_label": label,
}
)
for key, (desc, features, featured, label) in cfg["tiers"].items()
],
"footer_text": cfg["pricing_footer"],
},
),
block(
"saas_testimonials",
{
@@ -3860,9 +3888,9 @@ def _home_body(
item({"question": question, "answer": answer, "category": category})
for question, answer, category in cfg["faqs"]
],
"show_contact_cta": "card",
"contact_cta_text": cta["primary"],
"contact_cta_url": urls["contact"],
"show_contact_cta": "simple",
"contact_cta_text": cta["secondary"],
"contact_cta_url": urls["services"],
},
),
block(
@@ -3875,8 +3903,8 @@ def _home_body(
"subheadline": cfg["cta_sub"],
"primary_cta_text": cta["primary"],
"primary_cta_url": urls["contact"],
"secondary_cta_text": cta["secondary"],
"secondary_cta_url": urls["services"],
"secondary_cta_text": "",
"secondary_cta_url": "",
"background_image": 1,
"side_image": 1,
"show_no_credit_card": "with-icon",
@@ -3923,8 +3951,8 @@ def _standard_body(
"sub_headline": cfg["sub"],
"primary_cta_text": cta["primary"],
"primary_cta_url": urls["contact"],
"secondary_cta_text": cta["secondary"],
"secondary_cta_url": urls["services"],
"secondary_cta_text": "",
"secondary_cta_url": "",
"hero_image": 1 if page_key != "process" else 24,
"video_url": "",
"stats": [],
@@ -3946,12 +3974,8 @@ def _standard_body(
"icon_image": None,
"title": title,
"description": desc,
"link_text": cta["primary"]
if page_key in {"contact", "about"}
else cta["secondary"],
"link_url": urls["contact"]
if page_key in {"contact", "about"}
else urls["services"],
"link_text": _inline_link_text(locale, "process"),
"link_url": urls["process"],
"highlight": "none",
}
)
@@ -4038,9 +4062,9 @@ def _standard_body(
item({"question": q, "answer": a, "category": c})
for q, a, c in common["faq_items"]
],
"show_contact_cta": "card",
"contact_cta_text": cta["primary"],
"contact_cta_url": urls["contact"],
"show_contact_cta": "none",
"contact_cta_text": "",
"contact_cta_url": "",
},
)
)
@@ -4055,8 +4079,8 @@ def _standard_body(
"subheadline": common["cta_sub"],
"primary_cta_text": cta["primary"],
"primary_cta_url": urls["contact"],
"secondary_cta_text": cta["secondary"],
"secondary_cta_url": urls["services"],
"secondary_cta_text": "",
"secondary_cta_url": "",
"background_image": 1,
"side_image": 1,
"show_no_credit_card": "with-icon",
@@ -4098,8 +4122,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
"sub_headline": f"<p>{cfg['audience']}</p>",
"primary_cta_text": cta["primary"],
"primary_cta_url": urls["contact"],
"secondary_cta_text": cta["secondary"],
"secondary_cta_url": urls["services"],
"secondary_cta_text": "",
"secondary_cta_url": "",
"hero_image": 23,
"video_url": "",
"stats": [
@@ -4161,8 +4185,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
"icon_image": None,
"title": title,
"description": desc,
"link_text": cta["secondary"],
"link_url": urls["services"],
"link_text": _inline_link_text(locale, "process"),
"link_url": urls["process"],
"highlight": "none",
}
)
@@ -4186,8 +4210,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
"icon_image": None,
"title": title,
"description": desc,
"link_text": cta["primary"],
"link_url": urls["contact"],
"link_text": "",
"link_url": "",
"highlight": "none",
}
)
@@ -4197,53 +4221,15 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
},
),
block(
"saas_demo_request",
"saas_features",
{
"layout_width": "container",
"background_style": "light",
"layout": "split",
"layout": "grid",
"section_title": common["section_choose"],
"section_subtitle": common["section_choose_sub"],
"form_fields": [
item(
{
"field_type": "text",
"label": common["name_label"],
"placeholder": common["name_placeholder"],
"required": True,
}
),
item(
{
"field_type": "email",
"label": common["email_label"],
"placeholder": common["email_placeholder"],
"required": True,
}
),
item(
{
"field_type": "company",
"label": common["company_label"],
"placeholder": common["company_placeholder"],
"required": True,
}
),
item(
{
"field_type": "message",
"label": common["message_label"],
"placeholder": common["message_placeholder"],
"required": False,
}
),
],
"submit_button_text": cta["primary"],
"form_action_url": urls["contact"],
"benefits_title": common["choose_title"],
"benefits": [item(text) for text in cfg["choose"]],
"side_image": 23,
"privacy_text": common["privacy"],
"features": _choose_cards(locale, cfg["choose"], urls["process"]),
"columns": "3",
},
),
block(
@@ -4256,8 +4242,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
"subheadline": common["cta_sub"],
"primary_cta_text": cta["primary"],
"primary_cta_url": urls["contact"],
"secondary_cta_text": cta["secondary"],
"secondary_cta_url": urls["services"],
"secondary_cta_text": "",
"secondary_cta_url": "",
"background_image": 1,
"side_image": 1,
"show_no_credit_card": "with-icon",