diff --git a/packages/slidev/node/utils.ts b/packages/slidev/node/utils.ts index 792f21b33f..7570ae7ec6 100644 --- a/packages/slidev/node/utils.ts +++ b/packages/slidev/node/utils.ts @@ -75,7 +75,7 @@ export function generateFontParams(options: ResolvedFontOptions) { .sort() .join(';') const fontParams = options.webfonts - .map(i => `family=${i.replace(RE_QUOTED_STRING, '$1').replace(RE_WHITESPACE, '+')}:${options.italic ? 'ital,' : ''}wght@${weights}`) + .map(i => `family=${i.replace(RE_QUOTED_STRING, '$2').replace(RE_WHITESPACE, '+')}:${options.italic ? 'ital,' : ''}wght@${weights}`) .join('&') return fontParams } diff --git a/test/utils.test.ts b/test/utils.test.ts index 4e6d202db6..bdd373fb5f 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -65,6 +65,16 @@ describe('utils', () => { ).toMatchSnapshot() }) + it('google-fonts with quoted family names', () => { + expect( + generateGoogleFontsUrl({ + webfonts: ['"Helvetica Neue"', '\'PT Serif\''], + weights: ['400'], + provider: 'google', + } as ResolvedFontOptions), + ).toBe('https://fonts.googleapis.com/css2?family=Helvetica+Neue:wght@400&family=PT+Serif:wght@400&display=swap') + }) + it('coollabs-fonts', () => { expect( generateCoollabsFontsUrl({