// Reading-Time-Estimator. Englisch/Deutsch, ~200 WPM.
// Tokenisiert auf Wortgrenzen, ignoriert Code/Markdown-Sonderzeichen.

export function estimateReadingTime(text: string, locale: "de" | "en" = "de"): { minutes: number; words: number } {
  const stripped = text
    .replace(/```[\s\S]*?```/g, " ")        // Code-Blöcke
    .replace(/`[^`]*`/g, " ")               // Inline-Code
    .replace(/!\[[^\]]*\]\([^)]*\)/g, " ") // Bilder
    .replace(/\[([^\]]*)\]\([^)]*\)/g, "$1") // Markdown-Links: nur Text behalten
    .replace(/[#>*_~`]/g, " ");            // Markdown-Steuerzeichen

  const words = stripped.split(/\s+/).filter(Boolean).length;
  // Deutsch spricht man etwas langsamer (~180 WPM), Englisch schneller (~220)
  const wpm = locale === "de" ? 180 : 220;
  const minutes = Math.max(1, Math.round(words / wpm));
  return { minutes, words };
}
