diff options
author | Brian Mortenson | 2023-09-07 05:14:23 -0600 |
---|---|---|
committer | GitHub | 2023-09-07 13:14:23 +0200 |
commit | ea5772655274a3900310cb700836fdd2f6dba7cd (patch) | |
tree | c809580ea3ac1d811effe755d0b8f4881d2b6425 | |
parent | 641900615aa9a9a128d6934e65a57ba89e503cfd (diff) | |
download | IT.starlight-ea5772655274a3900310cb700836fdd2f6dba7cd.tar.gz IT.starlight-ea5772655274a3900310cb700836fdd2f6dba7cd.tar.bz2 IT.starlight-ea5772655274a3900310cb700836fdd2f6dba7cd.zip |
add option to docs schema to exclude a page from pagefind (#647)
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
-rw-r--r-- | .changeset/dull-mails-kiss.md | 5 | ||||
-rw-r--r-- | .changeset/spicy-eggs-nail.md | 5 | ||||
-rw-r--r-- | docs/src/content/docs/reference/frontmatter.md | 16 | ||||
-rw-r--r-- | packages/starlight/layout/Page.astro | 3 | ||||
-rw-r--r-- | packages/starlight/schema.ts | 3 |
5 files changed, 30 insertions, 2 deletions
diff --git a/.changeset/dull-mails-kiss.md b/.changeset/dull-mails-kiss.md new file mode 100644 index 00000000..2f5bcd47 --- /dev/null +++ b/.changeset/dull-mails-kiss.md @@ -0,0 +1,5 @@ +--- +'@astrojs/starlight': patch +--- + +Fix translated 404 pages not being excluded from search results diff --git a/.changeset/spicy-eggs-nail.md b/.changeset/spicy-eggs-nail.md new file mode 100644 index 00000000..6924f42e --- /dev/null +++ b/.changeset/spicy-eggs-nail.md @@ -0,0 +1,5 @@ +--- +'@astrojs/starlight': patch +--- + +Add frontmatter option to exclude a page from Pagefind search results diff --git a/docs/src/content/docs/reference/frontmatter.md b/docs/src/content/docs/reference/frontmatter.md index 7ceb8344..7b305411 100644 --- a/docs/src/content/docs/reference/frontmatter.md +++ b/docs/src/content/docs/reference/frontmatter.md @@ -208,6 +208,20 @@ next: false --- ``` +### `pagefind` + +**type:** `boolean` +**default:** `true` + +Set whether this page should be included in the [Pagefind](https://pagefind.app/) search index. Set to `false` to exclude a page from search results: + +```md +--- +# Hide this page from the search index +pagefind: false +--- +``` + ### `sidebar` **type:** `{ label?: string; order?: number; hidden?: boolean; badge?: string | BadgeConfig }` @@ -246,7 +260,7 @@ sidebar: #### `hidden` -**type:** `boolean` +**type:** `boolean` **default:** `false` Prevents this page from being included in an autogenerated sidebar group. diff --git a/packages/starlight/layout/Page.astro b/packages/starlight/layout/Page.astro index 7b01c441..5dfcbe35 100644 --- a/packages/starlight/layout/Page.astro +++ b/packages/starlight/layout/Page.astro @@ -45,6 +45,7 @@ const tocConfig = !hasSidebar : config.tableOfContents; const hasToC = Boolean(tocConfig); const hasHero = Boolean(entry.data.hero); +const pagefindEnabled = entry.slug !== '404' && !entry.slug.endsWith('/404') && entry.data.pagefind !== false; --- <html @@ -91,7 +92,7 @@ const hasHero = Boolean(entry.data.hero); {hasSidebar && <Sidebar slot="sidebar" {sidebar} {locale} />} <TwoColumnContent {hasToC}> <RightSidebar slot="right-sidebar" {headings} {locale} {tocConfig} /> - <main data-pagefind-body={entry.slug !== '404'} lang={entryMeta.lang} dir={entryMeta.dir}> + <main data-pagefind-body={pagefindEnabled} lang={entryMeta.lang} dir={entryMeta.dir}> {/* TODO: Revisit how this logic flows. */} {entry.data.banner && <Banner {...entry.data.banner} />} { diff --git a/packages/starlight/schema.ts b/packages/starlight/schema.ts index aae1cdd4..d0775e70 100644 --- a/packages/starlight/schema.ts +++ b/packages/starlight/schema.ts @@ -165,5 +165,8 @@ export function docsSchema() { content: z.string(), }) .optional(), + + /** Pagefind indexing for this page - set to false to disable. */ + pagefind: z.boolean().default(true), }); } |