
from __future__ import annotations
import re
from shared.utils import normalize_text
from shared.config import config

def clean_title(t: str) -> str:
    t = normalize_text(t)
    t = re.sub(r":\s*$", "", t)
    return t

def is_blacklisted_heading(title: str) -> bool:
    """Return True if heading should be skipped based on config blacklist."""
    bl = (config().get("blacklist") or {}).get("product-details") or []
    low = (title or "").strip().lower()
    return any(low == (s or "").strip().lower() for s in bl)
