配置

View source
学习如何通过 app.config.tsnuxt.config.ts 文件自定义您的 Movk Nuxt Docs 文档,涵盖 SEO、头部、页脚、目录及 GitHub 集成等。

Movk Nuxt Docs 允许您通过 Nuxt 提供的 app.config.ts 文件来配置您的文档。

若要覆盖应用配置,您需要同时创建一个 nuxt.config.ts 文件。否则,您的更改将不会生效。

SEO

全局配置

app.config.ts 文件中为您的整个文档定义默认的 SEO 元数据。

您还可以从 nuxt.config.ts 文件配置 site.name,其默认值基于您 package.json 中的 name 字段。

export default defineAppConfig({
  seo: {
    // 默认为 `%s - ${site.name}`
    titleTemplate: '',
    // 默认为 package.json 的 name 字段
    title: '',
    // 默认为 package.json 的 description 字段
    description: '',
  },
})

按页面配置

content/ 目录中的每个 Markdown 文件都以一个 Front-Matter 块 (---) 开头。您可以通过 seo 键为每个页面单独定义 SEO 元数据:

content/concepts/configuration.md
---
seo:
  title: '配置'
  description: '通过 Nuxt 应用配置文件自定义您的 Movk Nuxt Docs 文档。'
---

<!-- 页面内容 -->
有关 Front-Matter 的更多信息,请参阅 Nuxt Content 指南。

头部 (Header)

app.config.ts
export default defineAppConfig({
  header: {
    title: '', // 标题
    to: '/', // 标题链接
    search: true, // 显示搜索栏
    colorMode: true, // 显示颜色模式切换器
    links: ButtonProps[], // 头部链接按钮
  },
})
app.config.ts
export default defineAppConfig({
  footer: {
    // 版权信息
    credits: `Copyright © 2024 - ${new Date().getFullYear()} YiXuan - <span class="text-highlighted">MIT License</span>`,
    // 页脚社交媒体图标链接
    socials: [
      {
        icon: 'i-lucide-brain',
        to: 'https://docs.mhaibaraai.cn/llms.txt',
        target: '_blank',
        label: 'Open LLMs',
      },
    ],
  },
})

目录 (TOC)

您可以自定义每个页面右侧的内容目录(Table of Contents)。

app.config.ts
export default defineAppConfig({
  toc: {
    // 自定义目录标题
    title: '本页内容',
    // 在目录底部添加一个区域
    bottom: {
      title: '社区',
      links: [{
        icon: 'i-lucide-book-open',
        label: 'Nuxt UI 文档',
        to: 'https://ui.nuxt.com/getting-started/installation/nuxt',
        target: '_blank',
      }],
    },
  },
})

GitHub 集成

Movk Nuxt Docs 使用 git-url-parse 来获取您仓库的 urlbranch,以便添加以下功能:

  • 头部和页脚的 GitHub 图标
  • 每个页面页脚的“在 GitHub 上编辑此页”和“报告问题”链接

您可以通过在 app.config.ts 文件中添加以下配置,来自定义文档应用的 urlbranchrootDir

app.config.ts
export default defineAppConfig({
  github: {
    branch: 'main',
    rootDir: 'docs',
  },
})

如果您不希望使用 GitHub 集成,可以将 github 键设置为 false 来禁用它。

app.config.ts
export default defineAppConfig({
  github: false,
})

useHeader

通过 composables/useHeader 可组合项,您可以访问并自定义 Movk Nuxt Docs 头部的配置。

composables/useHeader.ts
export function useHeader() {
  const route = useRoute()

  const desktopLinks = computed(() => [{
    label: '文档',
    to: '/docs/getting-started',
    active: route.path.startsWith('/docs/'),
  }, {
    label: '发布版本',
    to: '/releases',
  }])

  const mobileLinks = computed(() => [{
    label: '快速开始',
    icon: 'i-lucide-square-play',
    to: '/docs/getting-started',
    active: route.path.startsWith('/docs/getting-started'),
  }, {
    label: '基础',
    icon: 'i-lucide-book-open',
    to: '/docs/essentials',
    active: route.path.startsWith('/docs/essentials'),
  }, {
    label: 'Composables',
    icon: 'i-lucide-square-function',
    to: '/docs/composables',
    active: route.path.startsWith('/docs/composables'),
  }, {
    label: '发布版本',
    icon: 'i-lucide-newspaper',
    to: '/releases',
  }, {
    label: 'GitHub',
    to: 'https://github.com/mhaibaraai/movk-nuxt-docs',
    icon: 'i-simple-icons-github',
    target: '_blank',
  }])

  return {
    desktopLinks,
    mobileLinks,
  }
}

useCategory

通过 composables/useCategory 可组合项,您可以为 docs 目录下的页面定义分类。

composables/useCategory.ts
export function useCategory() {
  const categories = {
    'getting-started': [
      {
        id: 'core-concepts',
        title: '核心概念',
        icon: 'i-lucide-settings'
      }
    ],
    'components': [
      {
        id: 'components',
        title: 'Components',
        icon: 'i-lucide-layout-dashboard'
      },
      {
        id: 'example',
        title: 'Example',
        icon: 'i-lucide-box'
      }
    ]
  }
  return {
    categories
  }
}
Copyright © 2024 - 2025