diff --git a/build.js b/build.js index a067eb4bc8..e42b171059 100644 --- a/build.js +++ b/build.js @@ -148,7 +148,9 @@ Metalsmith(__dirname) partialName: 'shader-editor-navigation' })) .use(tutorials('tutorials')()) - .use(layouts()) + .use(layouts({ + pattern: '**/*.html' + })) .use(locale()()) .use(i18nout()({ data: localization diff --git a/lib/i18n/index.js b/lib/i18n/index.js index e7c1f52aa5..0ee2956109 100644 --- a/lib/i18n/index.js +++ b/lib/i18n/index.js @@ -47,12 +47,7 @@ module.exports = function makePlugin() { return function (files, metalsmith, done) { for (const filename in files) { - // add locale metadata to files - - // Ensure Windows paths are converted to forward slashes as necessary - const filenameForwardSlashes = filename.replace(/\\/g, "/"); - - const locale = filenameForwardSlashes.split("/")[0]; + const locale = filename.split(path.sep)[0]; files[filename].locale = locale; // locale: 'en' files[filename][locale] = true; // 'en': true } diff --git a/lib/tutorials/index.js b/lib/tutorials/index.js index b5bd40234a..e0dad1087e 100644 --- a/lib/tutorials/index.js +++ b/lib/tutorials/index.js @@ -204,7 +204,11 @@ module.exports = function makePlugin(dir) { contents: Buffer.from(taggedProjectTemplate(project)) }; - files[file.path + '/index.html'] = file; + // change path separators to OS specific + let fileKey = file.path + '/index.html'; + fileKey = fileKey.split('/').join(path.sep); + + files[fileKey] = file; } } diff --git a/package-lock.json b/package-lock.json index 594acab4c3..a238b8ed2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.17.0", "license": "MIT", "devDependencies": { - "@metalsmith/layouts": "2.4.0", + "@metalsmith/layouts": "^2.6.0", "@metalsmith/markdown": "^1.9.0", "@metalsmith/permalinks": "2.4.1", "@playcanvas/eslint-config": "^1.3.0", @@ -216,19 +216,21 @@ "dev": true }, "node_modules/@metalsmith/layouts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@metalsmith/layouts/-/layouts-2.4.0.tgz", - "integrity": "sha512-eVaDNVyH2CoLh/SYRvIWvh3HwcE9z+lc0DhM0iRe6FUmcqFDiTJsmk1aR3jWtMy5RvskPEwz44s+Uk8AirCC6Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@metalsmith/layouts/-/layouts-2.6.0.tgz", + "integrity": "sha512-aJ/gCBI9gVGGDr80UTQL6qdhys6xHwB3YbohtZwmfUnScsdddLkjNawhgidapyNrUf56qyb6DdwqqkHDsh7SRA==", "dev": true, "dependencies": { - "debug": "^4.3.3", + "debug": "^4.3.4", "inputformat-to-jstransformer": "^1.4.0", "is-utf8": "^0.2.1", - "jstransformer": "^1.0.0", - "multimatch": "^4.0.0" + "jstransformer": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" }, "peerDependencies": { - "metalsmith": "^2.3.0" + "metalsmith": "^2.4.1" } }, "node_modules/@metalsmith/markdown": { @@ -336,12 +338,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, "node_modules/@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -529,15 +525,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -557,15 +544,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -3328,31 +3306,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -5308,16 +5261,15 @@ "dev": true }, "@metalsmith/layouts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@metalsmith/layouts/-/layouts-2.4.0.tgz", - "integrity": "sha512-eVaDNVyH2CoLh/SYRvIWvh3HwcE9z+lc0DhM0iRe6FUmcqFDiTJsmk1aR3jWtMy5RvskPEwz44s+Uk8AirCC6Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@metalsmith/layouts/-/layouts-2.6.0.tgz", + "integrity": "sha512-aJ/gCBI9gVGGDr80UTQL6qdhys6xHwB3YbohtZwmfUnScsdddLkjNawhgidapyNrUf56qyb6DdwqqkHDsh7SRA==", "dev": true, "requires": { - "debug": "^4.3.3", + "debug": "^4.3.4", "inputformat-to-jstransformer": "^1.4.0", "is-utf8": "^0.2.1", - "jstransformer": "^1.0.0", - "multimatch": "^4.0.0" + "jstransformer": "^1.0.0" } }, "@metalsmith/markdown": { @@ -5395,12 +5347,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, "@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -5540,12 +5486,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, "array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -5559,12 +5499,6 @@ "is-string": "^1.0.7" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -7597,27 +7531,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", diff --git a/package.json b/package.json index f4d61a8d86..b4c279d266 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ } }, "devDependencies": { - "@metalsmith/layouts": "2.4.0", + "@metalsmith/layouts": "^2.6.0", "@metalsmith/markdown": "^1.9.0", "@metalsmith/permalinks": "2.4.1", "@playcanvas/eslint-config": "^1.3.0",