diff --git a/src/lib/defaultExtractor.js b/src/lib/defaultExtractor.js index 98bc7386baca..170d13cc9da6 100644 --- a/src/lib/defaultExtractor.js +++ b/src/lib/defaultExtractor.js @@ -25,7 +25,7 @@ function* buildRegExps(context) { let utility = regex.any([ // Arbitrary properties - /\[[^\s:'"]+:[^\s\]]+\]/, + /\[[^\s:'"`]+:[^\s\]]+\]/, // Utilities regex.pattern([ @@ -43,7 +43,7 @@ function* buildRegExps(context) { /(?![{([]])/, // optionally followed by an opacity modifier - /(?:\/[^\s'"\\><$]*)?/, + /(?:\/[^\s'"`\\><$]*)?/, ]), regex.pattern([ @@ -54,11 +54,11 @@ function* buildRegExps(context) { /(?![{([]])/, // optionally followed by an opacity modifier - /(?:\/[^\s'"\\$]*)?/, + /(?:\/[^\s'"`\\$]*)?/, ]), // Normal values w/o quotes — may include an opacity modifier - /[-\/][^\s'"\\$={><]*/, + /[-\/][^\s'"`\\$={><]*/, ]) ), ]), @@ -69,8 +69,8 @@ function* buildRegExps(context) { '((?=((', regex.any( [ - regex.pattern([/([^\s"'\[\\]+-)?\[[^\s"'\\]+\]/, separator]), - regex.pattern([/[^\s"'\[\\]+/, separator]), + regex.pattern([/([^\s"'`\[\\]+-)?\[[^\s"'`\\]+\]/, separator]), + regex.pattern([/[^\s"'`\[\\]+/, separator]), ], true ), diff --git a/tests/default-extractor.test.js b/tests/default-extractor.test.js index 4e1792e8e7b9..ea7f90dc69d3 100644 --- a/tests/default-extractor.test.js +++ b/tests/default-extractor.test.js @@ -449,3 +449,12 @@ test('with angle brackets', async () => { expect(extractions).not.toContain('>shadow-xl') expect(extractions).not.toContain('shadow-xl<') }) + +test('markdown code fences', async () => { + const extractions = defaultExtractor('') + + expect(extractions).toContain('font-bold') + expect(extractions).toContain('font-normal') + expect(extractions).not.toContain('.font-bold') + expect(extractions).not.toContain('.font-normal') +})