import re
def excerpt(source, limit=260):
    text = re.sub(r"!\[[^\]]*\]\([^)]*\)", " ", source)
    text = re.sub(r"\[\[(?:(\d+)\|([^\]]+)|([^\]|]+?)(?:\|[a-z0-9-]+)?)\]\]",
                  lambda m: (m.group(2) or m.group(3) or "").strip(), text)
    text = re.sub(r"\[([^\]]*)\]\([^)]*\)", r"\1", text)
    text = re.sub(r"^\s{0,3}#{1,6}\s*", "", text, flags=re.M)
    text = re.sub(r"[*_`>|]|^\s*[-+]\s", " ", text, flags=re.M)
    text = re.sub(r"\s+", " ", text).strip()
    return text[:limit].rstrip() + "…" if len(text) > limit else text

print(excerpt("Peanut allergy prevention by [[288|eczema]] risk tier and [[143|anaphylaxis]] treatment."))
print(excerpt("See [[Febrile seizures|febrile-seizures]] and [[croup]]."))
