修改与发布内容
本站是静态站点:内容在本地改,构建后上传。服务器上不装 Node 依赖、不跑构建, 原因见文末「为什么不直接在服务器上构建」。
一句话流程
改 Markdown/配置 → 双击 publish.cmd → 完成
文件在哪
| 内容 | 位置 |
|---|---|
| 源码工程 | 本机 C:\Users\Administrator\ds-build\wiki |
| 文档正文 | 工程的 docs/ 目录(.mdx / .md) |
| 首页 | src/pages/index.js |
| 导航栏 / 页脚 / 站点信息 | docusaurus.config.js |
| 侧边栏顺序 | 每个文档 front matter 里的 sidebar_position |
| 图片 | static/img/,引用时写 /img/xxx.png |
1. 改一篇已有文档
直接编辑 docs/ 下对应的 .mdx 文件,例如 docs/jianjie.mdx。
文件顶部是 front matter,决定标题、排序和地址:
---
id: intro
title: 简介
sidebar_position: 1
slug: /jianjie # 最终地址 = /jianjie/
---
2. 新增一篇文档
在 docs/ 里新建 something.mdx 即可,侧边栏是自动生成的,不需要改别的地方:
---
title: 新页面标题
sidebar_position: 5
---
# 新页面标题
正文内容……
- 想要「分组」,就在
docs/下建子目录,目录里放_category_.json定义组名和排序。 - 想要文章内跳转,用
/xxx形式的绝对路径(构建时会校验,写错会直接构建失败)。
3. 改导航栏、页脚、标题
编辑 docusaurus.config.js:title / tagline 在顶部,菜单项在 themeConfig.navbar.items,
页脚在 themeConfig.footer。
4. 发布
在工程目录双击 publish.cmd(或在命令行里执行它)。它会依次:
- 调用本地 Node 执行
npm run build,产物在build/; - 用 scp 把产物上传到服务器
/tmp/wiki-build-new/; - 在服务器执行
/root/wiki-deploy/deploy-static.sh:备份当前站点 →rsync同步 →chown www:www→ 清理超过 5 份的旧备份。
构建失败时脚本会中止,线上不会变动。
5. 回滚
每次发布都会在服务器留一份备份:
ls -1dt /www/wwwroot/wiki.altcheats.com.bak-* | head
# 回滚:把备份目录内容覆盖回正式目录
rsync -a --delete /www/wwwroot/wiki.altcheats.com.bak-20261030-004512/ /www/wwwroot/wiki.altcheats.com/
chown -R www:www /www/wwwroot/wiki.altcheats.com
常见坑
- 提示框标题要用方括号:写
:::tip[标题],不能写:::tip 标题,后者会被原样输出。 这是 MDX v3 的语法限制。 onBrokenLinks: 'throw':文档里写了不存在的站内链接,构建会失败,这是故意的。 需要放宽就改成'warn'。- URL 带尾斜杠:已开启
trailingSlash: true,页面地址统一为/xxx/。 - 不要在宝塔面板里保存该站点的 PHP 设置,会覆盖 Nginx 配置。
为什么不直接在服务器上构建
服务器总共 3.6G 内存,OpenClaw 网关常驻约占 1.5G,另外还有 MySQL、PHP-FPM、宝塔面板。
npm install 加构建的峰值内存很容易触发内核 OOM,而 OOM killer 会优先杀常驻内存最大的进程
——通常就是 OpenClaw。所以构建放在本地,服务器只接收静态文件。