This website is built using Docusaurus, a modern static website generator.
Site previews are powered by Netlify and can be viewed in the specific PR.
If you spot any errors or omissions in the site, please open an issue at github.com/llm-d/llm-d.github.io.
This repository contains two types of documentation:
- Local Documentation - Written directly in this repository (blog posts, landing pages, etc.)
- Remote Synced Content - Automatically synced from llm-d/llm-d repository during build
Documentation is automatically synced from the llm-d/llm-d repository during the build process:
-
Main Documentation (
/docs/) - Architecture, guides, API reference, resources- Synced via
preview/scripts/sync-docs.sh - Pulls specific files from
llm-d/llm-d@main - Applies transformations for Docusaurus compatibility
- Synced via
-
Community Documentation (
/docs/community/) - Contributing, Code of Conduct, Security, SIGs- Synced via remote-content plugins in
remote-content/ - Simple markdown files from root of
llm-d/llm-d@main
- Synced via remote-content plugins in
Files with remote content show a "Content Source" banner at the bottom with links to edit the original source.
The primary documentation sync system in preview/scripts/sync-docs.sh:
What it syncs:
- Architecture documentation (
/docs/architecture/) - User guides (
/docs/guides/) - API reference (
/docs/api-reference/) - Resources (
/docs/resources/) - Getting Started (
/docs/getting-started/)
How it works:
- Performs sparse checkout of
llm-d/llm-drepository - Copies specific files to
preview/docs/with explicit path mapping - Applies transformations (tabs, callouts, images, MDX fixes)
- Builds preview site and merges into main site at
/docs
Transformations applied:
- Converts GitHub tab markers to Docusaurus
<Tabs>components - Converts GitHub callouts (
> [!NOTE]) to Docusaurus admonitions - Fixes image paths to point to
/img/docs/ - Fixes HTML tags for MDX compatibility
- Converts HTML comments to JSX comments
See preview/scripts/transformations.sh for transformation details.
A minimal remote-content plugin system for community files:
What it syncs:
- CONTRIBUTING.md β
/docs/community/contribute.md - CODE_OF_CONDUCT.md β
/docs/community/code-of-conduct.md - SECURITY.md β
/docs/community/security.md - SIGS.md β
/docs/community/sigs.md
How it works:
- Uses
docusaurus-plugin-remote-contentto download files - Applies minimal transformations (converts relative links to GitHub URLs)
- Adds frontmatter and source attribution callout
File structure:
remote-content/
βββ remote-content.js # Plugin exports
βββ remote-sources/
βββ repo-transforms.js # Link transformation logic
βββ utils.js # Frontmatter and callout generation
βββ community/ # Individual file configs
βββ contribute.js
βββ code-of-conduct.js
βββ security.js
βββ sigs.js
npm installChoose the development mode based on what content you need:
npm startStarts a live development server with hot reload for fast iteration on:
- Landing pages and blog posts
- Website configuration
- Community docs (synced via remote-content plugin)
Note: Does NOT include main documentation from llm-d/llm-d (architecture, guides, API reference).
# Build everything once (includes all synced docs)
npm run build:all
# Serve the built site
npm run serveThis is the recommended workflow for previewing the complete site locally, including all documentation synced from llm-d/llm-d. Re-run npm run build:all when you need to refresh synced content.
What gets built:
- Main site (landing page, blog, community docs via remote-content)
- Synced documentation from llm-d/llm-d via
preview/scripts/sync-docs.sh - Preview docs site
- Merged build at
build/docs/
This matches exactly what Netlify and GitHub Actions deploy.
npm run build:allGenerates the complete static site into the build/ directory. This is the same command used by:
- Netlify (configured in netlify.toml)
- GitHub Actions (.github/workflows/deploy.yml)
- Local testing (when you want to verify the full build)
Content written directly in this repository:
- Blog posts (
blog/) - Landing pages (
src/pages/) - Website configuration (
docusaurus.config.js)
Edit these files directly in this repository and submit a PR.
Remote content is synced from llm-d/llm-d repository.
To update remote content:
- Find the source file using the "Content Source" banner at the bottom of the page
- Click "edit the source file" to make changes in the llm-d/llm-d repository
- Submit PR to llm-d/llm-d
- Once merged, changes will appear on the website after the next deployment
To add a new community file (e.g., GOVERNANCE.md):
- Create the remote source config at
remote-content/remote-sources/community/governance.js:
import { createContentWithSource, createStandardTransform, getLlmdRepoConfig } from '../utils.js';
const { sourceBaseUrl } = getLlmdRepoConfig();
const contentTransform = createStandardTransform();
export default [
'docusaurus-plugin-remote-content',
{
name: 'governance',
sourceBaseUrl,
outDir: 'community',
documents: ['GOVERNANCE.md'],
noRuntimeDownloads: false,
performCleanup: true,
modifyContent(filename, content) {
if (filename === 'GOVERNANCE.md') {
return createContentWithSource({
title: 'Project Governance',
description: 'Governance structure for the llm-d project',
sidebarLabel: 'Governance',
sidebarPosition: 6,
filename: 'GOVERNANCE.md',
newFilename: 'governance.md',
content,
contentTransform
});
}
return undefined;
},
},
];- Import and add to remote-content.js:
import governanceSource from './remote-sources/community/governance.js';
const remoteContentPlugins = [
contributeSource,
codeOfConductSource,
securitySource,
sigsSource,
governanceSource, // Add here
];- Test locally:
npm run buildMain documentation (architecture, guides, API reference) is synced via preview/scripts/sync-docs.sh.
To add new main documentation:
- Add the file to
llm-d/llm-drepository in the appropriate location - Update
preview/scripts/sync-docs.shto copy the new file - Test the sync:
cd preview ./scripts/sync-docs.sh npm run build
The website is automatically deployed when:
- PRs are merged to
mainbranch - Scheduled rebuild runs (syncs latest content from llm-d/llm-d)
Preview builds are available for all PRs via Netlify.
| Issue | Solution |
|---|---|
| Build errors | Check that all remote sources are accessible from llm-d/llm-d |
| Content not updating | Verify file exists in llm-d/llm-d main branch |
| Links broken | Ensure links use proper Docusaurus paths or GitHub URLs |
| Images not showing | Check image paths in preview/scripts/sync-docs.sh |