From da90c6b7c9d31a6b140eaef8393c18dfa4f92a5b Mon Sep 17 00:00:00 2001 From: Iha Shin Date: Fri, 5 Aug 2022 00:04:44 +0900 Subject: [PATCH] feat(extractor): split backslash (#1371) Co-authored-by: Anthony Fu --- packages/core/src/extractors/split.ts | 2 +- test/extractor.test.ts | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/extractor.test.ts 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('