diff --git a/scripts/lib/docs-utils.js b/scripts/lib/docs-utils.js index 81451eda7..ff4f7c97e 100644 --- a/scripts/lib/docs-utils.js +++ b/scripts/lib/docs-utils.js @@ -80,7 +80,8 @@ function loadMintIgnore(mintignorePath) { const trimmed = line.trim(); if (!trimmed || trimmed.startsWith('#')) continue; if (trimmed.endsWith('/*')) { - ignored.dirs.add(trimmed.slice(1, -2)); + const dir = trimmed.startsWith('/') ? trimmed.slice(1, -2) : trimmed.slice(0, -2); + ignored.dirs.add(dir); } else if (trimmed.startsWith('/')) { ignored.files.add(trimmed.slice(1)); } else { diff --git a/scripts/lib/docs-utils.test.js b/scripts/lib/docs-utils.test.js new file mode 100644 index 000000000..82269a288 --- /dev/null +++ b/scripts/lib/docs-utils.test.js @@ -0,0 +1,22 @@ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const os = require('node:os'); +const path = require('node:path'); +const test = require('node:test'); + +const { loadMintIgnore } = require('./docs-utils'); + +test('loadMintIgnore parses directory patterns with and without leading slash', () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'mintignore-')); + const mintignore = path.join(dir, '.mintignore'); + + try { + fs.writeFileSync(mintignore, ['/foo/*', 'bar/*', 'draft-notes/*'].join('\n')); + + const ignored = loadMintIgnore(mintignore); + + assert.deepEqual([...ignored.dirs].sort(), ['bar', 'draft-notes', 'foo']); + } finally { + fs.rmSync(dir, { recursive: true, force: true }); + } +});