diff --git a/abogen/web/conversion_runner.py b/abogen/web/conversion_runner.py index 97e0100..3d21459 100644 --- a/abogen/web/conversion_runner.py +++ b/abogen/web/conversion_runner.py @@ -99,7 +99,10 @@ def _format_spoken_chapter_title(title: str, index: int, apply_prefix: bool) -> if match: number = match.group("number") or "" suffix = match.group("suffix") or "" - return f"Chapter {number}{suffix}" + cleaned_suffix = suffix.lstrip(" .,:;-_\t\u2013\u2014\u00b7\u2022") + if cleaned_suffix: + return f"Chapter {number}. {cleaned_suffix}" + return f"Chapter {number}" return base diff --git a/abogen/web/static/styles.css b/abogen/web/static/styles.css index c434357..2f6119e 100644 --- a/abogen/web/static/styles.css +++ b/abogen/web/static/styles.css @@ -1517,6 +1517,32 @@ button.step-indicator__item:focus-visible { grid-column: 1 / -1; } +.settings__section .field { + align-items: flex-start; +} + +.settings__section .field input, +.settings__section .field select, +.settings__section .field textarea { + max-width: 100%; +} + +.settings__section .field input[type="text"], +.settings__section .field input[type="file"], +.settings__section .field select { + max-width: 100%; +} + +.settings__section .field--wide { + grid-column: 1 / -1; +} + +.settings__section .field--wide input, +.settings__section .field--wide select, +.settings__section .field--wide textarea { + max-width: 100%; +} + .field--choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); diff --git a/abogen/web/templates/reader_embed.html b/abogen/web/templates/reader_embed.html index 1c4090d..2bee49c 100644 --- a/abogen/web/templates/reader_embed.html +++ b/abogen/web/templates/reader_embed.html @@ -1111,8 +1111,7 @@ } } if (titleEl) { - const chapter = chapters[currentChapterIndex]; - titleEl.textContent = chapter?.title ? `${chapter.title} ยท ${baseTitle}` : baseTitle; + titleEl.textContent = baseTitle; } if (chapterPanelToggleBtn) { chapterPanelToggleBtn.disabled = !hasChapters; diff --git a/abogen/web/templates/settings.html b/abogen/web/templates/settings.html index 6d25823..46f56e6 100644 --- a/abogen/web/templates/settings.html +++ b/abogen/web/templates/settings.html @@ -36,7 +36,7 @@

Speakers detected fewer times fall back to the narrator voice.

-
+

Include {{ '{{name}}' }} where the speaker name should be inserted.

@@ -48,7 +48,7 @@

Disable if you prefer to skip entity extraction in the job wizard.

-
+
{% set selected_languages = settings.speaker_random_languages or [] %}