diff options
author | Chris Swithinbank | 2024-06-05 13:30:25 -0400 |
---|---|---|
committer | GitHub | 2024-06-05 19:30:25 +0200 |
commit | 081d1a969462633e41ca95a18a1ec121cb4af5d2 (patch) | |
tree | ed259b4e37328aa1e72298945b1f33da98d662d3 | |
parent | ee0cd38a1fae31717fe820e779baeabe693cd67a (diff) | |
download | IT.starlight-081d1a969462633e41ca95a18a1ec121cb4af5d2.tar.gz IT.starlight-081d1a969462633e41ca95a18a1ec121cb4af5d2.tar.bz2 IT.starlight-081d1a969462633e41ca95a18a1ec121cb4af5d2.zip |
Add kudos option to add “Built with Starlight” badge to site footers (#1958)
Co-authored-by: Luiz Ferraz <luiz@lferraz.com>
Co-authored-by: NotJaime13 <104889849+notjaime13@users.noreply.github.com>
Co-authored-by: HiDeoo <494699+HiDeoo@users.noreply.github.com>
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
Co-authored-by: liruifengv <liruifeng1024@gmail.com>
Co-authored-by: Adam Matthiesen <30383579+Adammatthiesen@users.noreply.github.com>
Co-authored-by: Atharva <atharvapise19@gmail.com>
Co-authored-by: trueberryless <99918022+trueberryless@users.noreply.github.com>
Co-authored-by: Kevin <46791833+kevinzunigacuellar@users.noreply.github.com>
Co-authored-by: Jacob Jenkins <7649031+jdtjenkins@users.noreply.github.com>
Co-authored-by: Bryce Russell <19967622+BryceRussell@users.noreply.github.com>
Co-authored-by: Lorenzo Lewis <15347255+lorenzolewis@users.noreply.github.com>
33 files changed, 113 insertions, 29 deletions
diff --git a/.changeset/sharp-crabs-sparkle.md b/.changeset/sharp-crabs-sparkle.md new file mode 100644 index 00000000..3886c522 --- /dev/null +++ b/.changeset/sharp-crabs-sparkle.md @@ -0,0 +1,5 @@ +--- +'@astrojs/starlight': minor +--- + +Allows users to opt into displaying a “Built with Starlight” link in the site footer diff --git a/docs/src/content/docs/reference/configuration.mdx b/docs/src/content/docs/reference/configuration.mdx index 59816e1a..40841629 100644 --- a/docs/src/content/docs/reference/configuration.mdx +++ b/docs/src/content/docs/reference/configuration.mdx @@ -569,3 +569,13 @@ starlight({ ``` See the [Plugins Reference](/reference/plugins/) for details about creating your own plugins. + +### `credits` + +Enable displaying a “Built with Starlight” link in your site’s footer. + +```js +starlight({ + credits: true, +}); +``` diff --git a/packages/starlight/__tests__/basics/config-errors.test.ts b/packages/starlight/__tests__/basics/config-errors.test.ts index 551c5600..63dcca59 100644 --- a/packages/starlight/__tests__/basics/config-errors.test.ts +++ b/packages/starlight/__tests__/basics/config-errors.test.ts @@ -44,6 +44,7 @@ test('parses valid config successfully', () => { "ThemeSelect": "@astrojs/starlight/components/ThemeSelect.astro", "TwoColumnContent": "@astrojs/starlight/components/TwoColumnContent.astro", }, + "credits": false, "customCss": [], "defaultLocale": { "dir": "ltr", diff --git a/packages/starlight/components/Footer.astro b/packages/starlight/components/Footer.astro index a63eeb8d..f75b5e40 100644 --- a/packages/starlight/components/Footer.astro +++ b/packages/starlight/components/Footer.astro @@ -4,26 +4,55 @@ import type { Props } from '../props'; import EditLink from 'virtual:starlight/components/EditLink'; import LastUpdated from 'virtual:starlight/components/LastUpdated'; import Pagination from 'virtual:starlight/components/Pagination'; +import config from 'virtual:starlight/user-config'; +import { Icon } from '../components'; --- -<footer> +<footer class="sl-flex"> <div class="meta sl-flex"> <EditLink {...Astro.props} /> <LastUpdated {...Astro.props} /> </div> <Pagination {...Astro.props} /> + + { + config.credits && ( + <a class="kudos sl-flex" href="https://starlight.astro.build"> + <Icon name={'starlight'} /> {Astro.props.labels['builtWithStarlight.label']} + </a> + ) + } </footer> <style> + footer { + flex-direction: column; + gap: 1.5rem; + } .meta { gap: 0.75rem 3rem; justify-content: space-between; flex-wrap: wrap; - margin-block: 3rem 1.5rem; + margin-top: 3rem; font-size: var(--sl-text-sm); color: var(--sl-color-gray-3); } .meta > :global(p:only-child) { margin-inline-start: auto; } + + .kudos { + align-items: center; + gap: 0.5em; + margin: 1.5rem auto; + font-size: var(--sl-text-xs); + text-decoration: none; + color: var(--sl-color-gray-3); + } + .kudos :global(svg) { + color: var(--sl-color-orange); + } + .kudos:hover { + color: var(--sl-color-white); + } </style> diff --git a/packages/starlight/schemas/i18n.ts b/packages/starlight/schemas/i18n.ts index c141a83e..6f89cba5 100644 --- a/packages/starlight/schemas/i18n.ts +++ b/packages/starlight/schemas/i18n.ts @@ -138,6 +138,12 @@ function starlightI18nSchema() { 'fileTree.directory': z .string() .describe('Label for the directory icon in the file tree component.'), + + 'builtWithStarlight.label': z + .string() + .describe( + 'Label for the “Built with Starlight” badge optionally displayed in the site footer.' + ), }) .partial(); } diff --git a/packages/starlight/translations/ar.json b/packages/starlight/translations/ar.json index 9a489921..99c8b967 100644 --- a/packages/starlight/translations/ar.json +++ b/packages/starlight/translations/ar.json @@ -24,5 +24,6 @@ "aside.tip": "نصيحة", "aside.caution": "تنبيه", "aside.danger": "تحذير", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/cs.json b/packages/starlight/translations/cs.json index f086f7fb..d40bd779 100644 --- a/packages/starlight/translations/cs.json +++ b/packages/starlight/translations/cs.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/da.json b/packages/starlight/translations/da.json index 065c7a12..a5ff7489 100644 --- a/packages/starlight/translations/da.json +++ b/packages/starlight/translations/da.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/de.json b/packages/starlight/translations/de.json index de181b7a..09060a99 100644 --- a/packages/starlight/translations/de.json +++ b/packages/starlight/translations/de.json @@ -24,5 +24,6 @@ "aside.tip": "Tipp", "aside.caution": "Achtung", "aside.danger": "Gefahr", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Erstellt mit Starlight" } diff --git a/packages/starlight/translations/en.json b/packages/starlight/translations/en.json index a7228c91..b9931c7e 100644 --- a/packages/starlight/translations/en.json +++ b/packages/starlight/translations/en.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/es.json b/packages/starlight/translations/es.json index 1d52d0c7..9c0b6907 100644 --- a/packages/starlight/translations/es.json +++ b/packages/starlight/translations/es.json @@ -27,5 +27,6 @@ "expressiveCode.copyButtonCopied": "¡Copiado!", "expressiveCode.copyButtonTooltip": "Copiar al portapapeles", "expressiveCode.terminalWindowFallbackTitle": "Ventana de terminal", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Hecho con Starlight" } diff --git a/packages/starlight/translations/fa.json b/packages/starlight/translations/fa.json index 47e5b202..07760d69 100644 --- a/packages/starlight/translations/fa.json +++ b/packages/starlight/translations/fa.json @@ -24,5 +24,6 @@ "aside.tip": "نکته", "aside.caution": "احتیاط", "aside.danger": "خطر", - "fileTree.directory": "فهرست" + "fileTree.directory": "فهرست", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/fr.json b/packages/starlight/translations/fr.json index 6e8cf9ba..224affdf 100644 --- a/packages/starlight/translations/fr.json +++ b/packages/starlight/translations/fr.json @@ -27,5 +27,6 @@ "expressiveCode.copyButtonCopied": "Copié !", "expressiveCode.copyButtonTooltip": "Copier dans le presse-papiers", "expressiveCode.terminalWindowFallbackTitle": "Fenêtre de terminal", - "fileTree.directory": "Répertoire" + "fileTree.directory": "Répertoire", + "builtWithStarlight.label": "Créé avec Starlight" } diff --git a/packages/starlight/translations/gl.json b/packages/starlight/translations/gl.json index 3d7fde51..ac70c4be 100644 --- a/packages/starlight/translations/gl.json +++ b/packages/starlight/translations/gl.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/he.json b/packages/starlight/translations/he.json index 93b3f8eb..bc9646fc 100644 --- a/packages/starlight/translations/he.json +++ b/packages/starlight/translations/he.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/hi.json b/packages/starlight/translations/hi.json index b032372c..288e3cf2 100644 --- a/packages/starlight/translations/hi.json +++ b/packages/starlight/translations/hi.json @@ -24,5 +24,6 @@ "aside.tip": "संकेत", "aside.caution": "सावधानी", "aside.danger": "खतरा", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Starlight द्वारा निर्मित" } diff --git a/packages/starlight/translations/id.json b/packages/starlight/translations/id.json index 0f74f94c..d47a64ef 100644 --- a/packages/starlight/translations/id.json +++ b/packages/starlight/translations/id.json @@ -24,5 +24,6 @@ "aside.tip": "Tips", "aside.caution": "Perhatian", "aside.danger": "Bahaya", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/it.json b/packages/starlight/translations/it.json index 2bf290d7..15179d98 100644 --- a/packages/starlight/translations/it.json +++ b/packages/starlight/translations/it.json @@ -24,5 +24,6 @@ "aside.tip": "Consiglio", "aside.caution": "Attenzione", "aside.danger": "Pericolo", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/ja.json b/packages/starlight/translations/ja.json index 848bc174..3c5ef282 100644 --- a/packages/starlight/translations/ja.json +++ b/packages/starlight/translations/ja.json @@ -24,5 +24,6 @@ "aside.tip": "ヒント", "aside.caution": "注意", "aside.danger": "危険", - "fileTree.directory": "ディレクトリ" + "fileTree.directory": "ディレクトリ", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/ko.json b/packages/starlight/translations/ko.json index ed3d7b7e..28a1a836 100644 --- a/packages/starlight/translations/ko.json +++ b/packages/starlight/translations/ko.json @@ -24,5 +24,6 @@ "aside.tip": "팁", "aside.caution": "주의", "aside.danger": "위험", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/nb.json b/packages/starlight/translations/nb.json index d2a5435a..fcae0379 100644 --- a/packages/starlight/translations/nb.json +++ b/packages/starlight/translations/nb.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Laget med Starlight" } diff --git a/packages/starlight/translations/nl.json b/packages/starlight/translations/nl.json index d9994c75..f29f991b 100644 --- a/packages/starlight/translations/nl.json +++ b/packages/starlight/translations/nl.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Opgepast", "aside.danger": "Gevaar", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/pl.json b/packages/starlight/translations/pl.json index 234b5eda..f4bc958b 100644 --- a/packages/starlight/translations/pl.json +++ b/packages/starlight/translations/pl.json @@ -27,5 +27,6 @@ "fileTree.directory": "Folder", "expressiveCode.copyButtonCopied": "Skopiowane!", "expressiveCode.copyButtonTooltip": "Skopiuj do schowka", - "expressiveCode.terminalWindowFallbackTitle": "Okno terminala" + "expressiveCode.terminalWindowFallbackTitle": "Okno terminala", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/pt.json b/packages/starlight/translations/pt.json index d408a998..c9dced39 100644 --- a/packages/starlight/translations/pt.json +++ b/packages/starlight/translations/pt.json @@ -24,5 +24,6 @@ "aside.tip": "Dica", "aside.caution": "Cuidado", "aside.danger": "Perigo", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Feito com Starlight" } diff --git a/packages/starlight/translations/ro.json b/packages/starlight/translations/ro.json index fc808e88..1e8be5bc 100644 --- a/packages/starlight/translations/ro.json +++ b/packages/starlight/translations/ro.json @@ -24,5 +24,6 @@ "aside.tip": "Sfat", "aside.caution": "Atenție", "aside.danger": "Pericol", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/ru.json b/packages/starlight/translations/ru.json index 73b2d0c3..fef6cd9a 100644 --- a/packages/starlight/translations/ru.json +++ b/packages/starlight/translations/ru.json @@ -27,5 +27,6 @@ "fileTree.directory": "Директория", "expressiveCode.copyButtonCopied": "Скопировано!", "expressiveCode.copyButtonTooltip": "Копировать", - "expressiveCode.terminalWindowFallbackTitle": "Окно терминала" + "expressiveCode.terminalWindowFallbackTitle": "Окно терминала", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/sv.json b/packages/starlight/translations/sv.json index 2675e2a9..c6b14e31 100644 --- a/packages/starlight/translations/sv.json +++ b/packages/starlight/translations/sv.json @@ -24,5 +24,6 @@ "aside.tip": "Tip", "aside.caution": "Caution", "aside.danger": "Danger", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/tr.json b/packages/starlight/translations/tr.json index 84a85c34..d65499dd 100644 --- a/packages/starlight/translations/tr.json +++ b/packages/starlight/translations/tr.json @@ -24,5 +24,6 @@ "aside.tip": "İpucu", "aside.caution": "Dikkat", "aside.danger": "Tehlike", - "fileTree.directory": "Dizin" + "fileTree.directory": "Dizin", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/uk.json b/packages/starlight/translations/uk.json index dc72ba30..b7877453 100644 --- a/packages/starlight/translations/uk.json +++ b/packages/starlight/translations/uk.json @@ -24,5 +24,6 @@ "aside.tip": "Порада", "aside.caution": "Обережно", "aside.danger": "Небезпечно", - "fileTree.directory": "Directory" + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/vi.json b/packages/starlight/translations/vi.json index ff297f4d..615382fc 100644 --- a/packages/starlight/translations/vi.json +++ b/packages/starlight/translations/vi.json @@ -24,5 +24,6 @@ "aside.tip": "Mẹo", "aside.caution": "Thận trọng", "aside.danger": "Nguy hiểm", - "fileTree.directory": "Danh mục" + "fileTree.directory": "Danh mục", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/translations/zh-CN.json b/packages/starlight/translations/zh-CN.json index 63abbc1d..1326da65 100644 --- a/packages/starlight/translations/zh-CN.json +++ b/packages/starlight/translations/zh-CN.json @@ -24,5 +24,6 @@ "aside.tip": "提示", "aside.caution": "警告", "aside.danger": "危险", - "fileTree.directory": "文件夹" + "fileTree.directory": "文件夹", + "builtWithStarlight.label": "基于 Starlight 构建" } diff --git a/packages/starlight/translations/zh-TW.json b/packages/starlight/translations/zh-TW.json index 815c8c1d..b408e55d 100644 --- a/packages/starlight/translations/zh-TW.json +++ b/packages/starlight/translations/zh-TW.json @@ -24,5 +24,6 @@ "aside.tip": "提示", "aside.caution": "警告", "aside.danger": "危險", - "fileTree.directory": "目錄" + "fileTree.directory": "目錄", + "builtWithStarlight.label": "Built with Starlight" } diff --git a/packages/starlight/utils/user-config.ts b/packages/starlight/utils/user-config.ts index d80c5d83..6737e819 100644 --- a/packages/starlight/utils/user-config.ts +++ b/packages/starlight/utils/user-config.ts @@ -208,6 +208,12 @@ const UserConfigSchema = z.object({ /** Disable Starlight's default 404 page. */ disable404Route: z.boolean().default(false).describe("Disable Starlight's default 404 page."), + + /** Enable displaying a “Built with Starlight” link in your site’s footer. */ + credits: z + .boolean() + .default(false) + .describe('Enable displaying a “Built with Starlight” link in your site’s footer.'), }); export const StarlightConfigSchema = UserConfigSchema.strict().transform( |