wasp/web/docusaurus.config.js
2023-09-04 13:43:19 +02:00

246 lines
7.0 KiB
JavaScript

const lightCodeTheme = require("prism-react-renderer/themes/github");
const autoImportTabs = require("./src/remark/auto-import-tabs");
const fileExtSwitcher = require("./src/remark/file-ext-switcher");
/** @type {import('@docusaurus/types').DocusaurusConfig} */
module.exports = {
title: "Wasp",
tagline:
"A simple language for developing full-stack web apps with less code.",
// url, baseUrl, organizationName, projectName and trailingSlash are set according to the
// instructions in https://docusaurus.io/docs/deployment#deploying-to-github-pages .
url: "https://wasp-lang.dev",
baseUrl: "/", // Should be name of repo if hosted on Github Pages, but can be just '/' if custom domain is used.
organizationName: "wasp-lang", // Should be GitHub org/user name if hosted on Github Pages.
projectName: "wasp", // Should be repo name if hosted on Github Pages.
trailingSlash: false,
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
favicon: "img/favicon.ico",
stylesheets: [
"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap",
],
themeConfig: {
/*
announcementBar: {
id: 'Beta_is_here',
content: 'Wasp Hackathon #1 is underway! 🚀 <a href="https://betathon.wasp-lang.dev/">Join now</a>',
backgroundColor: '#eab307',
textColor: '#fff',
isCloseable: false,
},
*/
imageZoom: {
// CSS selector to apply the plugin to, defaults to '.markdown img'
//selector: '.markdown img',
// Optional medium-zoom options
// see: https://www.npmjs.com/package/medium-zoom#options
options: {
/*
margin: 24,
background: '#BADA55',
scrollOffset: 0,
container: '#zoom-container',
template: '#zoom-template',
*/
},
},
navbar: {
title: ".wasp (beta)",
logo: {
alt: "Wasp logo",
src: "img/wasp-logo-eqpar-circle.png",
},
items: [
{
to: "docs/",
activeBasePath: "docs",
label: "Docs",
position: "left",
className: "navbar-item-docs navbar-item-outside",
},
{
to: "blog",
label: "Blog",
position: "left",
},
{
href: "https://github.com/wasp-lang/wasp",
className: "navbar-item-github",
position: "right",
},
{
href: "https://twitter.com/WaspLang",
className: "navbar-item-twitter",
position: "right",
},
{
href: "https://discord.gg/rzdnErX",
className: "navbar-item-discord",
position: "right",
},
],
},
prism: {
additionalLanguages: ["shell-session", "haskell"],
theme: lightCodeTheme,
},
footer: {
style: "dark",
links: [
{
title: "Docs",
items: [
{
label: "Getting started",
to: "docs",
},
{
label: "Todo app tutorial",
to: "docs/tutorial/create",
},
{
label: "Reference",
to: "docs/language/features",
},
],
},
{
title: "Community",
items: [
{
label: "Discord",
href: "https://discord.gg/rzdnErX",
},
],
},
{
title: "More",
items: [
{
label: "GitHub",
href: "https://github.com/wasp-lang/wasp",
},
{
label: "Contact",
to: "docs/contact",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Wasp.`,
},
algolia: {
appId: "RG0JSZOWH4",
apiKey: "feaa2a25dc596d40418c82cd040e2cbe",
indexName: "wasp-lang",
// TODO: contextualSearch is useful when you are doing versioning,
// it searches only in v1 docs if you are searching from v1 docs.
// We should enable it if we start doing versioning.
// contextualSearch: true
},
image: "img/wasp_twitter_cover.png",
metadata: [{ name: "twitter:card", content: "summary_large_image" }],
},
presets: [
[
"@docusaurus/preset-classic",
{
gtag: {
trackingID: "GTM-PQ4JFCK",
anonymizeIP: true,
},
docs: {
sidebarPath: require.resolve("./sidebars.js"),
sidebarCollapsible: true,
// Please change this to your repo.
editUrl: "https://github.com/wasp-lang/wasp/edit/release/web",
remarkPlugins: [autoImportTabs, fileExtSwitcher],
},
blog: {
showReadingTime: true,
// Please change this to your repo.
blogSidebarCount: "ALL",
blogSidebarTitle: "All our posts",
postsPerPage: "ALL",
editUrl: "https://github.com/wasp-lang/wasp/edit/release/web",
},
theme: {
customCss: [require.resolve("./src/css/custom.css")],
},
},
],
],
scripts: ["/scripts/posthog.js", "/js/fix-multiple-trailing-slashes.js"],
plugins: [
"plugin-image-zoom",
async function myPlugin(context, options) {
return {
name: "docusaurus-tailwindcss",
configurePostCss(postcssOptions) {
// Appends TailwindCSS and AutoPrefixer.
postcssOptions.plugins.push(require("tailwindcss"));
postcssOptions.plugins.push(require("autoprefixer"));
return postcssOptions;
},
};
},
[
'@docusaurus/plugin-client-redirects',
{
redirects: [
{
from: '/docs/guides/auth-ui',
to: '/docs/auth/ui',
},
{
from: '/docs/deploying',
to: '/docs/advanced/deployment/overview',
},
{
from: '/docs/guides/username-password',
to: '/docs/auth/username-and-pass',
},
{
from: '/docs/guides/websockets',
to: '/docs/advanced/web-sockets',
},
{
from: '/docs/guides/testing',
to: '/docs/project/testing',
},
{
from: '/docs/guides/middleware-customization',
to: '/docs/advanced/middleware-config',
},
{
from: '/docs/guides/email-auth',
to: '/docs/auth/email'
},
{
from: '/docs/guides/crud',
to: '/docs/data-model/crud',
},
{
from: '/docs/integrations/google',
to: '/docs/auth/social-auth/google',
},
{
from: '/docs/integrations/github',
to: '/docs/auth/social-auth/github',
},
{
from: '/docs/integrations/css-frameworks',
to: '/docs/project/css-frameworks',
},
{
from: '/docs/tutorials/todo-app',
to: '/docs/tutorial/create',
},
],
},
],
],
};