API

基本配置

base

  • 类型: string
  • 默认值: /

部署站点的基础路径,如果你想让你的网站部署到一个子路径下,你将需要设置它。如 GitHub pages,如果你想将你的网站部署到 https://foo.github.io/bar/,那么 base 应该被设置成 "/bar/",它的值应当总是以斜杠开始,并以斜杠结束。

base 将会作为前缀自动地插入到所有以 / 开始的其他选项的链接中,所以你只需要指定一次。

title

  • 类型: string
  • 默认值: undefined

网站的标题,它将会被用作所有页面标题的前缀,同时,默认主题下,它将显示在导航栏(navbar)上。

meta

  • 类型: string
  • 默认值: {}

渲染网站的 <meta> 标签到当前页面的 HTML 中。比如配置 meta: {description: '文档工具'},渲染 <meta name="description" content="文档工具">

html-webpack-plugin的 meta 配置项。

  • 类型: Array
  • 默认值: []

额外的需要被注入到当前页面的 HTML <head> 中的标签,每个标签都可以以 [tagName, { attrName: attrValue }, innerHTML?] 的格式指定,举个例子,增加一个自定义的 favicon:

module.exports = {
    head: [
        ['link', { rel: 'icon', href: '/logo.png' }]
    ]
}

host

  • 类型: string
  • 默认值: '0.0.0.0'

指定用于 dev server 的主机名。

port

  • 类型: number
  • 默认值: 8080

指定 dev server 的端口。

open

  • 类型: boolean
  • 默认值: true

自动打开调试窗口。

dest

  • 类型: string
  • 默认值: .sdoc/dist

指定 sdoc build 的输出目录。如果传入的是相对路径,则会基于 process.cwd() 进行解析。

Styling

index.less

SDoc 提供了一种添加额外样式的简便方法。你可以创建一个 .sdoc/styles/index.less 文件。这是一个 Less文件,但你也可以使用正常的 CSS 语法。

.content {
    font-size 30px;
}

vars.less

你可以创建一个 .sdoc/styles/vars.less 文件。可以调整的一些变量如下:

// 字体
@font-family: Trebuchet MS, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica,
    Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
@code-family: 'Lucida Console', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
@font-size-base: 16px;

// 颜色
@primary-color: #2196f3;
@green-6: #52c41a;
@site-border-color-split: #ebedf0;
@site-heading-color: #0d1a26;
@site-text-color: #314659;
@site-text-color-secondary: #697b8c;

// 样式
@border-radius-sm: 2px;
@border-radius-lg: 12px;
@border-radius: 6px;
@line-height-base: 1.5;

警告

你应该只在这个文件中定义变量。因为 vars.less 将在根的 less 配置文件的末尾引入,作为配置,它将被多个文件使用,所以一旦你在这里写了样式,你的样式就会被多次复制。

主题

theme

  • 类型: string
  • 默认值: undefined

当你使用自定义主题的时候,需要指定它。

themeConfig

  • 类型: Object
  • 默认值: {}

为当前的主题提供一些配置,这些选项依赖于你正在使用的主题。

也可以参考:

构建流程

configureWebpack

  • 类型: Object | Function
  • 默认值: undefined

用于修改内部的 Webpack 配置。如果给定一个对象,那么它将会被 webpack-merge合并到最终的配置中,如果给定一个函数,它将会接受 config 作为第一个参数,以及 isServer 作为第二个参数,你可以直接更改 config,也可以返回一个待合并的对象。

module.exports = {
    configureWebpack: (config, isServer) => {
        if (!isServer) {
          // 修改客户端的 webpack 配置
        }
    }
}

chainWebpack

  • 类型: Function
  • 默认值: undefined

通过 webpack-chain来修改内部的 Webpack 配置。

module.exports = {
    chainWebpack: (config) => {
        // config 是 ChainableConfig 的一个实例
    }
}

postcss

  • 类型: Object
  • 默认值: { plugins: [require('autoprefixer')] }

postcss-loader的选项,请注意,指定这个值,将会覆盖内置的 autoprefixer,所以你需要自己将它加进去。

stylus

  • 类型: Object
  • 默认值: { preferPathResolver: 'webpack' }

stylus-loader的选项。

scss

  • 类型: Object
  • 默认值: {}

加载 *.scss 文件的 sass-loader的选项。

sass

  • 类型: Object
  • 默认值: { indentedSyntax: true }

加载 *.sass 文件的 sass-loader的选项。

less

  • 类型: Object
  • Default: {}

less-loader的选项。