openreader/docs-site/docusaurus.config.ts
Richard R 9b9206f50d refactor(audiobooks): migrate audiobook pipeline to object storage
This commit restructures the audiobook generation and serving layer to rely exclusively on S3-compatible blob storage, removing the dependency on local filesystem paths.

- Bundle `ffmpeg` and `ffprobe` binaries via npm to ensure portability across environments.
- Update API routes to stream audio directly from blob storage instead of local disk.
- Remove legacy migration endpoints and filesystem-based indexing logic.
- Add startup scripts to facilitate the transition from local to remote storage.

BREAKING CHANGE: Audiobook functionality is now strictly dependent on S3 configuration. The previous filesystem-based storage method has been removed.
2026-02-11 02:44:34 -07:00

123 lines
2.9 KiB
TypeScript

import { themes as prismThemes } from 'prism-react-renderer';
import type { Config } from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
const config: Config = {
title: 'OpenReader WebUI Docs',
tagline: 'Docs for OpenReader',
favicon: 'favicon.ico',
future: {
v4: true,
},
url: 'https://docs.openreader.richardr.dev',
baseUrl: '/',
organizationName: 'richardr1126',
projectName: 'OpenReader-WebUI',
onBrokenLinks: 'throw',
markdown: {
hooks: {
onBrokenMarkdownLinks: 'throw',
},
},
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
{
docs: {
routeBasePath: '/',
sidebarPath: './sidebars.ts',
editUrl: 'https://github.com/richardr1126/OpenReader-WebUI/tree/main/docs-site/',
// lastVersion: 'current',
// versions: {
// current: {
// label: 'Current',
// },
// },
},
blog: false,
theme: {
customCss: './custom.css',
},
} satisfies Preset.Options,
],
],
plugins: [
[
'@easyops-cn/docusaurus-search-local',
{
indexDocs: true,
indexBlog: false,
docsRouteBasePath: '/',
language: ['en'],
hashed: true,
explicitSearchResultPath: true,
highlightSearchTermsOnTargetPage: true,
},
],
],
themeConfig: {
colorMode: {
defaultMode: 'light',
disableSwitch: false,
respectPrefersColorScheme: true,
},
navbar: {
title: 'OpenReader WebUI',
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Docs',
},
{
type: 'docsVersionDropdown',
position: 'left',
},
{
href: 'https://github.com/richardr1126/OpenReader-WebUI',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
links: [
{
title: 'Community',
items: [
{ label: 'Support', to: '/project/support' },
{ label: 'GitHub Discussions', href: 'https://github.com/richardr1126/OpenReader-WebUI/discussions' },
{ label: 'Issues', href: 'https://github.com/richardr1126/OpenReader-WebUI/issues' },
],
},
{
title: 'Project',
items: [
{ label: 'GitHub', href: 'https://github.com/richardr1126/OpenReader-WebUI' },
{ label: 'Releases', href: 'https://github.com/richardr1126/OpenReader-WebUI/releases' },
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} OpenReader contributors.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};
export default config;