Zum Hauptinhalt springen
Version: 0.x

Server Side Rendering

caution

NOTE: This is in Beta. Please add your feedback here

Prerequisites

To enable SSR you have to do 2 things:

Updating your Root theme component

Use the custom ServerStyle component in your Theme Root (as mentioned here) for SSR like below:

src/theme/Root/index.tsx
import React from 'react';

import ServerStyle from '@theme/ServerStyle';

function Root({ children }: { children: React.Component }): JSX.Element {
return (
<>
// TODO: Remove when docusaurus adds proper css-in-js support
<ServerStyle from={children} />
{children}
</>
);
}

export default Root;

Use yaml files rather than urls to load OpenAPI files

To enable SSR we need to parse the schema at build time so it needs to passed on as a yaml and it will be processed to JSON. This has a side-effect of the download button pointing to the JSON, to fix this you can also provide a specUrl to the original url that will be used as the download link.

docusaurs.config.js
const config = {
presets: [
[
'redocusaurus',
{
specs: [
{
spec: 'openapi.yaml',
/**
* This becomes the Download URL in this case, while docs are generated from `spec`
*/
specUrl: `${process.env.DEPLOY_BASE_URL || '/'}openapi-page.yaml`,
routePath: '/examples/using-spec-yaml/',
},
],
theme: {
/**
* Highlight color for docs
*/
primaryColor: '#1890ff',
/**
* Options to pass to redoc
* @see https://github.com/redocly/redoc#redoc-options-object
*/
redocOptions: { hideDownloadButton: false, disableSearch: true },
},
},
],
'@docusaurus/preset-classic',
],
title: 'Redocusaurus',
};