Reduce CTA density across agency pages
This commit is contained in:
@@ -3729,6 +3729,71 @@ def _footer_stream_data(
|
|||||||
return footer, [block("text", cfg["mini"])]
|
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(
|
def _home_body(
|
||||||
locale: str, urls: dict[str, str], page_title_map: dict[str, dict[str, str]]
|
locale: str, urls: dict[str, str], page_title_map: dict[str, dict[str, str]]
|
||||||
) -> list[dict[str, Any]]:
|
) -> list[dict[str, Any]]:
|
||||||
@@ -3747,8 +3812,8 @@ def _home_body(
|
|||||||
"sub_headline": cfg["sub"],
|
"sub_headline": cfg["sub"],
|
||||||
"primary_cta_text": cta["primary"],
|
"primary_cta_text": cta["primary"],
|
||||||
"primary_cta_url": urls["contact"],
|
"primary_cta_url": urls["contact"],
|
||||||
"secondary_cta_text": cta["secondary"],
|
"secondary_cta_text": "",
|
||||||
"secondary_cta_url": urls["services"],
|
"secondary_cta_url": "",
|
||||||
"hero_image": 1,
|
"hero_image": 1,
|
||||||
"video_url": "",
|
"video_url": "",
|
||||||
"stats": [
|
"stats": [
|
||||||
@@ -3773,7 +3838,7 @@ def _home_body(
|
|||||||
"icon_image": None,
|
"icon_image": None,
|
||||||
"title": title,
|
"title": title,
|
||||||
"description": desc,
|
"description": desc,
|
||||||
"link_text": link_text or cta["secondary"],
|
"link_text": link_text or _inline_link_text(locale, "process"),
|
||||||
"link_url": urls[link_key],
|
"link_url": urls[link_key],
|
||||||
"highlight": highlight,
|
"highlight": highlight,
|
||||||
}
|
}
|
||||||
@@ -3785,43 +3850,6 @@ def _home_body(
|
|||||||
"columns": "2",
|
"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(
|
block(
|
||||||
"saas_testimonials",
|
"saas_testimonials",
|
||||||
{
|
{
|
||||||
@@ -3860,9 +3888,9 @@ def _home_body(
|
|||||||
item({"question": question, "answer": answer, "category": category})
|
item({"question": question, "answer": answer, "category": category})
|
||||||
for question, answer, category in cfg["faqs"]
|
for question, answer, category in cfg["faqs"]
|
||||||
],
|
],
|
||||||
"show_contact_cta": "card",
|
"show_contact_cta": "simple",
|
||||||
"contact_cta_text": cta["primary"],
|
"contact_cta_text": cta["secondary"],
|
||||||
"contact_cta_url": urls["contact"],
|
"contact_cta_url": urls["services"],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
block(
|
block(
|
||||||
@@ -3875,8 +3903,8 @@ def _home_body(
|
|||||||
"subheadline": cfg["cta_sub"],
|
"subheadline": cfg["cta_sub"],
|
||||||
"primary_cta_text": cta["primary"],
|
"primary_cta_text": cta["primary"],
|
||||||
"primary_cta_url": urls["contact"],
|
"primary_cta_url": urls["contact"],
|
||||||
"secondary_cta_text": cta["secondary"],
|
"secondary_cta_text": "",
|
||||||
"secondary_cta_url": urls["services"],
|
"secondary_cta_url": "",
|
||||||
"background_image": 1,
|
"background_image": 1,
|
||||||
"side_image": 1,
|
"side_image": 1,
|
||||||
"show_no_credit_card": "with-icon",
|
"show_no_credit_card": "with-icon",
|
||||||
@@ -3923,8 +3951,8 @@ def _standard_body(
|
|||||||
"sub_headline": cfg["sub"],
|
"sub_headline": cfg["sub"],
|
||||||
"primary_cta_text": cta["primary"],
|
"primary_cta_text": cta["primary"],
|
||||||
"primary_cta_url": urls["contact"],
|
"primary_cta_url": urls["contact"],
|
||||||
"secondary_cta_text": cta["secondary"],
|
"secondary_cta_text": "",
|
||||||
"secondary_cta_url": urls["services"],
|
"secondary_cta_url": "",
|
||||||
"hero_image": 1 if page_key != "process" else 24,
|
"hero_image": 1 if page_key != "process" else 24,
|
||||||
"video_url": "",
|
"video_url": "",
|
||||||
"stats": [],
|
"stats": [],
|
||||||
@@ -3946,12 +3974,8 @@ def _standard_body(
|
|||||||
"icon_image": None,
|
"icon_image": None,
|
||||||
"title": title,
|
"title": title,
|
||||||
"description": desc,
|
"description": desc,
|
||||||
"link_text": cta["primary"]
|
"link_text": _inline_link_text(locale, "process"),
|
||||||
if page_key in {"contact", "about"}
|
"link_url": urls["process"],
|
||||||
else cta["secondary"],
|
|
||||||
"link_url": urls["contact"]
|
|
||||||
if page_key in {"contact", "about"}
|
|
||||||
else urls["services"],
|
|
||||||
"highlight": "none",
|
"highlight": "none",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -4038,9 +4062,9 @@ def _standard_body(
|
|||||||
item({"question": q, "answer": a, "category": c})
|
item({"question": q, "answer": a, "category": c})
|
||||||
for q, a, c in common["faq_items"]
|
for q, a, c in common["faq_items"]
|
||||||
],
|
],
|
||||||
"show_contact_cta": "card",
|
"show_contact_cta": "none",
|
||||||
"contact_cta_text": cta["primary"],
|
"contact_cta_text": "",
|
||||||
"contact_cta_url": urls["contact"],
|
"contact_cta_url": "",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -4055,8 +4079,8 @@ def _standard_body(
|
|||||||
"subheadline": common["cta_sub"],
|
"subheadline": common["cta_sub"],
|
||||||
"primary_cta_text": cta["primary"],
|
"primary_cta_text": cta["primary"],
|
||||||
"primary_cta_url": urls["contact"],
|
"primary_cta_url": urls["contact"],
|
||||||
"secondary_cta_text": cta["secondary"],
|
"secondary_cta_text": "",
|
||||||
"secondary_cta_url": urls["services"],
|
"secondary_cta_url": "",
|
||||||
"background_image": 1,
|
"background_image": 1,
|
||||||
"side_image": 1,
|
"side_image": 1,
|
||||||
"show_no_credit_card": "with-icon",
|
"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>",
|
"sub_headline": f"<p>{cfg['audience']}</p>",
|
||||||
"primary_cta_text": cta["primary"],
|
"primary_cta_text": cta["primary"],
|
||||||
"primary_cta_url": urls["contact"],
|
"primary_cta_url": urls["contact"],
|
||||||
"secondary_cta_text": cta["secondary"],
|
"secondary_cta_text": "",
|
||||||
"secondary_cta_url": urls["services"],
|
"secondary_cta_url": "",
|
||||||
"hero_image": 23,
|
"hero_image": 23,
|
||||||
"video_url": "",
|
"video_url": "",
|
||||||
"stats": [
|
"stats": [
|
||||||
@@ -4161,8 +4185,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
|
|||||||
"icon_image": None,
|
"icon_image": None,
|
||||||
"title": title,
|
"title": title,
|
||||||
"description": desc,
|
"description": desc,
|
||||||
"link_text": cta["secondary"],
|
"link_text": _inline_link_text(locale, "process"),
|
||||||
"link_url": urls["services"],
|
"link_url": urls["process"],
|
||||||
"highlight": "none",
|
"highlight": "none",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -4186,8 +4210,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
|
|||||||
"icon_image": None,
|
"icon_image": None,
|
||||||
"title": title,
|
"title": title,
|
||||||
"description": desc,
|
"description": desc,
|
||||||
"link_text": cta["primary"],
|
"link_text": "",
|
||||||
"link_url": urls["contact"],
|
"link_url": "",
|
||||||
"highlight": "none",
|
"highlight": "none",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -4197,53 +4221,15 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
block(
|
block(
|
||||||
"saas_demo_request",
|
"saas_features",
|
||||||
{
|
{
|
||||||
"layout_width": "container",
|
"layout_width": "container",
|
||||||
"background_style": "light",
|
"background_style": "light",
|
||||||
"layout": "split",
|
"layout": "grid",
|
||||||
"section_title": common["section_choose"],
|
"section_title": common["section_choose"],
|
||||||
"section_subtitle": common["section_choose_sub"],
|
"section_subtitle": common["section_choose_sub"],
|
||||||
"form_fields": [
|
"features": _choose_cards(locale, cfg["choose"], urls["process"]),
|
||||||
item(
|
"columns": "3",
|
||||||
{
|
|
||||||
"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"],
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
block(
|
block(
|
||||||
@@ -4256,8 +4242,8 @@ def _service_body(locale: str, kind: str, urls: dict[str, str]) -> list[dict[str
|
|||||||
"subheadline": common["cta_sub"],
|
"subheadline": common["cta_sub"],
|
||||||
"primary_cta_text": cta["primary"],
|
"primary_cta_text": cta["primary"],
|
||||||
"primary_cta_url": urls["contact"],
|
"primary_cta_url": urls["contact"],
|
||||||
"secondary_cta_text": cta["secondary"],
|
"secondary_cta_text": "",
|
||||||
"secondary_cta_url": urls["services"],
|
"secondary_cta_url": "",
|
||||||
"background_image": 1,
|
"background_image": 1,
|
||||||
"side_image": 1,
|
"side_image": 1,
|
||||||
"show_no_credit_card": "with-icon",
|
"show_no_credit_card": "with-icon",
|
||||||
|
|||||||
Reference in New Issue
Block a user