Skip to content

Commit 4246c8c

Browse files
committed
chore(docs): fix base url paths
- Changed internal links in documentation to use root-relative paths for consistency. - Added a new transform for site URLs to ensure correct linking in different environments. - Updated various files to reflect these changes, including configuration and layout files. - Added tests to verify that all internal links are correctly formatted. Signed-off-by: Cory Rylan <crylan@nvidia.com>
1 parent d01f774 commit 4246c8c

77 files changed

Lines changed: 1258 additions & 531 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pnpm-lock.yaml

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

pnpm-workspace.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ packages:
2323
- projects/cli
2424
- projects/code
2525
- projects/lint
26-
- projects/snippets
2726
- projects/markdown
2827
- projects/media
2928
- projects/monaco

projects/core/src/tabs/tabs.examples.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,13 @@ export const Links = {
145145
render: () => html`
146146
<nve-tabs>
147147
<nve-tabs-item selected>
148-
<a href="./docs/elements/tabs/#links">Tab 1</a>
148+
<a href="#links">Tab 1</a>
149149
</nve-tabs-item>
150150
<nve-tabs-item>
151-
<a href="./docs/elements/tabs/#links">Tab 2</a>
151+
<a href="#links">Tab 2</a>
152152
</nve-tabs-item>
153153
<nve-tabs-item>
154-
<a href="/docs/elements/tabs/#links">Tab 3</a>
154+
<a href="#links">Tab 3</a>
155155
</nve-tabs-item>
156156
</nve-tabs>`
157157
};

projects/site/eleventy.config.js

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// @ts-check
22

3-
import { EleventyRenderPlugin, IdAttributePlugin } from '@11ty/eleventy';
3+
import { EleventyRenderPlugin, HtmlBasePlugin, IdAttributePlugin } from '@11ty/eleventy';
44
import EleventyPluginVite from '@11ty/eleventy-plugin-vite';
55
import litPlugin from '@lit-labs/eleventy-plugin-lit';
66

@@ -19,6 +19,7 @@ import { llmsTxtPlugin } from './src/_11ty/plugins/llms-txt.js';
1919
import { sitemapPlugin } from './src/_11ty/plugins/sitemap-xml.js';
2020
import { elementLoaderTransform } from './src/_11ty/transforms/element-loader.js';
2121
import { anchorGeneratorTransform } from './src/_11ty/transforms/anchor-generator.js';
22+
import { siteUrlsTransform } from './src/_11ty/transforms/site-urls.js';
2223
import { htmlMinifyTransform } from './src/_11ty/transforms/html-minify.js';
2324
import { envReplaceTransform } from './src/_11ty/transforms/env-replace.js';
2425
import {
@@ -42,6 +43,7 @@ import { svgLogoShortcode, svgLogosShortcode } from './src/_11ty/shortcodes/svg-
4243
import { tokensShortcode } from './src/_11ty/shortcodes/tokens.js';
4344
import markdown from './src/_11ty/libraries/markdown.js';
4445
import { ApiService } from '@internals/metadata';
46+
import { ELEMENTS_SITE_ORIGIN } from './src/_11ty/utils/site-url.js';
4547

4648
const apis = await ApiService.getData();
4749

@@ -88,6 +90,8 @@ const entrypoints = [
8890
* Sets up plugins, transforms, collections, and build options
8991
*/
9092
export default function (eleventyConfig) {
93+
eleventyConfig.pathPrefix = BASE_URL;
94+
9195
// Add core 11ty plugins
9296
eleventyConfig.addPlugin(EleventyRenderPlugin);
9397
eleventyConfig.addPlugin(IdAttributePlugin, { checkDuplicates: false });
@@ -154,18 +158,6 @@ export default function (eleventyConfig) {
154158
}
155159
});
156160

157-
// Configure server options for development
158-
eleventyConfig.setServerOptions({
159-
onRequest: {
160-
'/': () => ({
161-
status: 307,
162-
headers: {
163-
Location: BASE_URL
164-
}
165-
})
166-
}
167-
});
168-
169161
// Add search plugin for documentation search functionality
170162
if (process.env.ELEVENTY_RUN_MODE === 'build') {
171163
eleventyConfig.addPlugin(searchPlugin, {
@@ -209,6 +201,10 @@ export default function (eleventyConfig) {
209201
eleventyConfig.addTransform('env-replace', envReplaceTransform);
210202
eleventyConfig.addTransform('element-loader', elementLoaderTransform);
211203
eleventyConfig.addTransform('anchor-generator', anchorGeneratorTransform);
204+
eleventyConfig.addPlugin(HtmlBasePlugin, {
205+
baseHref: process.env.ELEVENTY_RUN_MODE === 'build' ? ELEMENTS_SITE_ORIGIN : '/'
206+
});
207+
eleventyConfig.addTransform('site-urls', siteUrlsTransform);
212208

213209
if (process.env.ELEVENTY_RUN_MODE === 'build') {
214210
eleventyConfig.addTransform('html-minify', htmlMinifyTransform);
@@ -228,14 +224,16 @@ export default function (eleventyConfig) {
228224
*/
229225
eleventyConfig.addCollection('componentDocs', function (collection) {
230226
// https://github.com/11ty/eleventy/issues/3838 each rebuild of any md file triggers all rebuilds of collection
231-
return collection.getFilteredByGlob([
232-
'src/docs/elements/*.md',
233-
'src/docs/elements/data-grid/index.md',
234-
'src/docs/code/*.md',
235-
'src/docs/monaco/*.md',
236-
'src/docs/media/*.md',
237-
'src/docs/markdown/index.md'
238-
]);
227+
return collection
228+
.getFilteredByGlob([
229+
'src/docs/elements/*.md',
230+
'src/docs/elements/data-grid/index.md',
231+
'src/docs/code/*.md',
232+
'src/docs/monaco/*.md',
233+
'src/docs/media/*.md',
234+
'src/docs/markdown/index.md'
235+
])
236+
.filter(page => page.data.tag);
239237
});
240238

241239
// prevent rebuild of api, examples tabs, and example pages on each run
@@ -263,6 +261,7 @@ export default function (eleventyConfig) {
263261
input: 'src',
264262
output: 'dist',
265263
layouts: '_11ty/layouts'
266-
}
264+
},
265+
pathPrefix: BASE_URL
267266
};
268267
}

projects/site/package.json

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@
7070
"ELEMENTS_SITE_URL": {
7171
"external": true,
7272
"default": "https://nvidia.github.io"
73+
},
74+
"LOCAL_PREVIEW": {
75+
"external": true,
76+
"default": "false"
7377
}
7478
}
7579
},
@@ -197,17 +201,17 @@
197201
]
198202
},
199203
"test": {
200-
"command": "vitest run src/_11ty/layouts/metadata.test.ts src/_11ty/shortcodes/api.test.ts",
204+
"command": "vitest run src/_11ty/layouts/metadata.test.ts src/_11ty/layouts/links.test.ts src/_11ty/transforms/site-urls.test.ts src/_11ty/shortcodes/api.test.ts src/_11ty/plugins/llms-txt.test.ts src/_11ty/plugins/sitemap-xml.test.ts",
201205
"files": [
202-
"src/docs/**/*.md",
203-
"src/_11ty/layouts/common.js",
204-
"src/_11ty/layouts/metadata.js",
205-
"src/_11ty/layouts/metadata.test.ts",
206-
"src/_11ty/shortcodes/api.js",
207-
"src/_11ty/shortcodes/api.test.ts",
206+
"src/**/*.js",
207+
"src/**/*.md",
208+
"src/**/*.ts",
208209
"vitest.config.ts"
209210
],
210-
"output": []
211+
"output": [],
212+
"dependencies": [
213+
"build"
214+
]
211215
},
212216
"test:lighthouse": {
213217
"command": "playwright-lock 'vitest run --config=vitest.lighthouse.ts'",
@@ -233,42 +237,43 @@
233237
}
234238
},
235239
"dependencies": {
240+
"3d-force-graph": "1.79.0",
236241
"chart.js": "4.5.1",
237-
"lit": "catalog:",
238-
"3d-force-graph": "1.79.0"
242+
"lit": "catalog:"
239243
},
240244
"devDependencies": {
241245
"@11ty/eleventy": "catalog:",
242246
"@11ty/eleventy-plugin-vite": "catalog:",
243247
"@eslint/js": "catalog:",
244-
"@lit-labs/eleventy-plugin-lit": "catalog:",
245-
"@lit-labs/ssr-client": "catalog:",
246248
"@internals/eslint": "workspace:*",
247249
"@internals/metadata": "workspace:*",
248-
"@internals/tools": "workspace:*",
249250
"@internals/patterns": "workspace:*",
251+
"@internals/tools": "workspace:*",
250252
"@internals/vite": "workspace:*",
253+
"@lit-labs/eleventy-plugin-lit": "catalog:",
254+
"@lit-labs/ssr-client": "catalog:",
251255
"@nvidia-elements/code": "workspace:*",
256+
"@nvidia-elements/core": "workspace:*",
252257
"@nvidia-elements/forms": "workspace:*",
253258
"@nvidia-elements/lint": "workspace:*",
254259
"@nvidia-elements/markdown": "workspace:*",
255260
"@nvidia-elements/media": "workspace:*",
256-
"@nvidia-elements/core": "workspace:*",
257261
"@nvidia-elements/monaco": "workspace:*",
258262
"@nvidia-elements/styles": "workspace:*",
259263
"@nvidia-elements/themes": "workspace:*",
260264
"@vitest/coverage-istanbul": "catalog:",
261265
"compare-versions": "6.1.1",
262266
"eslint": "catalog:",
263-
"stylelint": "catalog:",
264-
"stylelint-config-standard": "catalog:",
265267
"html-minifier-next": "5.2.2",
266268
"lighthouse": "catalog:",
267269
"lightningcss": "1.30.2",
268270
"markdown-it": "catalog:",
269271
"markdown-it-link-attributes": "catalog:",
270272
"pagefind": "1.3.0",
273+
"parse5": "7.1.2",
271274
"playwright": "catalog:",
275+
"stylelint": "catalog:",
276+
"stylelint-config-standard": "catalog:",
272277
"typescript": "catalog:",
273278
"vite": "catalog:",
274279
"vitest": "catalog:"

0 commit comments

Comments
 (0)