From ea9146be5b836c6676f009d1561811f61a2fa9ae Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sat, 23 Aug 2025 16:27:58 +0800 Subject: [PATCH] fonts: parse font family as well as font style when importing fonts, closes #1876 (#1881) --- .../components/settings/CustomFonts.tsx | 13 ++-- apps/readest-app/src/store/customFontStore.ts | 31 +++++----- apps/readest-app/src/styles/fonts.ts | 6 +- apps/readest-app/src/utils/font.ts | 59 +++++++++++++------ 4 files changed, 69 insertions(+), 40 deletions(-) diff --git a/apps/readest-app/src/app/reader/components/settings/CustomFonts.tsx b/apps/readest-app/src/app/reader/components/settings/CustomFonts.tsx index 5cb9d500..e9b02e26 100644 --- a/apps/readest-app/src/app/reader/components/settings/CustomFonts.tsx +++ b/apps/readest-app/src/app/reader/components/settings/CustomFonts.tsx @@ -8,7 +8,7 @@ import { useTranslation } from '@/hooks/useTranslation'; import { useCustomFontStore } from '@/store/customFontStore'; import { FILE_SELECTION_PRESETS, useFileSelector } from '@/hooks/useFileSelector'; import { mountCustomFont } from '@/styles/fonts'; -import { parseFontFamily } from '@/utils/font'; +import { parseFontName } from '@/utils/font'; import { getFilename } from '@/utils/path'; import { saveViewSettings } from '../../utils/viewSettingsHelper'; @@ -62,9 +62,11 @@ const CustomFonts: React.FC = ({ bookKey, onBack }) => { } else { continue; } - const fontFamily = parseFontFamily(await fontFile.arrayBuffer(), fontPath); + const fontName = parseFontName(await fontFile.arrayBuffer(), fontPath); const customFont = addFont(fontPath, { - name: fontFamily, + name: fontName.name, + family: fontName.family, + style: fontName.style, }); if (customFont && !customFont.error) { const loadedFont = await loadFont(envConfig, customFont.id); @@ -148,7 +150,7 @@ const CustomFonts: React.FC = ({ bookKey, onBack }) => {
-
+
{_('Import Font')}
@@ -165,6 +167,7 @@ const CustomFonts: React.FC = ({ bookKey, onBack }) => { : 'border-base-200 bg-base-200 cursor-pointer', )} onClick={() => handleSelectFont(font.id)} + title={font.name} >
= ({ bookKey, onBack }) => { }} className='text-base-content line-clamp-1' > - {font.name} + {font.family || font.name}
{isDeleteMode && (