Merge pull request #26355 from backstage/rugvip/versioned-docs

microsite: add documentation versioning
This commit is contained in:
Johan Haals
2024-09-04 09:20:19 +02:00
committed by GitHub
5 changed files with 276 additions and 63 deletions
+63 -5
View File
@@ -21,9 +21,38 @@
import { themes } from 'prism-react-renderer';
import type * as Preset from '@docusaurus/preset-classic';
import { Config } from '@docusaurus/types';
import RedirectPlugin from '@docusaurus/plugin-client-redirects';
const backstageTheme = themes.vsDark;
backstageTheme.plain.backgroundColor = '#232323';
const useVersionedDocs = require('fs').existsSync('versions.json');
// This patches the redirect plugin to ignore the error when it tries to override existing fields.
// This lets us add redirects that only apply to the next docs, while the stable docs still contain the source path.
const PatchedRedirectPlugin: typeof RedirectPlugin = (ctx, opts) => {
const plugin = RedirectPlugin(ctx, opts);
return {
...plugin,
async postBuild(...args) {
try {
await plugin.postBuild(...args);
} catch (error) {
if (
error.message ===
'The redirect plugin is not supposed to override existing files.'
) {
// Bit of a hack to make sure all remaining redirects are written, since the write uses Promise.all
await new Promise(resolve => setTimeout(resolve, 1000));
} else {
throw error;
}
}
},
};
};
const config: Config = {
title: 'Backstage Software Catalog and Developer Platform',
tagline: 'An open source framework for building developer portals',
@@ -57,6 +86,26 @@ const config: Config = {
editUrl: 'https://github.com/backstage/backstage/edit/master/docs/',
path: '../docs',
sidebarPath: 'sidebars.json',
...(useVersionedDocs
? {
includeCurrentVersion: true,
lastVersion: 'stable',
versions: {
stable: {
label: 'Stable',
path: '/',
banner: 'none',
badge: false,
},
current: {
label: 'Next',
path: '/next',
banner: 'unreleased',
badge: true,
},
},
}
: undefined),
},
blog: {
path: 'blog',
@@ -119,9 +168,11 @@ const config: Config = {
};
},
}),
[
'@docusaurus/plugin-client-redirects',
{
ctx =>
PatchedRedirectPlugin(ctx, {
id: '@docusaurus/plugin-client-redirects',
toExtensions: [],
fromExtensions: [],
redirects: [
{
from: '/docs',
@@ -200,8 +251,7 @@ const config: Config = {
to: '/docs/backend-system/core-services/url-reader',
},
],
},
],
}),
[
'docusaurus-pushfeedback',
{
@@ -259,6 +309,14 @@ const config: Config = {
label: 'Community',
position: 'left',
},
...(useVersionedDocs
? [
{
type: 'docsVersionDropdown',
position: 'right' as const,
},
]
: []),
],
},
image: 'img/sharing-opengraph.png',
+35 -35
View File
@@ -1,39 +1,4 @@
{
"releases": {
"Release Notes": [
"releases/v1.30.0",
"releases/v1.29.0",
"releases/v1.28.0",
"releases/v1.27.0",
"releases/v1.26.0",
"releases/v1.25.0",
"releases/v1.24.0",
"releases/v1.23.0",
"releases/v1.22.0",
"releases/v1.21.0",
"releases/v1.20.0",
"releases/v1.19.0",
"releases/v1.18.0",
"releases/v1.17.0",
"releases/v1.16.0",
"releases/v1.15.0",
"releases/v1.14.0",
"releases/v1.13.0",
"releases/v1.12.0",
"releases/v1.11.0",
"releases/v1.10.0",
"releases/v1.9.0",
"releases/v1.8.0",
"releases/v1.7.0",
"releases/v1.6.0",
"releases/v1.5.0",
"releases/v1.4.0",
"releases/v1.3.0",
"releases/v1.2.0",
"releases/v1.1.0",
"releases/v1.0.0"
]
},
"docs": {
"Overview": [
"overview/what-is-backstage",
@@ -556,5 +521,40 @@
"contribute/project-structure"
],
"References": ["references/glossary"]
},
"releases": {
"Release Notes": [
"releases/v1.30.0",
"releases/v1.29.0",
"releases/v1.28.0",
"releases/v1.27.0",
"releases/v1.26.0",
"releases/v1.25.0",
"releases/v1.24.0",
"releases/v1.23.0",
"releases/v1.22.0",
"releases/v1.21.0",
"releases/v1.20.0",
"releases/v1.19.0",
"releases/v1.18.0",
"releases/v1.17.0",
"releases/v1.16.0",
"releases/v1.15.0",
"releases/v1.14.0",
"releases/v1.13.0",
"releases/v1.12.0",
"releases/v1.11.0",
"releases/v1.10.0",
"releases/v1.9.0",
"releases/v1.8.0",
"releases/v1.7.0",
"releases/v1.6.0",
"releases/v1.5.0",
"releases/v1.4.0",
"releases/v1.3.0",
"releases/v1.2.0",
"releases/v1.1.0",
"releases/v1.0.0"
]
}
}