@astrojs/starlight 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/components/Search.astro +1 -1
- package/components/TableOfContents/MobileTableOfContents.astro +1 -1
- package/components/TableOfContents/starlight-toc.ts +16 -10
- package/index.ts +1 -1
- package/layout/Page.astro +3 -1
- package/package.json +3 -3
- package/schema.ts +3 -0
- package/style/reset.css +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @astrojs/starlight
|
|
2
2
|
|
|
3
|
+
## 0.9.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#647](https://github.com/withastro/starlight/pull/647) [`ea57726`](https://github.com/withastro/starlight/commit/ea5772655274a3900310cb700836fdd2f6dba7cd) Thanks [@bgmort](https://github.com/bgmort)! - Fix translated 404 pages not being excluded from search results
|
|
8
|
+
|
|
9
|
+
- [#667](https://github.com/withastro/starlight/pull/667) [`9828f73`](https://github.com/withastro/starlight/commit/9828f739b73e2f377c1450b9e11f0914722ee440) Thanks [@delucis](https://github.com/delucis)! - Break inline `<code>` across lines to avoid overflow
|
|
10
|
+
|
|
11
|
+
- [#642](https://github.com/withastro/starlight/pull/642) [`e623d92`](https://github.com/withastro/starlight/commit/e623d92c2fddc0ff5fe83d2554266885d683a906) Thanks [@fk](https://github.com/fk)! - Don't hard-code nav height in table of contents highlighting script
|
|
12
|
+
|
|
13
|
+
- [#676](https://github.com/withastro/starlight/pull/676) [`6419006`](https://github.com/withastro/starlight/commit/641900615aa9a9a128d6934e65a57ba89e503cfd) Thanks [@vedmalex](https://github.com/vedmalex)! - Upgrade and pin Pagefind to latest beta release.
|
|
14
|
+
|
|
15
|
+
- [#647](https://github.com/withastro/starlight/pull/647) [`ea57726`](https://github.com/withastro/starlight/commit/ea5772655274a3900310cb700836fdd2f6dba7cd) Thanks [@bgmort](https://github.com/bgmort)! - Add frontmatter option to exclude a page from Pagefind search results
|
|
16
|
+
|
|
3
17
|
## 0.9.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
package/components/Search.astro
CHANGED
|
@@ -110,7 +110,7 @@ const pagefindTranslations = {
|
|
|
110
110
|
new PagefindUI({
|
|
111
111
|
element: '#starlight__search',
|
|
112
112
|
baseUrl: import.meta.env.BASE_URL,
|
|
113
|
-
bundlePath: import.meta.env.BASE_URL.replace(/\/$/, '') + '/
|
|
113
|
+
bundlePath: import.meta.env.BASE_URL.replace(/\/$/, '') + '/pagefind/',
|
|
114
114
|
showImages: false,
|
|
115
115
|
translations,
|
|
116
116
|
});
|
|
@@ -10,7 +10,7 @@ export class StarlightTOC extends HTMLElement {
|
|
|
10
10
|
this._current = link;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
constructor(
|
|
13
|
+
constructor() {
|
|
14
14
|
super();
|
|
15
15
|
|
|
16
16
|
/** All the links in the table of contents. */
|
|
@@ -68,19 +68,13 @@ export class StarlightTOC extends HTMLElement {
|
|
|
68
68
|
// Also observe direct children of `.content` to include elements before
|
|
69
69
|
// the first heading.
|
|
70
70
|
const toObserve = document.querySelectorAll('main [id], main [id] ~ *, main .content > *');
|
|
71
|
-
/** Start intersections at nav height + 2rem padding. */
|
|
72
|
-
const top = (smallViewport ? 104 : 64) + 32;
|
|
73
|
-
/** End intersections 1.5rem later. */
|
|
74
|
-
const bottom = top + 24;
|
|
75
71
|
|
|
76
72
|
let observer: IntersectionObserver | undefined;
|
|
77
|
-
|
|
73
|
+
const observe = () => {
|
|
78
74
|
if (observer) observer.disconnect();
|
|
79
|
-
|
|
80
|
-
const rootMargin = `-${top}px 0% ${bottom - height}px`;
|
|
81
|
-
observer = new IntersectionObserver(setCurrent, { rootMargin });
|
|
75
|
+
observer = new IntersectionObserver(setCurrent, { rootMargin: this.getRootMargin() });
|
|
82
76
|
toObserve.forEach((h) => observer!.observe(h));
|
|
83
|
-
}
|
|
77
|
+
};
|
|
84
78
|
observe();
|
|
85
79
|
|
|
86
80
|
const onIdle = window.requestIdleCallback || ((cb) => setTimeout(cb, 1));
|
|
@@ -92,6 +86,18 @@ export class StarlightTOC extends HTMLElement {
|
|
|
92
86
|
timeout = setTimeout(() => onIdle(observe), 200);
|
|
93
87
|
});
|
|
94
88
|
}
|
|
89
|
+
|
|
90
|
+
private getRootMargin(): `-${number}px 0% ${number}px` {
|
|
91
|
+
const navBarHeight = document.querySelector('header')?.getBoundingClientRect().height || 0;
|
|
92
|
+
// `<summary>` only exists in mobile ToC, so will fall back to 0 in large viewport component.
|
|
93
|
+
const mobileTocHeight = this.querySelector('summary')?.getBoundingClientRect().height || 0;
|
|
94
|
+
/** Start intersections at nav height + 2rem padding. */
|
|
95
|
+
const top = navBarHeight + mobileTocHeight + 32;
|
|
96
|
+
/** End intersections 1.5rem later. */
|
|
97
|
+
const bottom = top + 24;
|
|
98
|
+
const height = document.documentElement.clientHeight;
|
|
99
|
+
return `-${top}px 0% ${bottom - height}px`;
|
|
100
|
+
}
|
|
95
101
|
}
|
|
96
102
|
|
|
97
103
|
customElements.define('starlight-toc', StarlightTOC);
|
package/index.ts
CHANGED
|
@@ -68,7 +68,7 @@ export default function StarlightIntegration(opts: StarlightUserConfig): AstroIn
|
|
|
68
68
|
const cwd = dirname(fileURLToPath(import.meta.url));
|
|
69
69
|
const relativeDir = relative(cwd, targetDir);
|
|
70
70
|
return new Promise<void>((resolve) => {
|
|
71
|
-
spawn('npx', ['-y', 'pagefind', '--
|
|
71
|
+
spawn('npx', ['-y', 'pagefind', '--site', relativeDir], {
|
|
72
72
|
stdio: 'inherit',
|
|
73
73
|
shell: true,
|
|
74
74
|
cwd,
|
package/layout/Page.astro
CHANGED
|
@@ -45,6 +45,8 @@ const tocConfig = !hasSidebar
|
|
|
45
45
|
: config.tableOfContents;
|
|
46
46
|
const hasToC = Boolean(tocConfig);
|
|
47
47
|
const hasHero = Boolean(entry.data.hero);
|
|
48
|
+
const pagefindEnabled =
|
|
49
|
+
entry.slug !== '404' && !entry.slug.endsWith('/404') && entry.data.pagefind !== false;
|
|
48
50
|
---
|
|
49
51
|
|
|
50
52
|
<html
|
|
@@ -91,7 +93,7 @@ const hasHero = Boolean(entry.data.hero);
|
|
|
91
93
|
{hasSidebar && <Sidebar slot="sidebar" {sidebar} {locale} />}
|
|
92
94
|
<TwoColumnContent {hasToC}>
|
|
93
95
|
<RightSidebar slot="right-sidebar" {headings} {locale} {tocConfig} />
|
|
94
|
-
<main data-pagefind-body={
|
|
96
|
+
<main data-pagefind-body={pagefindEnabled} lang={entryMeta.lang} dir={entryMeta.dir}>
|
|
95
97
|
{/* TODO: Revisit how this logic flows. */}
|
|
96
98
|
{entry.data.banner && <Banner {...entry.data.banner} />}
|
|
97
99
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrojs/starlight",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Build beautiful, high-performance documentation websites with Astro",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"docs",
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@astrojs/mdx": "^1.0.0",
|
|
41
41
|
"@astrojs/sitemap": "^3.0.0",
|
|
42
|
-
"@pagefind/default-ui": "
|
|
42
|
+
"@pagefind/default-ui": "1.0.0-beta.2",
|
|
43
43
|
"@types/mdast": "^3.0.11",
|
|
44
44
|
"bcp-47": "^2.1.0",
|
|
45
45
|
"execa": "^7.1.1",
|
|
46
46
|
"hast-util-select": "^5.0.5",
|
|
47
47
|
"hastscript": "^7.2.0",
|
|
48
|
-
"pagefind": "
|
|
48
|
+
"pagefind": "1.0.0-beta.2",
|
|
49
49
|
"rehype": "^12.0.1",
|
|
50
50
|
"remark-directive": "^2.0.1",
|
|
51
51
|
"unified": "^10.1.2",
|
package/schema.ts
CHANGED