Wizard 是基于Laravel开发框架开发的一款开源项目(API)文档管理工具。
目前支持三种类型的文档管理
在Wizard中,正在编辑的文档会定时自动保存到本地的 Local Storage 中,避免错误关闭页面而造成编辑内容丢失。
目前主要包含以下功能
如果想快速体验一下Wizard的功能,有两种方式
在线体验请访问 http://wizard.aicode.cc/ ,目前只提供部分功能的体验,功能预览和使用说明请参考 Wiki。
使用Docker来创建一个完整的Wizard服务
进入项目的根目录,执行 docker-compose up
,就可以快速创建一个Wizard服务了,访问地址 http://localhost:8080 。
为了鼓励大家在开发过程中写开发文档,最开始我们选择了 ShowDoc 项目来作为文档管理工具,当时团队规模也非常的小,大家都是直接用 Markdown 写一些简单的开发文档。后来随着团队的壮大,前后端分离,团队分工的细化,仅仅采用 Markdown 开始变得捉襟见肘,这时候,我们首先想到了使用开源界比较流行的 Swagger 来创建开发文档。但是 Swagger 文档多了,总得有个地方维护起来吧?
项目中的文档仅仅用Swagger也是不够的,它只适应于API文档的管理,还有很多其它文档,比如设计构想,流程图,架构文档,技术方案,数据库变更等各种文档需要一起维护起来。因此,我决定利用业余时间开发一款 集成 Markdown 和 Swagger 文档的管理工具,也就是 Wizard 项目了。
起初打算用 Go 语言来开发,但是没过几天发现使用 Golang 来做 Web 项目开发效率太低(快速开发效率,并非指性能),很多常用的功能都需要自己去实现,遂放弃使用 Golang,转而使用 PHP 的 Laravel 框架来开发。所以虽然项目创建的时间为 2017年7月27日,但是实际上真正开始的时间应该算是 2017年7月31日。
起初Wizard项目的想法比较简单,只是用来将 Markdown 文档和 Swagger 文档放在一起,提供一个简单的管理界面就足够了,但是随着在团队中展开使用后,发现在企业中作为一款文档管理工具来说,只提供简单的文档管理功能是不够的,比如说权限控制,文档修改历史,文档搜索,文档分类等功能需求不断的被提出来,因此也促成了 Wizard 项目的功能越来越完善。
项目采用了 Laravel 开发框架开发,目前框架的版本已经升级到最新的 5.8(最开始为5.4,一路升级过来)。为了提高开发效率,保持架构的简洁,在开发过程中,一直避免引入过多的外部组件,尽可能的利用 Laravel 提供的各种组件,比如 Authentication,Authorization,Events,Mail,Notifications 等,非常适合Laravel新手利用该项目来学习Laravel开发框架。
目前支持两种安装方式,如果你熟悉Docker,可以直接使用Docker容器的方式来运行该项目,这也是最简单的方式了。如果你没有使用Docker或者不知道什么是Docker,那么请直接参考手动安装部分。
我们需要创建一个Dockerfile,在Dockerfile中添加环境配置,比如我采用了宿主机上安装的MySQL服务器,就有了下面的这段Dockerfile配置
FROM mylxsw/wizard:latest
# 数据库连接配置
# 这里可以根据需要添加其它的Env配置,可用选项参考项目的.env.example文件
ENV DB_CONNECTION=mysql
ENV DB_HOST=host.docker.internal
ENV DB_PORT=3306
ENV DB_DATABASE=wizard_2
ENV DB_USERNAME=wizard
ENV DB_PASSWORD=wizard
ENV WIZARD_NEED_ACTIVATE=false
# 文件上传存储目录
VOLUME /webroot/storage/app/public
RUN php artisan config:cache
执行构建
docker build -t my-wizard .
数据库初始化
docker run -it --rm --name my-wizard my-wizard php artisan migrate:install
docker run -it --rm --name my-wizard my-wizard php artisan migrate
运行
docker run -d --name my-wizard -p 8080:80 my-wizard
然后就可以通过 http://localhost:8080 访问 Wizard 了。
手动安装方式需要先安装配置好PHP环境,建议采用 PHP-FPM/Nginx 的方式来运行,具体配置参考 环境依赖 部分。
以下组件的安装配置这里就不做详细展开,可以自行 百度/Google 安装方法。
推荐使用 git 来下载项目代码到服务器,我们假定将该项目放在服务器的 /data/webroot
目录
cd /data/webroot
git clone https://github.com/mylxsw/wizard.git
cd wizard
下载代码之后,使用 composer 安装项目依赖
composer install --prefer-dist --ignore-platform-reqs
composer 会在在项目目录中创建 vender 目录,其中包含了项目所依赖的所有第三方代码库。
你也可以直接到项目的 release 页面直接下载包含依赖的软件包。
复制一份配置文件
cp .env.example .env
修改 .env
中的配置信息,比如 MySQL 连接信息,文件存储目录,项目网址等。
接下来创建数据库,提前在MySQL中创建好项目的数据库,然后在项目目录执行下面的命令
php artisan migrate:install
php artisan migrate
接下来配置文件上传目录
php artisan storage:link
执行该命令后会在 public 目录下创建 storage/app/public
目录的符号链接。
在Nginx中配置项目的访问地址
server {
listen 80;
server_name wizard.example.com;
root /data/webroot/wizard/public;
index index.php;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*\.(gif|jpg|png|bmp|swf|js|css)$ {
try_files $uri =302;
}
location ~ .*\.php$ {
# php-fpm 监听地址,这里用了socket方式
fastcgi_pass unix:/usr/local/php/var/run/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
项目升级过程非常简单,只需要使用git拉取最新代码(git pull),然后执行下面的命令完成数据库迁移和依赖更新就OK了。
composer install --prefer-dist --ignore-platform-reqs
php artisan migrate
安装完成后,Wizard项目就可以通过浏览器访问了,接下来需要访问注册页面创建初始用户
http://项目地址/register
在系统中注册的第一个用户为默认管理员角色。
概述 Odoo 中有不少地方涉及对话向导页面模式,这种功能页很方便灵活,可以随意产生自已定义的表单/动作交互操作流,下面我们就举例讲解具体使用方法 方法 以odoo中“更新模块列表”这个操作为例 定义模型 class BaseModuleUpdate(models.TransientModel): _name = "base.module.update" _description
管理场景 新建场景 通过 Editor.Ipc 模块新建场景: Editor.Ipc.sendToPanel('scene', 'scene:new-scene'); 保存当前场景 对场景数据修改完成后可以通过 Editor.Ipc 模块来保存当前场景: Editor.Ipc.sendToPanel('scene', 'scene:stash-and-save'); 加载其他场景 我们的扩展包可能
创建项目 点击选择【在线AssetBundle检测】产品,您将进入到该产品的项目管理界面,如下图所示。 点击“+”号,即会出现如下项目创建界面。 填写项目信息,包括 项目名称、项目引擎、具体版本号 和 资源类型 后,点击 “下一步” 后完成项目创建,项目界面中将根据项目信息生成一个新的项目。 注意:在当前的UWA资源检测版本中,我们仅对Unity引擎的AssetBundle文件进行检测和分析。 上
创建项目 点击选择【游戏/VR应用性能诊断与优化】产品,您将进入到该产品的项目管理界面,如下图所示。 通过简单三个步骤,即可创建评测项目。 点击 “+” 号,打开创建项目界面。 在界面中填写详细的项目信息,包括项目名称、发布平台、项目引擎和项目类型后,点击 “下载SDK” ,系统将根据您所选择的项目平台来下载对应的 UWA SDK,将在后续的SDK集成时使用。 点击 “下一步” 完成项目创建,项目
进入San CLI UI的主页即为项目管理界面,可对显示的本地列表项目进行搜索、收藏、在编辑器打开、重命名、从San CLI UI删除(不会删除本地文件),删除后可通过导入项目重新显示在项目列表中,
为了养成良好的习惯,我们把 ConTeXt 文档拆分到几个单独的.tex 文件中,这样维护起来比较方便。 首先是主文档 product.tex[73],生成 PDF 只要编译此文件即可 %%%%%此文件使用 product 环境,起始声明 \startproduct{} %%%导言区使用 \environment 载入文件 %载入样式文件 style.tex \environment style
可读性是 Python 开发人员在项目和代码文档中的主要关注点。遵循一些简单的最佳实践可以为您和其他人节省大量时间。 项目文档 在根目录下 README 文件应该对用户和项目维护者提供概述信息。它应该是原始文本或非常容易阅读的标记写成,如 reStructuredText 或 Markdown。 它应该包含几行对项目或库的作用的解释(假设用户不知道项目的任何内容),软件源站点的 URL 和一些基本
连接管理器是一种客户端网络连接工具,允许用户连接到远程网络,如 Internet 服务提供商 (ISP) 或虚拟专用网络 (VPN) 服务器保护的企业网络。
本章介绍 Docker 开源的项目。随着 Docker 功能的越来越多,Docker 也加快了开源的步伐,Docker 未来会将引擎拆分为更多开放组件,对用于组装 Docker 产品的各种新型工具与组件进行开源并供技术社区使用。