多版本控制

编写的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说明