多版本控制
编写的NJet文档,支持多版本,可以直接在界面上选择对应的版本进行查看。NJet文档的多版本是通过不同的site的进行控制,每个版本对应一个site
创建新版本
- root
- Readme.md
- .gitignore
- relearn
- hugo.toml
- v1.0
从仓库check出来,文档目录顶层结构包括 relearn 目录,hugo.toml,以及已经创建的不同版本的文档,不同的版本每个用独立的目录,比如仓库中存在版本v1.0,则目录结构如上图
通过 new site 命令创建新版本v2.0
hugo new site v2.0
新目录结构如下:
- root
- Readme.md
- .gitignore
- relearn
- hugo.toml
- v1.0
- v2.0
增加版本切换
需修改hugo.toml增加新版本信息,并把latest指向新的版本
params.versions 修改,通过上层的统一的链接文件做到一处修改,所有修改
hugo.toml
baseURL = 'http://docs.njet.org.cn/contrib/v1.0/'
version = 'v1.0'
[[params.versions]]
baseURL = 'http://docs.njet.org.cn/contrib/v1.0/'
identifier = 'v1.0'
title = 'latest'
baseURL = 'http://docs.njet.org.cn/contrib/v2.0/'
version = 'v2.0'
[[params.versions]]
baseURL = 'http://docs.njet.org.cn/contrib/v1.0/'
identifier = 'v1.0'
title = 'v1.0'
[[params.versions]]
baseURL = 'http://docs.njet.org.cn/contrib/v2.0/'
identifier = 'v2.0'
title = 'latest'
编译脚本修改
每次的版本变动,需要添加对应网站的编译脚本,注意替换其中的版本号:
version 的动态变动,通过编译脚本的sed替换,达到动态修改
baseURL 的动态变动,通过编译脚本的sed替换,达到动态修改
cd v2.0
sed -i "s/version = .*/version = 'v2.0'/" hugo.toml
sed -i "1s#baseURL = .*#baseURL = 'https://docs.njet.org.cn/contrib/v2.0'#" hugo.toml
hugo build
完整的CI脚本见 CI说明