返回文档首页

Footer 配置

通过 zship.app.json 配置 Footer 的品牌文案、联系邮箱、社交链接、导航栏目、法律声明与版权信息。

web-nuxt 的 Footer 是配置驱动的。请编辑 apps/web-nuxt/zship.app.json,并把 Footer 相关内容放在顶层 footer 对象里。

不要把 Footer 文案、链接或法律说明硬编码进 LandingFooter.vue。组件只负责渲染 siteConfig.footer

{
  "footer": {
    "brandDisplay": "logo-and-site-name",
    "contactEmail": "[email protected]",
    "description": [
      {
        "en": "Short product promise for the footer.",
        "zh-CN": "底部展示的简短产品说明。"
      }
    ],
    "socialLinks": [
      {
        "labelKey": "footer_github",
        "to": "https://github.com/your-org/your-repo",
        "external": true,
        "icon": "i-simple-icons-github"
      }
    ],
    "sections": [
      {
        "titleKey": "footer_section_product",
        "items": [
          {
            "labelKey": "nav_pricing",
            "to": "/pricing"
          }
        ]
      }
    ],
    "disclaimer": [
      {
        "en": "Optional legal or trademark disclaimer.",
        "zh-CN": "可选的法律或商标免责声明。"
      }
    ],
    "copyright": "© {year} {siteName}"
  }
}

字段说明

  • brandDisplay:控制品牌展示方式,可选 logo-and-site-namelogo-onlysite-name-only
  • contactEmail:Footer 专用联系邮箱。设为空字符串可以隐藏邮箱行;如果省略该字段,会回退到顶层 contactEmail
  • description:Footer 左侧的描述文案,可以配置多行。多语言站点建议使用 localized object。
  • socialLinks:邮箱下方的社交图标按钮。每一项需要 toicon,以及 labelKey 或多语言 label。设为空数组可以隐藏所有社交按钮。
  • sections:右侧导航列。每个栏目使用 titleKeylabel,每个链接使用 labelKeylabelto
  • disclaimer:底部法律或商标声明。设为空数组可以隐藏。
  • copyright:底部左侧版权文案,支持 {year}{siteName}{brandName}。设为空字符串可以隐藏。

标签与多语言

已有翻译建议复用 apps/web-nuxt/app/i18n/ui.json 里的 labelKey

{
  "labelKey": "footer_support",
  "to": "/docs/support-and-refund"
}

产品专属链接可以直接写多语言 label

{
  "label": {
    "en": "Changelog",
    "zh-CN": "更新日志"
  },
  "to": "/blog/changelog"
}

多语言对象可以包含 enzh-CNzh-TWdefault。如果当前语言缺失,系统会回退到默认语言或第一个非空值。

链接规则

  • 站内路由以 / 开头,例如 /pricing/docs/quick-start
  • 页面锚点可以写成 /#section-id
  • 外部链接需要设置 "external": true
  • /llms.txt 这类站内非页面资源可以设置 "localize": false,保留原始 URL。
  • 可以使用 mailto: 链接,但 Footer 邮箱通常建议用 footer.contactEmail 管理。

上线检查清单

正式发布前请确认:

  • footer.description 不再保留模板占位文案。
  • footer.contactEmail 指向真实支持邮箱。
  • 所有 footer.sections[].items[].to 都是存在的路由。
  • 外部链接指向正确的品牌账号。
  • footer.disclaimer 符合你的法律与商标使用策略。
  • 执行 pnpm --filter @zship/web-nuxt exec nuxt prepare