fix(reader): drop "Chapter N:" prefix from chapter title display (0.51.2)
The chapter list on the manga detail page, the reader's chapter-select
dropdown, the continuous-mode chapter bar, the browser tab title, and
the profile upload-history entries all prepended "Chapter {number}:"
in front of the crawled site title. Source titles already include
"Ch.N" themselves and the manga page renders chapters inside an <ol>,
so the prefix duplicated information the user could already see.
A small chapterLabel(c) helper in $lib/api/chapters returns the site
title as-is, falling back to "Chapter {number}" only when the
crawler captured an empty title (link/option stays non-empty). The
five render sites now call it. The previous-/next-chapter nav
buttons still read "Previous chapter (Ch. N)" / "Next chapter (Ch. N)"
since those are wayfinding labels, not title display.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,8 @@ import {
|
||||
listChapters,
|
||||
getChapter,
|
||||
getChapterPages,
|
||||
createChapter
|
||||
createChapter,
|
||||
chapterLabel
|
||||
} from './chapters';
|
||||
|
||||
function ok(body: unknown): Response {
|
||||
@@ -129,6 +130,18 @@ describe('chapters api client', () => {
|
||||
}
|
||||
});
|
||||
|
||||
describe('chapterLabel', () => {
|
||||
it('returns the site title verbatim when present', () => {
|
||||
expect(chapterLabel({ number: 7, title: 'Ch.7 : Official' })).toBe(
|
||||
'Ch.7 : Official'
|
||||
);
|
||||
});
|
||||
|
||||
it('falls back to "Chapter {number}" when title is null', () => {
|
||||
expect(chapterLabel({ number: 3, title: null })).toBe('Chapter 3');
|
||||
});
|
||||
});
|
||||
|
||||
it('getChapterPages unwraps the {pages} envelope into the array', async () => {
|
||||
fetchSpy.mockResolvedValueOnce(
|
||||
ok({
|
||||
|
||||
@@ -14,6 +14,10 @@ export type ChaptersPage = {
|
||||
page: Page;
|
||||
};
|
||||
|
||||
export function chapterLabel(c: Pick<Chapter, 'number' | 'title'>): string {
|
||||
return c.title ?? `Chapter ${c.number}`;
|
||||
}
|
||||
|
||||
export type ListOptions = {
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
|
||||
Reference in New Issue
Block a user