mirror of
https://github.com/priyanshujain/margin.git
synced 2026-10-02 19:17:03 +00:00
changes
This commit is contained in:
1 parent
11df8697b1
commit
c090fb595f
61 files changed
+52534
-107
No files matched your search
+10
-1
@@ -73,6 +73,7 @@ export interface Chapter {
|
||||
updatedAt: number;
|
||||
kind?: ChapterKind;
|
||||
noTitle?: boolean;
|
||||
noMargin?: boolean;
|
||||
}
|
||||
|
||||
export interface PageType {
|
||||
@@ -182,11 +183,19 @@ export function createCover(): Cover {
|
||||
const DEFAULT_METADATA: BookMetadata = { title: "Untitled", subtitle: "", author: "", isbn: "", language: "en" };
|
||||
const DEFAULT_SETTINGS: BookSettings = { trim: "6x9", bleed: true, fonts: DEFAULT_FONTS };
|
||||
|
||||
export const SUPPORTED_LANGUAGES = ["en", "es", "fr", "de", "it", "pt"] as const;
|
||||
|
||||
export function clampLanguage(tag: string): string {
|
||||
const primary = (tag || "").trim().split(/[-_]/)[0]?.toLowerCase() ?? "";
|
||||
return (SUPPORTED_LANGUAGES as readonly string[]).includes(primary) ? primary : "en";
|
||||
}
|
||||
|
||||
export function normalizeBook(book: Book): Book {
|
||||
const chapters = (Array.isArray(book.chapters) ? book.chapters : []).filter(Boolean);
|
||||
const metadata = { ...DEFAULT_METADATA, ...book.metadata };
|
||||
return {
|
||||
...book,
|
||||
metadata: { ...DEFAULT_METADATA, ...book.metadata },
|
||||
metadata: { ...metadata, language: clampLanguage(metadata.language) },
|
||||
settings: { ...DEFAULT_SETTINGS, ...book.settings, fonts: { ...DEFAULT_FONTS, ...book.settings?.fonts } },
|
||||
cover: book.cover ? { ...createCover(), ...book.cover } : createCover(),
|
||||
chapters: (chapters.length ? chapters : [createChapter()]).map((c) =>
|
||||
|
||||
Reference in new issue
Block a user