144 lines
3.2 KiB
TypeScript
144 lines
3.2 KiB
TypeScript
import {themes as prismThemes} from 'prism-react-renderer';
|
|
import type {Config} from '@docusaurus/types';
|
|
import type * as Preset from '@docusaurus/preset-classic';
|
|
|
|
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
|
|
|
const config: Config = {
|
|
title: 'Semalibre',
|
|
tagline: 'Why not embed ?',
|
|
favicon: 'img/favicon.png',
|
|
|
|
url: 'https://semalibre.com',
|
|
baseUrl: '/',
|
|
|
|
onBrokenLinks: 'throw',
|
|
onBrokenMarkdownLinks: 'throw',
|
|
onBrokenAnchors: 'throw',
|
|
onDuplicateRoutes: 'throw',
|
|
|
|
future: {
|
|
experimental_faster: true,
|
|
},
|
|
|
|
i18n: {
|
|
defaultLocale: 'en',
|
|
locales: [
|
|
'en',
|
|
// 'fr',
|
|
],
|
|
},
|
|
|
|
presets: [
|
|
[
|
|
'classic',
|
|
{
|
|
docs: {
|
|
sidebarPath: './sidebars.ts',
|
|
routeBasePath: '/',
|
|
},
|
|
blog: {
|
|
showReadingTime: true,
|
|
feedOptions: {
|
|
type: ['rss', 'atom'],
|
|
xslt: true,
|
|
},
|
|
|
|
// Useful options to enforce blogging best practices
|
|
onInlineTags: 'warn',
|
|
onInlineAuthors: 'warn',
|
|
onUntruncatedBlogPosts: 'warn',
|
|
},
|
|
theme: {
|
|
customCss: './src/css/custom.css',
|
|
},
|
|
} satisfies Preset.Options,
|
|
],
|
|
],
|
|
|
|
themeConfig: {
|
|
// Replace with your project's social card
|
|
image: 'img/docusaurus-social-card.jpg', // TODO:
|
|
colorMode: {
|
|
respectPrefersColorScheme: true,
|
|
},
|
|
announcementBar: {
|
|
id: 'beta-docusaurus',
|
|
content: '🛠️ This site is in beta, please report any issues!',
|
|
backgroundColor: 'darkOrange'
|
|
},
|
|
navbar: {
|
|
title: 'Semalibre',
|
|
logo: {
|
|
alt: 'Semalibre Logo',
|
|
src: 'img/logo.svg',
|
|
},
|
|
items: [
|
|
{
|
|
type: 'docSidebar',
|
|
sidebarId: 'teamSidebar',
|
|
position: 'left',
|
|
label: 'The team',
|
|
},
|
|
{to: '/blog', label: 'Blog', position: 'left'},
|
|
{
|
|
href: 'https://git.semalibre.com/semalibre/vitrine',
|
|
label: 'Source',
|
|
position: 'right',
|
|
},
|
|
],
|
|
},
|
|
footer: {
|
|
style: 'dark',
|
|
links: [
|
|
{
|
|
title: 'Contact',
|
|
items: [
|
|
{
|
|
label: 'Email',
|
|
href: 'mailto:contact@semalibre.com',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Infos',
|
|
items: [
|
|
{
|
|
label: 'Git - Forgejo',
|
|
href: 'https://git.semalibre.com/Semalibre',
|
|
},
|
|
{
|
|
label: 'Mentions légales',
|
|
href: '/mentions-legales',
|
|
},
|
|
{
|
|
label: 'Pappers',
|
|
href: 'https://www.pappers.fr/entreprise/syslinbit-897717005',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
copyright: `Copyleft ${new Date().getFullYear()} Syslinbit. Built with Docusaurus.`,
|
|
},
|
|
prism: {
|
|
theme: prismThemes.github,
|
|
darkTheme: prismThemes.dracula,
|
|
additionalLanguages: [
|
|
'bash',
|
|
'c',
|
|
'css',
|
|
'markup-templating',
|
|
'django',
|
|
'lua',
|
|
'nginx',
|
|
'php',
|
|
'ruby',
|
|
'shell-session',
|
|
'toml',
|
|
'yaml'
|
|
],
|
|
},
|
|
} satisfies Preset.ThemeConfig,
|
|
};
|
|
|
|
export default config;
|