如何管理团队知识?快速搭建一套管理工具

阅读全文需要15分钟,动手实践需要30分钟,请收藏点赞后再读。

演示地址:http://birddoc.jayh.club

Github链接:https://github.com/Jackson0714/BirdDoc   记得点个Star

一、用互联网思维来看知识管理工具

1.1 用户故事

我是一名开发人员,经常会迷失在寻找团队内的各种开发文档中,我期望有一个网站,所有文档都集中在这个网站中,我可以进行根据目录浏览,最好能支持搜索,而且我贡献的文档别人不知道,会再跑过来问我。

1.2 用户痛点

(1)文档存放位置杂乱

(2)搜索文档困难

(3)文档没有目录

(4)文档普及度不高

1.3 产品团队深挖用户痛点

根据用户的痛点,产品团队设计了一个模型

(1)左侧具有菜单导航栏

(2)顶部具有搜索栏

(3)可以通过网站的形式访问,方便用户访问

二、工具选型

这种团队管理工具有很多,很多大厂出了软件专门来做知识管理:

比如xx笔记企业版

这些大厂的软件必须购买企业版才能在团队内共享,且笔记很杂,不利于管理。而且根本就没有解决用户痛点。

最后选择了vuePress来做,它的好处是可以用markdown语言来做笔记,让你专注于写作,还可以将笔记提交到gitlab进行管理,还有变更记录,而且高度支持自定义主题等等。

于是我们选择了vuepress。官网链接:https://v0.vuepress.vuejs.org/zh/

官网也是用VuePress做的哦。但这个开源工具不是下载下来就可以直接用的,还有些开发工作需要做。

另外有人提出怎么不用GitBook ?

GitBook 最大的问题在于当文件很多时,每次编辑后的重新加载时间长得令人无法忍受。它的默认主题导航结构也比较有限制性,并且,主题系统也不是 Vue 驱动的。GitBook 背后的团队如今也更专注于将其打造为一个商业产品而不是开源工具。 -- 来源vuepress

三、开始搭建这套工具

3.1 方案一 按照官网搭建

快速上手

注意

请确保你的 Node.js 版本 >= 8。

全局安装

如果你只是想尝试一下 VuePress,你可以全局安装它:

# 安装
yarn global add vuepress # 或者:npm install -g vuepress

# 新建一个 markdown 文件
echo ‘# Hello VuePress!‘ > README.md

# 开始写作
vuepress dev .

# 构建静态文件
vuepress build .

现有项目

如果你想在一个现有项目中使用 VuePress,同时想要在该项目中管理文档,则应该将 VuePress 安装为本地依赖。作为本地依赖安装让你可以使用持续集成工具,或者一些其他服务(比如 Netlify)来帮助你在每次提交代码时自动部署。

# 将 VuePress 作为一个本地依赖安装
yarn add -D vuepress # 或者:npm install -D vuepress

# 新建一个 docs 文件夹
mkdir docs

# 新建一个 markdown 文件
echo ‘# Hello VuePress!‘ > docs/README.md

# 开始写作
npx vuepress dev docs

WARNING

如果你的现有项目依赖了 webpack 3.x,推荐使用 Yarn 而不是 npm 来安装 VuePress。因为在这种情形下,npm 会生成错误的依赖树。

接着,在 package.json 里加一些脚本:

{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}

然后就可以开始写作了:

yarn docs:dev # 或者:npm run docs:dev

要生成静态的 HTML 文件,运行:

yarn docs:build # 或者:npm run docs:build

默认情况下,文件将会被生成在 .vuepress/dist,当然,你也可以通过 .vuepress/config.js 中的 dest 字段来修改,生成的文件可以部署到任意的静态文件服务器上,参考 部署 来了解更多。

这些步骤执行完后,只能看到搜索栏和标题,是没有菜单的,需要自己创建菜单。

3.2 方案二、用我的demo搭建

3.2.2 如何创建菜单

上面只有搜索功能,没有菜单功能。修改config文件定义菜单,然后加上菜单对应的文件夹。

3.2.2 下载demo

我已经有一份做好的demo供大家使用,该demo的功能:展示接口文档,供第三方使用。功能如下图。

github路径:https://github.com/Jackson0714/BirdDoc

3.3.3 如何编写文档

比如想增加一个删除优惠券的接口,可以在coupon目录下面创建一个delete.md文件

然后在config.js 文件配置菜单

四、如何编译运行

如果已经安装了node.js和npm,则在根目录执行这条命令就可以运行起来了

npm start 

这条命令其实就是执行npm vuepress dev来进行实时编译

编译完成后,会提示监听8080端口,可以打开http://localhost:8080查看效果

五、如何部署到服务器

5.1 打包成静态文件

npm run build

5.2 配置nginx和hosts

我是部署到ubuntu上的,需要创建nginx 配置文件

// 创建nginx配置文件sudo vim /etc/nginx/conf.d/interface.conf
// interface.conf
server {
    listen       8002;
    server_name  birddoc.com;

    location / {
        root   /home/user/project/github/BirdDoc/public;
        index  index.html index.htm;
        try_files $uri $uri/ =404;
    }
}
// 重启nginx服务
sudo service nginx restart
// 配置hosts文件,映射网站域名
sudo vim /etc/hosts
localhost birddoc.com

5.3 打开站点

http://birddoc.com:8002/

六、如何自动部署到云服务器

6.1 拉取代码

git clone [email protected]:Jackson0714/BirdDoc.git

6.2 打包镜像文件

npm run build

> [email protected] build /home/workspace/BirdDoc/BirdDoc
> vuepress build

 WAIT  Extracting site metadata...
[9:59:39 AM] Compiling Client
[9:59:39 AM] Compiling Server
[9:59:45 AM] Compiled Server in 6s
[9:59:51 AM] Compiled Client in 13s
 WAIT  Rendering static HTML...

 DONE  Success! Generated static files in public.

生成静态文件,路径为 /home/workspace/BirdDoc/BirdDoc/public

6.3 添加域名解析

在云服务器控制台 添加 birddoc.jay.club的域名解析,网站jay.club是我自己备案的网站。

等待10分钟就生效了。

6.4 修改nginx配置文件

监听通过birddoc.jay.club发来的请求,路由到静态文件目录 /home/workspace/BirdDoc/BirdDoc/public

server {
    listen       80;
    server_name  birddoc.jayh.club;

    location / {
        root   /home/workspace/BirdDoc/BirdDoc/public;
        index  index.html index.htm;
        try_files $uri $uri/ =404;
    }
}

6.5 打开网站

http://birddoc.jayh.club

(临时网站,后面可能会停掉。)

6.6 如何用jenkins部署

参考我之前写的文章:1. 容器化部署一套云服务 第一讲 Jenkins(Docker + Jenkins + Yii2 + 云服务器))

最后部署成功,控制台输出如下图:

查看public目录下这些文件

6.7 如何自动部署

自动部署的方式很多

6.7.1 Jenkins 定时构建

6.7.2 Crontab定时构建

注意:该脚本还有些编译问题未解决,仅供参考。

/home/job/build.sh

#!/bin/bash
cd /home/workspace/BirdDoc/BirdDoc
/usr/bin/git pull
/usr/local/n/versions/node/10.15.3/bin/npm run build
currentTime=$(date)
echo $currentTime >> /home/job/build.log

crontab -e
* * * * * sleep 0; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 5; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 10; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 15; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 20; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 25; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 30; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 35; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 40; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 45; /home/job/build.sh >> /home/job/cron.log 2>&1 &
* * * * * sleep 55; /home/job/build.sh >> /home/job/cron.log 2>&1 &

  遇到的问题:

 1 SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
 2     at exports.runInThisContext (vm.js:53:16)
 3     at Module._compile (module.js:374:25)
 4     at Object.Module._extensions..js (module.js:417:10)
 5     at Module.load (module.js:344:32)
 6     at Function.Module._load (module.js:301:12)
 7     at Function.Module.runMain (module.js:442:10)
 8     at startup (node.js:136:18)
 9     at node.js:966:3
10 Already up-to-date.
11 /usr/local/n/versions/node/10.15.3/lib/node_modules/npm/bin/npm-cli.js:85
12       let notifier = require(‘update-notifier‘)({pkg})
13       ^^^
14
15 SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
16     at exports.runInThisContext (vm.js:53:16)
17     at Module._compile (module.js:374:25)
18     at Object.Module._extensions..js (module.js:417:10)
19     at Module.load (module.js:344:32)
20     at Function.Module._load (module.js:301:12)
21     at Function.Module.runMain (module.js:442:10)
22     at startup (node.js:136:18)
23     at node.js:966:3

原文地址:https://www.cnblogs.com/jackson0714/p/birddoc.html

时间: 2024-10-25 22:32:38

如何管理团队知识?快速搭建一套管理工具的相关文章

02. SpringCloud实战项目-快速搭建Linux环境-运维必备

SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础. PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目 采用流行的技术,如 SpringBoot.MyBatis.Redis. MySql. Mon

快速搭建phpwind论坛系统

摘要: phpwind 是采用 PHP + MySQL 方式运行的开源社区程序.轻架构,高效率简易开发,帮助您快速搭建并轻松管理社区站点.本文介绍如何使用云市场的 PHPWind论坛系统(含智慧云虚机面板) 快速搭建论坛. phpwind 是采用 PHP + MySQL 方式运行的开源社区程序.轻架构,高效率简易开发,帮助您快速搭建并轻松管理社区站点.phpwind 提供了 2 款完全不同的版本,分别是拥有成熟功能.海量插件支撑的 phpwind 稳定版(v8.7.1)和注重轻社区.高效.易开发

用Gitbook快速搭建Wiki

本文展示如何用Gitbook快速搭建一套wiki 必备环境 1.gitbook(如何安装gitbook自行百度) 2.nginx(或其他的能当作静态http服务器的) 3.gitlab(或者svn,需要能触发CI/CD的.我这里只展示用gitlab的.gitlab-ci.yml配置CI/CD,svn可以用post-trigger) 一.创建git库 二.初始化gitbook目录(可以用gitbook init,这里我采用手动) 根目录分别创建3个文件book.json,README.md,SUM

30分钟快速搭建Web CRUD的管理平台--django神奇魔法

加上你的准备的时间,估计30分钟完全够用了,因为最近在做爬虫管理平台,想着快速开发,没想到python web平台下有这么非常方便的框架,简洁而优雅.将自己的一些坑总结出来,方便给大家的使用. 准备环境: 系统:win7 or ubuntu django版本:1.8.5 python版本:2.7.6 数据库:自带的SQLLITE3 IDE: sublime text 3 ===========================Read ? go===========================

【干货】手动搭建一套可自动化构建的微服务框架

如何阅读 本文篇幅较长,我花了两天的时间完成,大约需要半小时阅读. 本文分为理论篇和实践篇,由于代码在手机端展示并不理想,建议大家收藏之后在PC端阅读.实践篇边动手边阅读更有助于理解. 在阅读的同时,也麻烦各位大佬多多分享! 本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行

Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

前言:由于之前没有接触过Hibernate框架,但是最近看一些博客深深被它的"效率"所吸引,所以这就来跟大家一起就着一个简单的例子来尝尝Spring全家桶里自带的JPA的鲜 Spring-DATA-JPA 简介 JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据.他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO

基于 Jenkins 快速搭建持续集成环境

持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能.本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境. 持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变

9款一键快速搭建PHP运行环境的好工具

原文链接: http://www.cmhello.com/a-key-build-php-environment.html 内容提要: 建立一个PHP网站,首先需要搭建PHP的开发和运行环境,对于PHP初学者也是一个难题,下面介绍部分一站式PHP环境搭建安装程序.小编推荐使用APMServ或者phpnow. 一键搭建PHP运行环境工具 1.APMServ http://apmserv.s135.com/国内研发,功能强大,操作简单,无需安装,只需鼠标一点,即可在自己的电脑上傻瓜全自动搭建一个完美

使用ASP.NET MVC+Entity Framework快速搭建博客系统

学习 ASP.NET MVC 也有一段时间了,打算弄个小程序练练手,做为学习过程中的记录和分享. 首先,得确定需求,木有需求的话,那还搞个毛线呀!嗯--大致思考了一下,终于得出如下需求: 1.能自定义分类 2.能发文章 OK!就这样,先从简单的开始(其实是复杂的不会做),后面有需要再添加(希望水平能达到).功能确定了,那么改确定要做成什么样子的了.先和度娘商量一下先-- 终于在我的淫威之下,度娘交出了一个比较简洁的,源网站在这里(表示感谢),被小弟阉割了之后效果如下图: 接下来就开始编码了么?嗯