diff --git a/.gitignore b/.gitignore index 5e9d599ef29ba..f9636319c0ef2 100644 --- a/.gitignore +++ b/.gitignore @@ -95,3 +95,7 @@ public/page-data tsconfig.tsbuildinfo public/mdx-images/* + +# yalc +.yalc +yalc.lock diff --git a/package.json b/package.json index 1886cce85c2cc..8d996e058cf2b 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@radix-ui/react-tabs": "^1.0.4", "@radix-ui/react-toolbar": "^1.0.4", "@radix-ui/themes": "^2.0.3", - "@sentry-internal/global-search": "^1.0.0", + "@sentry-internal/global-search": "^1.1.0", "@sentry/nextjs": "8.20.0", "@types/mdx": "^2.0.9", "algoliasearch": "^4.23.3", @@ -136,4 +136,4 @@ "node": "20.11.0", "yarn": "1.22.21" } -} +} \ No newline at end of file diff --git a/scripts/algolia.ts b/scripts/algolia.ts index 0558b11fd41a2..ae1a2c5d52d60 100644 --- a/scripts/algolia.ts +++ b/scripts/algolia.ts @@ -23,7 +23,12 @@ import fs from 'fs'; import {join} from 'path'; -import {extrapolate, htmlToAlgoliaRecord} from '@sentry-internal/global-search'; +import { + extrapolate, + htmlToAlgoliaRecord, + sentryAlgoliaIndexSettings, + standardSDKSlug, +} from '@sentry-internal/global-search'; import algoliasearch, {SearchIndex} from 'algoliasearch'; import {isDeveloperDocs} from 'sentry-docs/isDeveloperDocs'; @@ -90,6 +95,12 @@ async function indexAndUpload() { deleteResult.objectIDs.length, DOCS_INDEX_NAME ); + + if (!isDeveloperDocs) { + console.log('🔥 Applying custom index settings ...'); + await index.setSettings(sentryAlgoliaIndexSettings); + console.log(`🔥 Applied custom settings to ${DOCS_INDEX_NAME}`); + } } async function fetchExistingRecordIds(algoliaIndex: SearchIndex) { @@ -121,6 +132,17 @@ async function generateAlogliaRecords(pageFrontMatters: FrontMatter[]) { async function getRecords(pageFm: FrontMatter) { console.log('processing:', pageFm.slug); + let sdk: string | undefined; + let framework: string | undefined; + if (pageFm.slug.includes('platforms/')) { + sdk = standardSDKSlug(pageFm.slug.split('/')[1])?.slug as string; + framework = sdk; + + if (pageFm.slug.includes('/guides/')) { + framework = standardSDKSlug(pageFm.slug.split('/')[3])?.slug as string; + } + } + try { const htmlFile = join(staticHtmlFilesPath, pageFm.slug + '.html'); const html = fs.readFileSync(htmlFile).toString(); @@ -131,6 +153,8 @@ async function getRecords(pageFm: FrontMatter) { url: '/' + pageFm.slug + '/', pathSegments: extrapolate(pageFm.slug, '/').map(x => `/${x}/`), keywords: pageFm.keywords, + sdk, + framework, }, '#main' ); diff --git a/src/components/docPage/index.tsx b/src/components/docPage/index.tsx index a174f6c1af366..e54ae374ff91d 100644 --- a/src/components/docPage/index.tsx +++ b/src/components/docPage/index.tsx @@ -41,9 +41,7 @@ export function DocPage({ const pathname = serverContext().path.join('/'); - const searchPlatforms = [currentPlatform?.name, currentGuide?.platform].filter( - isTruthy - ); + const searchPlatforms = [currentPlatform?.name, currentGuide?.name].filter(isTruthy); const leafNode = nodeForPath(rootNode, path); diff --git a/yarn.lock b/yarn.lock index af9b2aab3eac4..7a187375ac8a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2639,10 +2639,10 @@ "@sentry/types" "8.20.0" "@sentry/utils" "8.20.0" -"@sentry-internal/global-search@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@sentry-internal/global-search/-/global-search-1.0.0.tgz" - integrity sha512-u4UUwxinDhUJ0kA4xGGQTr3QGJAWh7GRdFls9ys8coV7WjPNYt91MHfOWVdFzgeU6f4aO7RKE8uxSb/fkZiagQ== +"@sentry-internal/global-search@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/global-search/-/global-search-1.1.0.tgz#108f11149a2516ea96b8a544fb4f8a0c046288e2" + integrity sha512-PL2oGOxr0vdnfPwVczs7VuV8bKhypbi1yN13gAT42AxgaSk3joBWzlEzLo7SXK53zBTWVyM2SAyBDzHWXEerJg== dependencies: "@types/react" ">=16" "@types/react-dom" ">=16"