文档库

文档站搭建

从依赖安装到本地预览,快速启动一个通用的 Doks/Hugo 文档站。

官方参考

这类站点的核心思路是:用 Hugo 生成静态页面,用 Doks 提供文档主题、导航、搜索、短代码和样式体系。

适用场景

当需要整理教程、记录部署流程、修改页面样式或发布前检查时,按本文流程启动文档站。

文档站主要负责沉淀三类内容:

  • 导航站的维护方法。
  • 文档站自己的搭建和发布方法。
  • Halo2 博客的部署、运维和排障方法。

环境准备

需要具备:

  • Node.js LTS,用于运行 npm 脚本。
  • npm,用于安装前端依赖。
  • Git,用于提交和推送。
  • 项目内置 Hugo,由 hugo-installer 安装到 node_modules/.bin/hugo

检查版本:

node --version
npm --version
git --version

进入项目:

cd ~/projects/doks-site

安装依赖

首次拉取项目,或者 node_modules/ 不存在时:

npm install

如果依赖损坏,可以重新安装:

npm run clean:install
npm install

启动本地服务

Doks 官方新项目通常使用 npm run dev 启动开发服务。维护已有项目时,优先查看 package.json 里的 scripts,按项目实际脚本执行。

本项目常见默认启动:

npm run start

指定端口:

npm run start -- --port 1324

常用访问地址:

http://localhost:1324/
http://localhost:1324/docs/
端口被占用怎么办?

换一个端口即可,例如:

npm run start -- --port 1325

如果要查占用进程:

lsof -i :1324

目录结构

常改位置:

路径用途
content/en/docs/文档内容
content/en/blog/博客类内容
layouts/index.html首页结构
layouts/docs/文档页模板
layouts/partials/sidebar/侧边栏和目录
layouts/partials/header/顶部导航
layouts/partials/footer/页脚
assets/scss/主题样式
assets/js/前端脚本
config/_default/menus/menus.en.toml菜单配置

新增文档

文档页放在 content/en/docs/ 下。每个栏目一个目录:

content/en/docs/webstack/
content/en/docs/help/
content/en/docs/halo/

新增页面需要 front matter:

---
title: "页面标题"
description: "页面描述"
lead: "页面导语"
date: 2026-06-10T16:20:00+08:00
lastmod: 2026-06-10T16:20:00+08:00
draft: false
images: []
menu:
  docs:
    parent: "help"
weight: 640
toc: true
---

字段说明:

字段说明
title页面标题
descriptionSEO 和列表描述
lead页面标题下方导语
menu.docs.parent所属左侧栏目
weight栏目内排序
toc是否显示右侧目录

Markdown 规范

建议:

  • ## 开始组织正文标题。
  • 命令统一使用代码块。
  • 路径、文件名、变量名使用行内代码。
  • 一屏内不要堆太多项目符号,必要时拆成表格。
  • 真实密码、Token、Cookie、数据库文件不要写进文档。

常用提示块:

{{< alert icon="i" text="这里写提示内容。" >}}

折叠详情:

{{< details "标题" >}}
这里写展开内容。
{{< /details >}}

本地检查

每次修改后至少检查:

  • 首页:/
  • 文档索引:/docs/
  • 导航站文档:/docs/webstack/introduction/
  • 文档站文档:/docs/help/start/
  • Halo2 文档:/docs/halo/deployment/

重点看:

  • 左侧导航是否展开正确。
  • 右侧目录是否匹配标题。
  • 代码块是否可读。
  • 提示块是否不贴边。
  • 深色模式是否保持可读。
  • 手机宽度下导航是否正常。

构建检查

提交前执行:

npm run lint
npm run build

如果只改样式,可以先跑:

npm run lint:styles

构建输出在 public/。它只是本地构建结果,不代表线上站点已经更新。