搭建一个文档系统

・文档系统架构图・

#ssh localhost@127.0.0.1 📢 Password:password

系统架构

该系统由「一个代码库」「若干开发者」和「一台服务器」组成。

代码库

代码库(SVN)中有一份文档系统的源码,里面放着文档系统的配置文件和各个项目的文档文件。

开发者

开发者可以将 SVN 中的文档系统源码 checkout 至本地进行编辑、预览。修改完毕后再提交回去。

服务器

服务器中也有一份从 SVN 中 checkout 出来的文档系统源码,这些内容被一个叫做文档网站生成器的软件动态转换成网页在 3000 端口以 HTTP 的形式对外提供访问。这样我们就可以通过浏览器以输入 IP 地址加端口的形式访问该文档系统。另外该服务器上还运行着一个周期任务,这个任务每隔 15 分钟(准确地说是在00分、15分、30分、45分的时候)从 SVN 服务器中更新一次文档系统源码。这样就实现了文档系统的自动更新。

使用说明

第一步:搭建环境

➀ 安装「node.js」(一个基于 Chrome V8 引擎 的 JavaScript 运行时环境)

https://nodejs.org/

➁ 安装「docsify」(一个使用 JavaScript 编写的文档网站生成器)

https://docsify.js.org/

npm i -g docsify-cli

第二步:建立文档

建立文档框架并提交至代码仓库

http://svn.sulfurandcu.com/doc

第三步:预览效果

将上述文档框架下载到本地,在其根目录下执行 docsify serve 命令启动一个本地服务器,就可以在本地预览效果。

docsify s

点击 http://localhost:3000 即可预览

第四步:进入正轨(编辑文档、本地预览、提交变更)

搭建好开发环境、将〈#项目文档〉下载到本地且知道怎么预览以后,就可以开始编辑、预览、提交了,跟代码的编辑、调试、提交没什么两样!

技术细节

这部分内容是文档系统搭建的一些具体细节,在这里记录一下以供后续维护人员参考。需要说明的一点是,当前所使用的服务器运行的是 Windows 操作系统,因此以下操作均基于该操作系统。

自动更新

在 Windows 系统中,使用系统自带的任务计划程序实现:在〈计算机管理・任务计划程序〉中创建一个周期任务,每隔一段时间执行一次以下脚本。

doc.py
import os

cmd = "svn up \"e:/#文档系统\" --non-interactive"
os.system(cmd)

任务计划程序配置好之后重启电脑不影响其运行

手动更新

改动提交之后想立即更新至文档服务器应该怎么做呢?

远程连接到服务器,手动执行一下 doc.py 即可。

手动启动 docsify 服务

电脑关机后 docsify 服务也会随之停止,因此每次开机后都要手动启动 docsify 服务。我尝试过启动后自动运行,但是经常会执行失败。

常见问题

服务器重启后网页无法访问!

检查 docsify 服务是否已经启动。

修改提交之后内容没有更新!

首先看周期更新任务是否正常执行。

如果周期更新任务没有问题,那么有可能是管理员同志的公司帐号密码修改过,而文档服务器中 svn 的访问密码没有同步修改导致的。