diff --git a/packages/core/src/extractors/split.ts b/packages/core/src/extractors/split.ts index 597d80866e..dd4877e6d7 100644 --- a/packages/core/src/extractors/split.ts +++ b/packages/core/src/extractors/split.ts @@ -1,7 +1,7 @@ import type { Extractor } from '../types' import { isValidSelector } from '../utils' -export const splitCode = (code: string) => code.split(/[\s'"`;=]+/g).filter(isValidSelector) +export const splitCode = (code: string) => code.split(/\\?[\s'"`;=]+/g).filter(isValidSelector) export const extractorSplit: Extractor = { name: 'split', diff --git a/test/extractor.test.ts b/test/extractor.test.ts new file mode 100644 index 0000000000..3e5e70809c --- /dev/null +++ b/test/extractor.test.ts @@ -0,0 +1,21 @@ +import { extractorSplit } from '@unocss/core' +import { expect, it } from 'vitest' + +it('extractorSplit', async () => { + let code = '' + async function extract() { + return [...await extractorSplit.extract({ code, original: code }) || []] + } + + code = 'foo' + expect(await extract()).eql(['foo']) + + code = '
foo
' + expect(await extract()).toContain('text-red') + + code = '
foo
' + expect(await extract()).toContain('