Skip to main content

defineConfig

The defineConfig function provides type-safe configuration for your Doom documentation site. It accepts an Rspress configuration object and returns it with full TypeScript support.

Import

import { defineConfig } from 'doom'

Usage

Create a doom.config.ts file in your project root:
import { defineConfig } from 'doom'

export default defineConfig({
  root: 'docs',
  title: 'My Documentation',
  description: 'My product documentation',
  icon: '/favicon.ico',
  logo: {
    light: '/logo-light.svg',
    dark: '/logo-dark.svg'
  },
  themeConfig: {
    sidebar: {
      '/guide/': [
        {
          text: 'Getting Started',
          items: [
            { text: 'Introduction', link: '/guide/introduction' },
            { text: 'Installation', link: '/guide/installation' }
          ]
        }
      ]
    }
  }
})

Type Definition

export const defineConfig = (config: Config) => config
config
Config
required
The configuration object conforming to Rspress’s Config type. See Rspress Configuration for all available options.
return
Config
Returns the same configuration object with type inference support

Configuration Schema

The Config type includes all Rspress configuration options. Common properties:
root
string
default:"docs"
Root directory for documentation source files
title
string
Site title displayed in browser tab and header
description
string
Site description for SEO meta tags
icon
string
Path to favicon file
Logo image path or separate logos for light/dark themes
themeConfig
ThemeConfig
Theme-specific configuration including sidebar, navbar, and footer
locales
Locale[]
Multi-language configuration for internationalization
plugins
Plugin[]
Array of Rspress plugins to extend functionality
markdown
MarkdownOptions
Markdown processing configuration

Example with Multiple Locales

import { defineConfig } from 'doom'

export default defineConfig({
  root: 'docs',
  title: 'My Docs',
  locales: [
    {
      lang: 'en',
      label: 'English',
      title: 'My Documentation',
      description: 'Product documentation'
    },
    {
      lang: 'zh',
      label: '中文',
      title: '我的文档',
      description: '产品文档'
    }
  ],
  themeConfig: {
    locales: [
      {
        lang: 'en',
        nav: [
          { text: 'Guide', link: '/guide/' },
          { text: 'API', link: '/api/' }
        ]
      },
      {
        lang: 'zh',
        nav: [
          { text: '指南', link: '/zh/guide/' },
          { text: 'API', link: '/zh/api/' }
        ]
      }
    ]
  }
})

See Also

Build docs developers (and LLMs) love