Skip to content

侧边栏

侧边栏布局配置控制站点的侧边栏显示位置和组件排列。

配置文件

src/config/sidebarConfig.ts

布局配置

属性类型默认值说明
enablebooleantrue是否启用侧边栏
positionstring"both"侧边栏位置:"left" 左侧、"right" 右侧、"both" 双侧
tabletSidebarstring"left"平板端(769-1279px)显示哪侧,仅 position"both" 时生效
showBothSidebarsOnPostPagebooleantrue单侧栏时,是否在文章详情页显示双侧边栏
ts
export const sidebarLayoutConfig: SidebarLayoutConfig = {
  enable: true,
  position: "both",
  tabletSidebar: "left",
  showBothSidebarsOnPostPage: true,
  // ...
};

组件配置

每个侧边栏组件支持以下属性:

属性类型必填说明
typestring组件类型
enableboolean是否启用
positionstring位置:"top" 固定顶部,"sticky" 粘性定位
showOnPostPageboolean是否在文章详情页显示
showOnNonPostPageboolean是否在非文章详情页显示
configIdstring配置 ID(广告组件使用)
responsiveobject响应式配置

可用组件类型

类型说明
"profile"用户资料组件
"announcement"公告组件
"music"音乐播放器
"categories"分类组件
"tags"标签组件
"stats"站点统计
"calendar"日历组件
"sidebarToc"侧边栏目录(文章页专用)
"advertisement"广告组件

TIP

组件的渲染顺序取决于它们在配置数组中的顺序,但 position: "top" 的组件会优先于 position: "sticky" 的组件渲染。

左侧边栏配置示例

ts
leftComponents: [
  {
    type: "profile",
    enable: true,
    position: "top",
    showOnPostPage: true,
  },
  {
    type: "announcement",
    enable: true,
    position: "top",
    showOnPostPage: true,
  },
  {
    type: "music",
    enable: true,
    position: "sticky",
    showOnPostPage: true,
  },
  {
    type: "categories",
    enable: true,
    position: "sticky",
    showOnPostPage: true,
    responsive: {
      collapseThreshold: 5, // 超过 5 个分类时自动折叠
    },
  },
  {
    type: "tags",
    enable: true,
    position: "sticky",
    showOnPostPage: true,
    responsive: {
      collapseThreshold: 20, // 超过 20 个标签时自动折叠
    },
  },
],

右侧边栏配置示例

ts
rightComponents: [
  {
    type: "stats",
    enable: true,
    position: "top",
    showOnPostPage: true,
  },
  {
    type: "calendar",
    enable: true,
    position: "sticky",
    showOnPostPage: false,
  },
  {
    type: "sidebarToc",
    enable: true,
    position: "sticky",
    showOnPostPage: true,
    showOnNonPostPage: false,
  },
],

移动端底部组件

在移动端(< 768px),侧边栏组件会显示在页面底部。使用 mobileBottomComponents 单独配置:

ts
mobileBottomComponents: [
  { type: "profile", enable: true, showOnPostPage: true },
  { type: "announcement", enable: true, showOnPostPage: true },
  { type: "music", enable: true, showOnPostPage: true },
  { type: "categories", enable: true, showOnPostPage: true, responsive: { collapseThreshold: 5 } },
  { type: "tags", enable: true, showOnPostPage: true, responsive: { collapseThreshold: 20 } },
  { type: "stats", enable: true, showOnPostPage: true },
],

WARNING

移动端底部组件配置独立于左右侧边栏配置,需要单独设置。