PMOPM 知识库
基于 Docusaurus 搭建的静态知识库,用 Markdown 写内容,构建产物由 nginx 直接托管。
馆藏书目
| 分类 | 书名 | 作者 | ISBN |
|---|---|---|---|
| F270 | 流程管理(第5版) | 王玉荣、葛新红 | 978-7-301-26637-3 |
| F272-62 | PMO知识体系指南 | — | 978-7-111-76804-3 |
| C913.2-49 | 收入进化论 | — | 978-7-5245-0445-0 |
目录结构
/opt/docusaurus/
├── docs/ ← 所有文档写在这里(.md / .mdx)
│ ├── index.md ← 本页
│ ├── F272-62-(PMO知识体系指南)-(ISBN-978-7-111-76804-3)/
│ │ ├── _category_.json ← 侧栏显示名与排序
│ │ ├── index.md ← 书首页(元数据 + 全书目录)
│ │ ├── 01-第1章-概述/
│ │ │ ├── _category_.json
│ │ │ ├── index.md ← 章首页(本章目录)
│ │ │ ├── 1.1-PMO的定义.md
│ │ │ └── 1.2-PMO的组建和运行.md
│ │ └── 02-第2章-战略管理领域/ …
│ ├── F270-(流程管理-第五版)-(ISBN-978-7-301-26637-3)/
│ └── C913.2-49-(收入进化论)-(ISBN-978-7-5245-0445-0)/
├── src/css/custom.css ← 站点配色
├── static/img/ ← logo、favicon、图片
├── docusaurus.config.js
├── sidebars.js ← 侧边栏(已设自动生成,不用改)
├── deploy.sh ← 一键构建发布
└── build/ ← 构建产物(自动生成,不要手改)
层级规则
侧边栏是三层自动生成的,结构完全由目录决定:
| 层级 | 对应 | 侧栏表现 |
|---|---|---|
| 第一层 | 书目录 | 可折叠分组,显示 _category_.json 里的 label |
| 第二层 | 章目录 | 可折叠分组 |
| 第三层 | 节 .md 文件 | 可点击的页面 |
目录和文件名禁用这些字符
[ ] 绝对不能出现在目录名或文件名里。
Docusaurus 遇到方括号会算不出合法 URL,整个站点构建直接失败(不是单个页面坏,是全站打不开)。已踩过一次坑。
同理避免:# ? % | * : < > \ /。
- ❌
F272-62-[PMO知识体系指南]-[ISBN-978-7-111-76804-3] - ✅
F272-62-(PMO知识体系指南)-(ISBN-978-7-111-76804-3)← 全角括号
中文、点号(1.1、C913.2)、空格都没问题,可以放心用。
新增一篇文档
- 在对应章目录下新建
.md,例如01-第1章-概述/1.4-PMO的成熟度.md - 文件开头写元信息,
title就是侧栏与页面标题:
---
title: 1.4 PMO的成熟度
sidebar_position: 4
---
正文从这里开始……
- 发布:
ssh root@8.134.143.44
cd /opt/docusaurus && ./deploy.sh
sidebar_position 控制同级排序,越小越前;不写就按文件名字母序。目录名前缀 01- 02- 只用于排序,不会出现在 URL 里。
新增一本书
- 在
docs/下建书目录,命名遵循中图分类-(书名)-(ISBN),用全角括号 - 放一个
_category_.json控制侧栏显示名与位置:
{
"label": "书的名字",
"position": 4,
"collapsible": true,
"collapsed": true
}
- 书首页写
index.md(sidebar_position: 1),章目录同样各放一份_category_.json ./deploy.sh发布
常用命令
| 用途 | 命令 |
|---|---|
| 构建并发布 | cd /opt/docusaurus && ./deploy.sh |
| 只构建不发布 | cd /opt/docusaurus && npm run build |
| 看 Web 服务状态 | systemctl status nginx |
| 看访问日志 | tail -f /opt/runtime/log-ubuntu/nginx/access.log |
| 看错误日志 | tail -f /opt/runtime/log-ubuntu/nginx/error.log |
| 改完本地预览 | cd /opt/docusaurus && npm run start -- --host 0.0.0.0 --port 3001 |
需要注意
- 图片放
static/下,引用写/img/xxx.png,不要放docs/(构建时不会搬运)。 - 改完文档必须
./deploy.sh,build/是静态产物,不重新构建不生效。 - 站点公开可访问,不要放敏感信息。
- 站点由 nginx 直接托管
build/,没有常驻 Node 进程——systemctl status docusaurus已不再适用。