Wizard 是一款开源文档管理系统,项目地址为 https://github.com/mylxsw/wizard。这个项目是 我 在 2017 年就开始开发的,起初只是想做一款能够在公司内部把 Swagger 文档管理起来的工具,但在这近两年的时间里,一直断断续续的为其添加各种功能,现在终于下决心发布 1.0 版本了,目前支持三种类型的文档管理
Markdown:也是 Wizard 最主要的文档类型,研发团队日常工作中交流所采用的最常用文档类型,在 Wizard 中,对 Editor.md 项目进行了功能扩展,增加了文档模板,Json 转表格,图片粘贴上传等功能
Swagger:支持 OpenAPI 3.0 规范,嵌入了 Swagger 官方的编辑器,通过定制开发,使其融入到 Wizard 项目当中,支持文档模板,全屏编辑,文档自动同步功能
Table:这种文档类型是类似于 Excel 电子表格,采用了 x-spreadsheet 项目,将该项目嵌入到了 Wizard 中,目前还不是很完善
目前主要包含以下功能
如果想快速体验一下 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 做 API 接口开发还是很不错的),很多常用的功能都需要自己去实现,遂放弃使用 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 框架。
如果你在为公司寻找一款开源免费的 开发文档 /API 文档管理 工具,不妨考虑一下 Wizard 项目,一定不会让你失望的。如果你是一名 PHP 或者 Laravel 新手,想找个项目学习一下如何用 Laravel 做 Web 开发,这个项目更加不能错过!
最后,也是本文最核心的部分,赶紧去 Star 一下,顺便给我个 Star 啊 !如果再能贡献点 Issues 或者 P R,那就更好啦 😄!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.