Skip to content

Commit

Permalink
Escape special characters in resolved content base path (#9650)
Browse files Browse the repository at this point in the history
* Refactor

* Escape special characters in the content pattern base path

* Update changelog
  • Loading branch information
thecrypticace committed Oct 24, 2022
1 parent 547f9f6 commit e63c111
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Expand Up @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

- Nothing yet!
### Fixed

- Escape special characters in resolved content base paths ([#9650](https://github.com/tailwindlabs/tailwindcss/pull/9650))

## [3.2.1] - 2022-10-21

Expand Down
15 changes: 8 additions & 7 deletions src/lib/content.js
Expand Up @@ -94,17 +94,18 @@ function parseFilePath(filePath, ignore) {
* @returns {ContentPath}
*/
function resolveGlobPattern(contentPath) {
contentPath.pattern = contentPath.glob
? `${contentPath.base}/${contentPath.glob}`
: contentPath.base

contentPath.pattern = contentPath.ignore ? `!${contentPath.pattern}` : contentPath.pattern

// This is required for Windows support to properly pick up Glob paths.
// Afaik, this technically shouldn't be needed but there's probably
// some internal, direct path matching with a normalized path in
// a package which can't handle mixed directory separators
contentPath.pattern = normalizePath(contentPath.pattern)
let base = normalizePath(contentPath.base)

// If the user's file path contains any special characters (like parens) for instance fast-glob
// is like "OOOH SHINY" and treats them as such. So we have to escape the base path to fix this
base = fastGlob.escapePath(base)

contentPath.pattern = contentPath.glob ? `${base}/${contentPath.glob}` : base
contentPath.pattern = contentPath.ignore ? `!${contentPath.pattern}` : contentPath.pattern

return contentPath
}
Expand Down

0 comments on commit e63c111

Please sign in to comment.