<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Wizard開源項目(API)文檔管理工具

          聯(lián)合創(chuàng)作 · 2023-10-02 04:38

          Wizard 是基于Laravel開發(fā)框架開發(fā)的一款開源項目(API)文檔管理工具。 

          目前支持三種類型的文檔管理

          • Markdown:也是Wizard最主要的文檔類型,研發(fā)團(tuán)隊日常工作中交流所采用的最常用文檔類型,在 Wizard 中,對 Editor.md 項目進(jìn)行了功能擴(kuò)展,增加了文檔模板,Json 轉(zhuǎn)表格,圖片粘貼上傳等功能
          • Swagger:支持 OpenAPI 3.0 規(guī)范,嵌入了 Swagger 官方的編輯器,通過定制開發(fā),使其融入到 Wizard 項目當(dāng)中,支持文檔模板,全屏編輯,文檔自動同步功能
          • Table:這種文檔類型是類似于 Excel 電子表格,采用了 x-spreadsheet 項目,將該項目嵌入到了 Wizard 中,目前還不是很完善

          在Wizard中,正在編輯的文檔會定時自動保存到本地的 Local Storage 中,避免錯誤關(guān)閉頁面而造成編輯內(nèi)容丟失。

          目前主要包含以下功能

          • Swagger,Markdown,Table 類型的文檔管理
          • 文檔修改歷史管理
          • 文檔修改差異對比
          • 用戶權(quán)限管理
          • 項目分組管理
          • LDAP 統(tǒng)一身份認(rèn)證
          • 文檔搜索,標(biāo)簽搜索
          • 閱讀模式
          • 文檔評論
          • 消息通知
          • 文檔分享
          • 統(tǒng)計功能

          如果想快速體驗一下Wizard的功能,有兩種方式

          • 在線體驗請訪問 http://wizard.aicode.cc/ ,目前只提供部分功能的體驗,功能預(yù)覽和使用說明請參考 Wiki。

          • 使用Docker來創(chuàng)建一個完整的Wizard服務(wù)

            進(jìn)入項目的根目錄,執(zhí)行 docker-compose up,就可以快速創(chuàng)建一個Wizard服務(wù)了,訪問地址 http://localhost:8080 。

          起源

          為了鼓勵大家在開發(fā)過程中寫開發(fā)文檔,最開始我們選擇了 ShowDoc 項目來作為文檔管理工具,當(dāng)時團(tuán)隊規(guī)模也非常的小,大家都是直接用 Markdown 寫一些簡單的開發(fā)文檔。后來隨著團(tuán)隊的壯大,前后端分離,團(tuán)隊分工的細(xì)化,僅僅采用 Markdown 開始變得捉襟見肘,這時候,我們首先想到了使用開源界比較流行的 Swagger 來創(chuàng)建開發(fā)文檔。但是 Swagger 文檔多了,總得有個地方維護(hù)起來吧?

          項目中的文檔僅僅用Swagger也是不夠的,它只適應(yīng)于API文檔的管理,還有很多其它文檔,比如設(shè)計構(gòu)想,流程圖,架構(gòu)文檔,技術(shù)方案,數(shù)據(jù)庫變更等各種文檔需要一起維護(hù)起來。因此,我決定利用業(yè)余時間開發(fā)一款 集成 Markdown 和 Swagger 文檔的管理工具,也就是 Wizard 項目了。

          起初打算用 Go 語言來開發(fā),但是沒過幾天發(fā)現(xiàn)使用 Golang 來做 Web 項目開發(fā)效率太低(快速開發(fā)效率,并非指性能),很多常用的功能都需要自己去實現(xiàn),遂放棄使用 Golang,轉(zhuǎn)而使用 PHP 的 Laravel 框架來開發(fā)。所以雖然項目創(chuàng)建的時間為 2017年7月27日,但是實際上真正開始的時間應(yīng)該算是 2017年7月31日。

          -w986

          起初Wizard項目的想法比較簡單,只是用來將 Markdown 文檔和 Swagger 文檔放在一起,提供一個簡單的管理界面就足夠了,但是隨著在團(tuán)隊中展開使用后,發(fā)現(xiàn)在企業(yè)中作為一款文檔管理工具來說,只提供簡單的文檔管理功能是不夠的,比如說權(quán)限控制,文檔修改歷史,文檔搜索,文檔分類等功能需求不斷的被提出來,因此也促成了 Wizard 項目的功能越來越完善。

          • 用戶權(quán)限管理 參考了 Gitlab 的權(quán)限管理方式,在用戶的身份上只區(qū)分了 管理員 和 普通用戶,通過創(chuàng)建用戶組來對用戶的權(quán)限進(jìn)行細(xì)致的管理,同時每個項目都支持單獨的為用戶賦予讀寫權(quán)限。
          • 項目分組 在 Wizard 中,文檔是以項目為單位進(jìn)行組織的,剛開始的時候發(fā)現(xiàn)這樣是OK的,后來項目越來越多,項目分組功能應(yīng)運而生,以目錄的形式來組織項目結(jié)構(gòu)。
          • 文檔修改歷史 每次對文檔的修改,Wizard 都會記錄一個快照,避免錯誤的修改了文檔而造成損失,可以通過文檔歷史快速的恢復(fù)文檔,對文檔的修改,新增,刪除等關(guān)鍵操作都會記錄審計日志,以最近活動的形式展示出來。
          • 文檔差異對比 在團(tuán)隊協(xié)助中,經(jīng)常會出現(xiàn)很多人修改同一份文檔,為了避免沖突,文檔修改后,其它人在提交舊的歷史版本時,系統(tǒng)會提示用戶文檔內(nèi)容發(fā)生了變更,用戶可以通過文檔比對功能找出文檔中有哪些內(nèi)容發(fā)生了修改。
          • 閱讀模式 當(dāng)使用投影儀展示文檔來過技術(shù)方案的時候,為了減少不必要的干擾,使用閱讀模式,只展示文檔內(nèi)容部分,提供更好的展示體驗。
          • 文檔搜索 通過搜索功能快速查找需要的文檔,目前支持通過文檔標(biāo)題來搜素文檔,后續(xù)會增加全文檢索功能。
          • LDAP支持 很多公司都會使用 LDAP 來統(tǒng)一的管理公司員工的賬號,員工的在公司內(nèi)部的所有系統(tǒng)中都是用同一套帳號來登錄各種系統(tǒng)比如 Jira,Wiki,Gitlab 等,Wizard 也提供了對 LDAP 的支持,只需要簡單的幾個配置,就可以快速的接入公司的統(tǒng)一帳號體系。
          • 文檔附件,文檔分享,統(tǒng)計,文檔排序,模板管理文檔評論 ...

          關(guān)于代碼

          項目采用了 Laravel 開發(fā)框架開發(fā),目前框架的版本已經(jīng)升級到最新的 5.8(最開始為5.4,一路升級過來)。為了提高開發(fā)效率,保持架構(gòu)的簡潔,在開發(fā)過程中,一直避免引入過多的外部組件,盡可能的利用 Laravel 提供的各種組件,比如 AuthenticationAuthorization,EventsMail,Notifications 等,非常適合Laravel新手利用該項目來學(xué)習(xí)Laravel開發(fā)框架。

          安裝

          目前支持兩種安裝方式,如果你熟悉Docker,可以直接使用Docker容器的方式來運行該項目,這也是最簡單的方式了。如果你沒有使用Docker或者不知道什么是Docker,那么請直接參考手動安裝部分。

          通過 Docker 安裝

          我們需要創(chuàng)建一個Dockerfile,在Dockerfile中添加環(huán)境配置,比如我采用了宿主機(jī)上安裝的MySQL服務(wù)器,就有了下面的這段Dockerfile配置

          FROM mylxsw/wizard:latest
          
          # 數(shù)據(jù)庫連接配置
          # 這里可以根據(jù)需要添加其它的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
          

          執(zhí)行構(gòu)建

          docker build -t my-wizard .
          

          數(shù)據(jù)庫初始化

          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環(huán)境,建議采用 PHP-FPM/Nginx 的方式來運行,具體配置參考 環(huán)境依賴 部分。

          環(huán)境依賴

          以下組件的安裝配置這里就不做詳細(xì)展開,可以自行 百度/Google 安裝方法。

          • PHP 7.2 + (需要啟用 LDAP 擴(kuò)展)
          • composer.phar
          • MySQL 5.6 +
          • Nginx
          • Git

          下載代碼

          推薦使用 git 來下載項目代碼到服務(wù)器,我們假定將該項目放在服務(wù)器的 /data/webroot 目錄

          cd /data/webroot
          git clone https://github.com/mylxsw/wizard.git
          cd wizard
          

          下載代碼之后,使用 composer 安裝項目依賴

          composer install --prefer-dist --ignore-platform-reqs
          

          composer 會在在項目目錄中創(chuàng)建 vender 目錄,其中包含了項目所依賴的所有第三方代碼庫。

          你也可以直接到項目的 release 頁面直接下載包含依賴的軟件包。

          配置

          復(fù)制一份配置文件

          cp .env.example .env
          

          修改 .env 中的配置信息,比如 MySQL 連接信息,文件存儲目錄,項目網(wǎng)址等。

          接下來創(chuàng)建數(shù)據(jù)庫,提前在MySQL中創(chuàng)建好項目的數(shù)據(jù)庫,然后在項目目錄執(zhí)行下面的命令

          php artisan migrate:install
          php artisan migrate
          

          接下來配置文件上傳目錄

          php artisan storage:link
          

          執(zhí)行該命令后會在 public 目錄下創(chuàng)建 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 監(jiān)聽地址,這里用了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),然后執(zhí)行下面的命令完成數(shù)據(jù)庫遷移和依賴更新就OK了。

          composer install --prefer-dist --ignore-platform-reqs
          php artisan migrate
          

          初始化

          安裝完成后,Wizard項目就可以通過瀏覽器訪問了,接下來需要訪問注冊頁面創(chuàng)建初始用戶

          http://項目地址/register
          

          在系統(tǒng)中注冊的第一個用戶為默認(rèn)管理員角色。

          開發(fā)計劃

          •  開發(fā)框架升級Laravel 5.8
          •  新版本更新
            •  自動檢測是否有新版本
            •  無損更新版本
          •  markdown編輯器增加json轉(zhuǎn)換為markdown表格的功能
          •  增加空間管理,類似于命名空間,不同部門在自己的空間中管理項目,文檔等
          •  項目功能
            •  項目新增
            •  項目配置
            •  項目權(quán)限分配
            •  項目刪除
            •  支持對項目進(jìn)行分組,首頁分組展示
            •  關(guān)注項目優(yōu)先展示
          •  文檔歷史管理,文檔恢復(fù)
          •  操作日志記錄
          •  國際化支持
          •  markdown編輯器增加圖片上傳支持
          •  文檔差異比較,文檔歷史版本差異比較
          •  基于git的文檔差異分析
          •  文檔多人編輯避免內(nèi)容沖突覆蓋
          •  個人文檔置頂(個人關(guān)注的文檔,在首頁增加展示區(qū)域,方便快速進(jìn)入)
          •  全局文檔置頂(重要的常用文檔,由管理員設(shè)置在首頁特定區(qū)域展示,方便快速進(jìn)入)
          •  全文檢索(文檔,項目,評論,標(biāo)簽)
          •  搜索功能優(yōu)化,大部分用戶都認(rèn)為首頁項目欄目頂部的搜索是用來搜索文檔的,因此搜索不到
          •  圖片拖拽上傳
          •  復(fù)制自動上傳
          •  文檔管理
            •  文檔編輯
            •  新增文檔
            •  支持Swagger格式文檔
            •  支持markdown文檔
            •  支持表格類型的文檔
            •  文檔刪除
            •  跨項目移動文檔(移動時級聯(lián)選擇項目-目錄)
            •  文檔點贊
          •  文檔菜單支持折疊
          •  權(quán)限組,分組權(quán)限,管理員權(quán)限
            •  項目按照分組分配讀寫權(quán)限
            •  項目按照用戶分配讀寫權(quán)限
          •  文檔模板管理
            •  另存為模板
            •  編輯器選擇模板
            •  模板列表
            •  模板更新
            •  模板刪除
          •  文檔排序,支持在文檔配置中國年修改文檔排序
          •  文檔排序優(yōu)化:以拖動的方式進(jìn)行排序
          •  文檔快速在項目內(nèi)部變更目錄
          •  項目排序
          •  文檔標(biāo)簽
          •  文檔評論
            •  實現(xiàn)最基本的評論功能
            •  實現(xiàn)評論回復(fù),帶層級的評論
            •  實現(xiàn)評論支持@某人
            •  評論點贊,類似Github issue評論后的emoji
            •  實現(xiàn)評論支持@用戶組下所有用戶
          •  消息通知功能
            •  支持@某人后收到消息
            •  支持消息列表
            •  新的消息提示
            •  消息全部已讀,部分已讀
            •  新消息郵件提醒
            •  消息接收配置(站內(nèi)信,郵件,接收類型)
          •  關(guān)注項目
            •  關(guān)注項目,取消關(guān)注
            •  已關(guān)注項目列表
            •  關(guān)注項目變更后接收消息通知
          •  支持導(dǎo)出文件
            •  導(dǎo)出pdf
            •  導(dǎo)出markdown、swagger
            •  導(dǎo)出word
            •  文檔批量導(dǎo)出
          •  實現(xiàn)API接口管理,自動根據(jù)接口數(shù)據(jù)判斷接口是否需要修改,手動觸發(fā)文檔同步
          •  對接postman,實現(xiàn)自動生成接口文檔,接口測試
          •  實現(xiàn)頁面中之間互相引用
          •  項目列表分頁展示,增加按照項目標(biāo)題搜索
          •  文檔增加標(biāo)題搜索
          •  文檔保存后彈框提示選擇:繼續(xù)編輯還是創(chuàng)建新文檔
          •  文檔分享
            •  分享鏈接
            •  分享后的文檔頁面,單頁面模式
            •  分享鏈接管理
            •  分享鏈接有效期設(shè)置
            •  分享鏈接刪除
          •  文檔附件
            •  附件上傳
            •  附件展示
            •  附件刪除
            •  附件重傳(歷史附件)
            •  文檔,評論內(nèi)引用附件
          •  用戶管理
            •  用戶姓名自動轉(zhuǎn)拼音,用于引用該用戶時快速提示和搜素
            •  用戶部門管理,用于不同部門使用不同空間
            •  用戶登錄,注冊,找回密碼
            •  基本信息修改
            •  修改密碼
            •  管理員分配
            •  用戶分組管理
              •  管理員管理分組
              •  分組基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)支持
            •  用戶管理頁面,增加為用戶分配用戶組的功能,簡化新員工入職時,權(quán)限分配的工作量
            •  LDAP支持
          •  統(tǒng)計信息查看
            •  用戶數(shù)量統(tǒng)計
            •  文檔數(shù)量統(tǒng)計
            •  評論數(shù)量統(tǒng)計
            •  用戶活躍度統(tǒng)計
            •  文檔更新統(tǒng)計
          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费一级A毛片 | 天天做天天爱天天综合 | 国产日韩在线欧美视频免费观看 | 青娱乐国产无码 | www.污污污在线观看 |