ShowDoc是什么
- 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂。文档呢?!文档呢?!Show me the doc !!
- 程序员都很希望别人能写技术文档,而自己却很不希望要写文档。因为写文档需要花大量的时间去处理格式排版,想着新建的word文档放在哪个目录等各种非技术细节。
- word文档零零散散地放在团队不同人那里,需要文档的人基本靠吼,吼一声然后上qq或者邮箱接收对方丢过来的文档。这种沟通方式当然可以,只是效率不高。
- ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率。
它可以用来做什么
- API文档( 查看Demo)
- 随着移动互联网的发展,BaaS(后端即服务)越来越流行。服务端提供API,APP端或者网页前端便可方便调用数据。用ShowDoc可以非常方便快速地编写出美观的API文档。
- 数据字典( 查看Demo)
- 一份好的数据字典可以很方便地向别人说明你的数据库结构,如各个字段的释义等。
- 说明文档 ( 查看Demo)
- 你完全可以使用showdoc来编写一些工具的说明书,也可以编写一些技术规范说明文档以供团队查阅
它都有些什么功能
- 分享与导出
- 响应式网页设计,可将项目文档分享到电脑或移动设备查看。同时也可以将项目导出成word文件,以便离线浏览。
- 权限管理
- 公开项目与私密项目
- ShowDoc上的项目有公开项目和私密项目两种。公开项目可供任何登录与非登录的用户访问,而私密项目则需要输入密码验证访问。密码由项目创建者设置。
- 项目转让
- 项目创建者可以自由地把项目转让给网站的其他用户。
- 项目成员
- 你可以很方便地为ShowDoc的项目添加、删除项目成员。项目成员可以对项目进行编辑,但不可转让或删除项目(只有项目创建者才有权限)
- 团队管理
- 利用showdoc的团队功能你可以更好地进行团队协作
- 公开项目与私密项目
- 编辑功能
- markdown编辑
- ShowDoc采用markdown编辑器,无论是编辑还是阅读体验都极佳很棒。如果你不了解Markdown,请在搜索引擎搜索”认识与入门 Markdown”
- 模板插入
- 在ShowDoc的编辑页面,点击编辑器上方的按钮可方便地插入API接口模板和数据字典模板。插入模板后,剩下的就是改动数据了,省去了很多编辑的力气。
- 历史版本
- ShowDoc为页面提供历史版本功能,你可以方便地把页面恢复到之前的版本。
-
代码下载:
git clone https://github.com/star7th/showdoc.git
nginx配置:
server {
listen 80;
#listen 443 ssl http2;
server_name lch.showdoc.com;
root "/htdocs/showdoc";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
#access_log off;
error_log /var/log/nginx/lch.showdoc.com-error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
#ssl_certificate /etc/nginx/ssl/lch.vg.hd.com.crt;
#ssl_certificate_key /etc/nginx/ssl/lch.vg.hd.com.key;
}
重启nginx既可以打开showdoc文档,直接创建项目使用
- markdown编辑
showdoc_db.sh文件链接数据库:
#!/bin/bash
#
#
#
host="127.0.0.1" #数据库所在地址。默认是localhost
port=3306 #数据库所在端口。默认是3306
user="homestead" #数据库的用户名
password="secret" #密码
db="ichub2" #要同步的数据库名。要同步多个db可以将本脚本复制多份
api_key="c49f993351854daa9ea6f3905ea01e94198884625" #api_key
api_token="919140917fa28cb2c792dc5f0b3123ff14452849" #api_token
cat_name="中台数据字典" #可选。如果想把生成的文档都放在项目的子目录下,则这里填写子目录名。
#url="https://www.showdoc.cc/server/?s=/api/open/updateDbItem" #可选。同步到的url。如果是使用www.showdoc.cc ,则不需要再改此项。如果是部署开源版showdoc,请改此项为http://xx.com/server/index.php?s=/api/open/updateDbItem 。其中xx.com为你的部署域名
url="http://lch.showdoc.com/server/index.php?s=/api/open/updateDbItem"
#
#
#
#
#
#
export MYSQL_PWD=${password}
COMMAND="set names utf8;select TABLE_NAME ,TABLE_COMMENT from tables where TABLE_SCHEMA ='${db}' "
declare table_info=`mysql -h${host} -P${port} -u${user} --show-warnings=false -D information_schema -e "${COMMAND}" `
#echo $table_info
#exit;
COMMAND="set names utf8;select TABLE_NAME ,COLUMN_NAME, COLUMN_DEFAULT ,IS_NULLABLE ,COLUMN_TYPE ,COLUMN_COMMENT from COLUMNS where TABLE_SCHEMA ='${db}' "
declare table_detail=`mysql -h${host} -P${port} -u${user} --show-warnings=false -D information_schema -e "${COMMAND}" `
#echo $table_detail
#exit;
curl -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' "${url}" --data-binary @- <<CURL_DATA
from=shell&table_info=${table_info}&table_detail=${table_detail}&api_key=${api_key}&api_token=${api_token}&cat_name=${cat_name}
CURL_DATA
export MYSQL_PWD=""
在文件根目录下保存为showdoc_db.sh,执行:
可以看到数据库已经生成文档