Skip to content

Commit 46e2583

Browse files
committed
docs(site): fix broken links
1 parent 5a82a85 commit 46e2583

File tree

9 files changed

+472
-121
lines changed

9 files changed

+472
-121
lines changed

pnpm-lock.yaml

Lines changed: 196 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

site/.link-checker/verified-external-links.tsv

Lines changed: 140 additions & 0 deletions
Large diffs are not rendered by default.

site/astro.config.mjs

Lines changed: 91 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,153 +1,167 @@
1-
import { rehypeHeadingIds } from '@astrojs/markdown-remark';
2-
import starlight from '@astrojs/starlight';
3-
import { defineConfig } from 'astro/config';
4-
import rehypeExternalLinks from 'rehype-external-links';
5-
import { headingAnchorLinks } from './remark-plugins/heading-anchor-links.mjs';
6-
import { linkAliases } from './remark-plugins/link-aliases.mjs';
7-
import { sectionWrapper } from './remark-plugins/section-wrapper.mjs';
8-
import { tocSchemaMicrodata } from './remark-plugins/toc-schema-microdata.mjs';
1+
import { rehypeHeadingIds } from "@astrojs/markdown-remark";
2+
import starlight from "@astrojs/starlight";
3+
import { defineConfig } from "astro/config";
4+
import astroBrokenLinksChecker from "astro-broken-links-checker";
5+
import rehypeExternalLinks from "rehype-external-links";
6+
import { headingAnchorLinks } from "./remark-plugins/heading-anchor-links.mjs";
7+
import { linkAliases } from "./remark-plugins/link-aliases.mjs";
8+
import { sectionWrapper } from "./remark-plugins/section-wrapper.mjs";
9+
import { tocSchemaMicrodata } from "./remark-plugins/toc-schema-microdata.mjs";
910

1011
export default defineConfig({
11-
site: 'https://syncpack.dev',
12-
base: '/',
13-
output: 'static',
12+
site: "https://syncpack.dev",
13+
base: "/",
14+
output: "static",
1415
markdown: {
1516
smartypants: false,
16-
rehypePlugins: [rehypeHeadingIds, headingAnchorLinks, [rehypeExternalLinks, { rel: ['nofollow', 'noopener'] }]],
17+
rehypePlugins: [
18+
rehypeHeadingIds,
19+
headingAnchorLinks,
20+
[rehypeExternalLinks, { rel: ["nofollow", "noopener"] }],
21+
],
1722
remarkPlugins: [sectionWrapper, linkAliases],
1823
},
1924
integrations: [
25+
astroBrokenLinksChecker({
26+
checkExternalLinks: false,
27+
cacheExternalLinks: true,
28+
throwError: true,
29+
}),
2030
tocSchemaMicrodata(),
2131
starlight({
22-
title: 'Syncpack',
32+
title: "Syncpack",
2333
lastUpdated: true,
2434
markdown: {
2535
headingLinks: false,
2636
},
27-
routeMiddleware: './src/route-data.ts',
37+
routeMiddleware: "./src/route-data.ts",
2838
social: [
2939
{
30-
icon: 'github',
31-
label: 'GitHub',
32-
href: 'https://github.com/JamieMason/syncpack',
40+
icon: "github",
41+
label: "GitHub",
42+
href: "https://github.com/JamieMason/syncpack",
3343
},
3444
{
35-
icon: 'npm',
36-
label: 'npm',
37-
href: 'https://npmx.dev/package/syncpack',
45+
icon: "npm",
46+
label: "npm",
47+
href: "https://npmx.dev/package/syncpack",
3848
},
3949
{
40-
icon: 'blueSky',
41-
label: 'Bluesky',
42-
href: 'https://bsky.app/profile/foldleft.bsky.social',
50+
icon: "blueSky",
51+
label: "Bluesky",
52+
href: "https://bsky.app/profile/foldleft.bsky.social",
4353
},
4454
],
4555
editLink: {
46-
baseUrl: 'https://github.com/JamieMason/syncpack/edit/main/site/',
56+
baseUrl: "https://github.com/JamieMason/syncpack/edit/main/site/",
4757
},
48-
favicon: '/favicon.ico',
58+
favicon: "/favicon.ico",
4959
logo: {
50-
src: './src/assets/logo.svg',
60+
src: "./src/assets/logo.svg",
5161
},
5262
tableOfContents: {
5363
minHeadingLevel: 2,
5464
maxHeadingLevel: 4,
5565
},
5666
expressiveCode: {
57-
themes: ['everforest-dark', 'everforest-light'],
67+
themes: ["everforest-dark", "everforest-light"],
5868
removeUnusedThemes: false,
5969
frames: false,
6070
styleOverrides: {
6171
// Borders and spacing
62-
borderRadius: '6px',
63-
borderWidth: '1px',
64-
borderColor: 'var(--sl-color-gray-5)',
72+
borderRadius: "6px",
73+
borderWidth: "1px",
74+
borderColor: "var(--sl-color-gray-5)",
6575

6676
// Code area
67-
codeBackground: 'var(--sl-color-gray-6)',
68-
codeFontFamily: 'var(--sl-font-mono)',
69-
codeFontSize: '0.8rem',
70-
codeLineHeight: '1.65',
71-
codePaddingBlock: '1rem',
72-
codePaddingInline: '1.35rem',
73-
codeForeground: 'var(--sl-color-gray-2)',
77+
codeBackground: "var(--sl-color-gray-6)",
78+
codeFontFamily: "var(--sl-font-mono)",
79+
codeFontSize: "0.8rem",
80+
codeLineHeight: "1.65",
81+
codePaddingBlock: "1rem",
82+
codePaddingInline: "1.35rem",
83+
codeForeground: "var(--sl-color-gray-2)",
7484

7585
// Accent color for highlights
76-
focusBorder: 'var(--sl-color-accent)',
86+
focusBorder: "var(--sl-color-accent)",
7787
},
7888
},
79-
customCss: ['@fontsource-variable/inter', '@fontsource-variable/jetbrains-mono', './src/styles/custom.css'],
89+
customCss: [
90+
"@fontsource-variable/inter",
91+
"@fontsource-variable/jetbrains-mono",
92+
"./src/styles/custom.css",
93+
],
8094
pagination: false,
8195
sidebar: [
8296
{
83-
label: 'Guides',
84-
autogenerate: { directory: 'guide' },
97+
label: "Guides",
98+
autogenerate: { directory: "guide" },
8599
},
86100
{
87-
label: 'Commands',
88-
autogenerate: { directory: 'command' },
101+
label: "Commands",
102+
autogenerate: { directory: "command" },
89103
},
90104
{
91-
label: 'Version Groups',
92-
autogenerate: { directory: 'version-groups' },
105+
label: "Version Groups",
106+
autogenerate: { directory: "version-groups" },
93107
},
94108
{
95-
label: 'Semver Groups',
96-
autogenerate: { directory: 'semver-groups' },
109+
label: "Semver Groups",
110+
autogenerate: { directory: "semver-groups" },
97111
},
98112
{
99-
label: 'Configuration File',
113+
label: "Configuration File",
100114
items: [
101-
'config/syncpackrc',
102-
'config/custom-types',
103-
'config/dependency-groups',
104-
'config/format-bugs',
105-
'config/format-repository',
106-
'config/indent',
107-
'config/max-concurrent-requests',
108-
{ label: 'semverGroups', link: '/semver-groups/' },
109-
'config/sort-az',
110-
'config/sort-exports',
111-
'config/sort-first',
112-
'config/sort-packages',
113-
'config/source',
114-
'config/strict',
115-
{ label: 'versionGroups', link: '/version-groups/' },
115+
"config/syncpackrc",
116+
"config/custom-types",
117+
"config/dependency-groups",
118+
"config/format-bugs",
119+
"config/format-repository",
120+
"config/indent",
121+
"config/max-concurrent-requests",
122+
{ label: "semverGroups", link: "/semver-groups/" },
123+
"config/sort-az",
124+
"config/sort-exports",
125+
"config/sort-first",
126+
"config/sort-packages",
127+
"config/source",
128+
"config/strict",
129+
{ label: "versionGroups", link: "/version-groups/" },
116130
],
117131
},
118132
{
119-
label: 'Reference',
120-
autogenerate: { directory: 'reference' },
133+
label: "Reference",
134+
autogenerate: { directory: "reference" },
121135
},
122136
],
123137
components: {
124-
Footer: './src/components/Footer.astro',
125-
Head: './src/components/Head.astro',
126-
SocialIcons: './src/components/SocialIcons.astro',
138+
Footer: "./src/components/Footer.astro",
139+
Head: "./src/components/Head.astro",
140+
SocialIcons: "./src/components/SocialIcons.astro",
127141
},
128142
head: [
129143
{
130-
tag: 'link',
144+
tag: "link",
131145
attrs: {
132-
rel: 'apple-touch-icon',
133-
href: '/apple-touch-icon-180x180.png',
146+
rel: "apple-touch-icon",
147+
href: "/apple-touch-icon-180x180.png",
134148
},
135149
},
136150
{
137-
tag: 'script',
151+
tag: "script",
138152
attrs: {
139153
async: true,
140-
src: 'https://www.googletagmanager.com/gtag/js?id=G-DXPH5LLJ0N',
154+
src: "https://www.googletagmanager.com/gtag/js?id=G-DXPH5LLJ0N",
141155
},
142156
},
143157
{
144-
tag: 'script',
158+
tag: "script",
145159
content: [
146-
'window.dataLayer=window.dataLayer||[];',
147-
'function gtag(){dataLayer.push(arguments);}',
160+
"window.dataLayer=window.dataLayer||[];",
161+
"function gtag(){dataLayer.push(arguments);}",
148162
`gtag('js', new Date());`,
149163
`gtag('config', 'G-DXPH5LLJ0N');`,
150-
].join(''),
164+
].join(""),
151165
},
152166
],
153167
}),

site/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"@fontsource-variable/inter": "^5.2.8",
99
"@fontsource-variable/jetbrains-mono": "^5.2.8",
1010
"astro": "^5.18.0",
11+
"astro-broken-links-checker": "^1.0.0",
1112
"cheerio": "^1.2.0",
1213
"glob": "^13.0.6",
1314
"hast-util-from-html": "2.0.3",

site/src/content/docs/command.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Syncpack provides several commands to lint, fix, format, and update dependencies
1717
{pages.map((page) => (
1818
<LinkCard
1919
title={page.data.title}
20-
href={`/syncpack/${page.id.replace(/\.mdx?$/, "")}/`}
20+
href={`/${page.id.replace(/\.mdx?$/, "")}/`}
2121
description={page.data.description}
2222
/>
2323
))}

site/src/content/docs/config.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Configure syncpack's behavior using a `.syncpackrc` file in your project root. T
1717
{pages.map((page) => (
1818
<LinkCard
1919
title={page.data.title}
20-
href={`/syncpack/${page.id.replace(/\.mdx?$/, "")}/`}
20+
href={`/${page.id.replace(/\.mdx?$/, "")}/`}
2121
description={page.data.description}
2222
/>
2323
))}

site/src/content/docs/guide.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Step-by-step guides to help you get the most out of Syncpack in your JavaScript
1717
{pages.map((page) => (
1818
<LinkCard
1919
title={page.data.title}
20-
href={`/syncpack/${page.id.replace(/\.mdx?$/, "")}/`}
20+
href={`/${page.id.replace(/\.mdx?$/, "")}/`}
2121
description={page.data.description}
2222
/>
2323
))}

site/src/content/docs/reference.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Reference documentation covering dependency types, specifier types, status codes
1717
{pages.map((page) => (
1818
<LinkCard
1919
title={page.data.title}
20-
href={`/syncpack/${page.id.replace(/\.mdx?$/, "")}/`}
20+
href={`/${page.id.replace(/\.mdx?$/, "")}/`}
2121
description={page.data.description}
2222
/>
2323
))}

site/src/content/docs/reference/status-codes.mdx

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -10,55 +10,55 @@ When syncpack analyses your monorepo, every instance of every dependency is assi
1010

1111
## Valid
1212

13-
- [IsCatalog](/syncpack/status/is-catalog)
14-
- [IsHighestOrLowestSemver](/syncpack/status/is-highest-or-lowest-semver)
15-
- [IsIdenticalToLocal](/syncpack/status/is-identical-to-local)
16-
- [IsIdenticalToPin](/syncpack/status/is-identical-to-pin)
17-
- [IsIdenticalToSnapTarget](/syncpack/status/is-identical-to-snap-target)
18-
- [IsIgnored](/syncpack/status/is-ignored)
19-
- [IsLocalAndValid](/syncpack/status/is-local-and-valid)
20-
- [IsNonSemverButIdentical](/syncpack/status/is-non-semver-but-identical)
21-
- [SatisfiesHighestOrLowestSemver](/syncpack/status/satisfies-highest-or-lowest-semver)
22-
- [SatisfiesLocal](/syncpack/status/satisfies-local)
23-
- [SatisfiesSameMinorGroup](/syncpack/status/satisfies-same-minor-group)
24-
- [SatisfiesSameRangeGroup](/syncpack/status/satisfies-same-range-group)
25-
- [SatisfiesSnapTarget](/syncpack/status/satisfies-snap-target)
13+
- [IsCatalog](/status/is-catalog)
14+
- [IsHighestOrLowestSemver](/status/is-highest-or-lowest-semver)
15+
- [IsIdenticalToLocal](/status/is-identical-to-local)
16+
- [IsIdenticalToPin](/status/is-identical-to-pin)
17+
- [IsIdenticalToSnapTarget](/status/is-identical-to-snap-target)
18+
- [IsIgnored](/status/is-ignored)
19+
- [IsLocalAndValid](/status/is-local-and-valid)
20+
- [IsNonSemverButIdentical](/status/is-non-semver-but-identical)
21+
- [SatisfiesHighestOrLowestSemver](/status/satisfies-highest-or-lowest-semver)
22+
- [SatisfiesLocal](/status/satisfies-local)
23+
- [SatisfiesSameMinorGroup](/status/satisfies-same-minor-group)
24+
- [SatisfiesSameRangeGroup](/status/satisfies-same-range-group)
25+
- [SatisfiesSnapTarget](/status/satisfies-snap-target)
2626

2727
## Fixable
2828

29-
- [DiffersToCatalog](/syncpack/status/differs-to-catalog)
30-
- [DiffersToHighestOrLowestSemver](/syncpack/status/differs-to-highest-or-lowest-semver)
31-
- [DiffersToLocal](/syncpack/status/differs-to-local)
32-
- [DiffersToNpmRegistry](/syncpack/status/differs-to-npm-registry)
33-
- [DiffersToPin](/syncpack/status/differs-to-pin)
34-
- [DiffersToSnapTarget](/syncpack/status/differs-to-snap-target)
35-
- [IsBanned](/syncpack/status/is-banned)
36-
- [PinOverridesSemverRange](/syncpack/status/pin-overrides-semver-range)
37-
- [PinOverridesSemverRangeMismatch](/syncpack/status/pin-overrides-semver-range-mismatch)
38-
- [SameMinorOverridesSemverRange](/syncpack/status/same-minor-overrides-semver-range)
39-
- [SameMinorOverridesSemverRangeMismatch](/syncpack/status/same-minor-overrides-semver-range-mismatch)
40-
- [SemverRangeMismatch](/syncpack/status/semver-range-mismatch)
29+
- [DiffersToCatalog](/status/differs-to-catalog)
30+
- [DiffersToHighestOrLowestSemver](/status/differs-to-highest-or-lowest-semver)
31+
- [DiffersToLocal](/status/differs-to-local)
32+
- [DiffersToNpmRegistry](/status/differs-to-npm-registry)
33+
- [DiffersToPin](/status/differs-to-pin)
34+
- [DiffersToSnapTarget](/status/differs-to-snap-target)
35+
- [IsBanned](/status/is-banned)
36+
- [PinOverridesSemverRange](/status/pin-overrides-semver-range)
37+
- [PinOverridesSemverRangeMismatch](/status/pin-overrides-semver-range-mismatch)
38+
- [SameMinorOverridesSemverRange](/status/same-minor-overrides-semver-range)
39+
- [SameMinorOverridesSemverRangeMismatch](/status/same-minor-overrides-semver-range-mismatch)
40+
- [SemverRangeMismatch](/status/semver-range-mismatch)
4141

4242
## Unfixable
4343

44-
- [DependsOnInvalidLocalPackage](/syncpack/status/depends-on-invalid-local-package)
45-
- [NonSemverMismatch](/syncpack/status/non-semver-mismatch)
46-
- [SameMinorMismatch](/syncpack/status/same-minor-mismatch)
47-
- [SameRangeMismatch](/syncpack/status/same-range-mismatch)
44+
- [DependsOnInvalidLocalPackage](/status/depends-on-invalid-local-package)
45+
- [NonSemverMismatch](/status/non-semver-mismatch)
46+
- [SameMinorMismatch](/status/same-minor-mismatch)
47+
- [SameRangeMismatch](/status/same-range-mismatch)
4848

4949
## Suspect
5050

51-
- [DependsOnMissingSnapTarget](/syncpack/status/depends-on-missing-snap-target)
52-
- [InvalidLocalVersion](/syncpack/status/invalid-local-version)
53-
- [RefuseToBanLocal](/syncpack/status/refuse-to-ban-local)
54-
- [RefuseToPinLocal](/syncpack/status/refuse-to-pin-local)
55-
- [RefuseToSnapLocal](/syncpack/status/refuse-to-snap-local)
51+
- [DependsOnMissingSnapTarget](/status/depends-on-missing-snap-target)
52+
- [InvalidLocalVersion](/status/invalid-local-version)
53+
- [RefuseToBanLocal](/status/refuse-to-ban-local)
54+
- [RefuseToPinLocal](/status/refuse-to-pin-local)
55+
- [RefuseToSnapLocal](/status/refuse-to-snap-local)
5656

5757
## Conflict
5858

59-
- [MatchConflictsWithHighestOrLowestSemver](/syncpack/status/match-conflicts-with-highest-or-lowest-semver)
60-
- [MatchConflictsWithLocal](/syncpack/status/match-conflicts-with-local)
61-
- [MatchConflictsWithSnapTarget](/syncpack/status/match-conflicts-with-snap-target)
62-
- [MismatchConflictsWithHighestOrLowestSemver](/syncpack/status/mismatch-conflicts-with-highest-or-lowest-semver)
63-
- [MismatchConflictsWithLocal](/syncpack/status/mismatch-conflicts-with-local)
64-
- [MismatchConflictsWithSnapTarget](/syncpack/status/mismatch-conflicts-with-snap-target)
59+
- [MatchConflictsWithHighestOrLowestSemver](/status/match-conflicts-with-highest-or-lowest-semver)
60+
- [MatchConflictsWithLocal](/status/match-conflicts-with-local)
61+
- [MatchConflictsWithSnapTarget](/status/match-conflicts-with-snap-target)
62+
- [MismatchConflictsWithHighestOrLowestSemver](/status/mismatch-conflicts-with-highest-or-lowest-semver)
63+
- [MismatchConflictsWithLocal](/status/mismatch-conflicts-with-local)
64+
- [MismatchConflictsWithSnapTarget](/status/mismatch-conflicts-with-snap-target)

0 commit comments

Comments
 (0)