diff --git a/assets/images/octicons/search-16.svg b/assets/images/octicons/search-16.svg
new file mode 100644
index 000000000000..5af5bc25cb63
--- /dev/null
+++ b/assets/images/octicons/search-16.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/images/octicons/search-24.svg b/assets/images/octicons/search-24.svg
new file mode 100644
index 000000000000..71117691d51e
--- /dev/null
+++ b/assets/images/octicons/search-24.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/script/find-orphaned-assets.mjs b/script/find-orphaned-assets.mjs
index ad5d534e91a5..ba7dec30026b 100755
--- a/script/find-orphaned-assets.mjs
+++ b/script/find-orphaned-assets.mjs
@@ -12,6 +12,13 @@ import path from 'path'
import program from 'commander'
import walk from 'walk-sync'
+const EXCEPTIONS = new Set([
+ // These files are dynamically referenced in Search.tsx
+ // so they're referred to as `... search-${iconSize}.svg`
+ 'assets/images/octicons/search-16.svg',
+ 'assets/images/octicons/search-24.svg',
+])
+
program
.description('Print all images that are in ./assets/ but not found in any markdown')
.option('-e, --exit', 'Exit script by count of orphans (useful for CI)')
@@ -80,7 +87,7 @@ async function main(opts) {
const content = fs.readFileSync(markdownFile, 'utf-8')
for (const imagePath of allImages) {
const needle = imagePath.split(path.sep).slice(-2).join('/')
- if (content.includes(needle)) {
+ if (content.includes(needle) || EXCEPTIONS.has(imagePath)) {
allImages.delete(imagePath)
}
}