summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Swithinbank2024-06-05 13:30:25 -0400
committerGitHub2024-06-05 19:30:25 +0200
commit081d1a969462633e41ca95a18a1ec121cb4af5d2 (patch)
treeed259b4e37328aa1e72298945b1f33da98d662d3
parentee0cd38a1fae31717fe820e779baeabe693cd67a (diff)
downloadIT.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>
-rw-r--r--.changeset/sharp-crabs-sparkle.md5
-rw-r--r--docs/src/content/docs/reference/configuration.mdx10
-rw-r--r--packages/starlight/__tests__/basics/config-errors.test.ts1
-rw-r--r--packages/starlight/components/Footer.astro33
-rw-r--r--packages/starlight/schemas/i18n.ts6
-rw-r--r--packages/starlight/translations/ar.json3
-rw-r--r--packages/starlight/translations/cs.json3
-rw-r--r--packages/starlight/translations/da.json3
-rw-r--r--packages/starlight/translations/de.json3
-rw-r--r--packages/starlight/translations/en.json3
-rw-r--r--packages/starlight/translations/es.json3
-rw-r--r--packages/starlight/translations/fa.json3
-rw-r--r--packages/starlight/translations/fr.json3
-rw-r--r--packages/starlight/translations/gl.json3
-rw-r--r--packages/starlight/translations/he.json3
-rw-r--r--packages/starlight/translations/hi.json3
-rw-r--r--packages/starlight/translations/id.json3
-rw-r--r--packages/starlight/translations/it.json3
-rw-r--r--packages/starlight/translations/ja.json3
-rw-r--r--packages/starlight/translations/ko.json3
-rw-r--r--packages/starlight/translations/nb.json3
-rw-r--r--packages/starlight/translations/nl.json3
-rw-r--r--packages/starlight/translations/pl.json3
-rw-r--r--packages/starlight/translations/pt.json3
-rw-r--r--packages/starlight/translations/ro.json3
-rw-r--r--packages/starlight/translations/ru.json3
-rw-r--r--packages/starlight/translations/sv.json3
-rw-r--r--packages/starlight/translations/tr.json3
-rw-r--r--packages/starlight/translations/uk.json3
-rw-r--r--packages/starlight/translations/vi.json3
-rw-r--r--packages/starlight/translations/zh-CN.json3
-rw-r--r--packages/starlight/translations/zh-TW.json3
-rw-r--r--packages/starlight/utils/user-config.ts6
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(