成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

PHP實(shí)現(xiàn)markdown文檔管理工具

wpw / 663人閱讀

摘要:工作后一直在從事開發(fā)從以前的大包大攬到現(xiàn)在的退居服務(wù)端寫接口當(dāng)中接觸過幾個(gè)的接口文檔管理工具或系統(tǒng)簡(jiǎn)單描述下功能全面而且簡(jiǎn)潔有用戶權(quán)限管理功能支持支持導(dǎo)出有多種文檔模板目錄支持兩級(jí)折疊功能強(qiáng)大權(quán)限管理郵件提醒全文搜索插件管理等重收費(fèi)的一個(gè)文

工作后一直在從事PHP開發(fā), 從以前的大包大攬到現(xiàn)在的退居服務(wù)端寫接口, 當(dāng)中接觸過幾個(gè)的接口文檔管理工具或系統(tǒng), 簡(jiǎn)單描述下:

showdoc, 功能全面而且簡(jiǎn)潔, 有用戶,權(quán)限管理功能, 支持markdown, 支持導(dǎo)出word, 有多種文檔模板, 目錄支持兩級(jí)折疊

confluence, 功能強(qiáng)大(權(quán)限管理, 郵件提醒, 全文搜索, 插件管理等), 重, 收費(fèi)的一個(gè)文檔管理系統(tǒng)

swagger, 需要在代碼中寫大量的注釋去配合

readmine, 功能豐富類似confluence, 它的文檔是以txt保存的, 可以追溯變更, 可以全文搜索, 但是寫文檔有點(diǎn)痛苦, 適合任務(wù)/bug跟蹤管理等

gitbook, nodejs安裝, 支持markdown, 支持npm插件, 左側(cè)的可折疊的目錄樹就需要裝插件, 也可以裝搜索插件, 目錄是多帶帶的markdown文件, 我使用的時(shí)候感覺從md到HTML編譯太慢(600+的文檔, 要編譯25分鐘多, 如果有增量編譯或提高編譯速度的插件還請(qǐng)各位賜教)

兩個(gè)月前因?yàn)轫?xiàng)目的原因需要一個(gè)簡(jiǎn)單的工具來管理接口文檔, 這次就把開發(fā)過程中的經(jīng)歷記錄在這里, 拋磚引玉~

主要目標(biāo):

可以多人編輯

可以在瀏覽器中查看

有一個(gè)可以自動(dòng)展開并高亮的目錄

支持多級(jí)目錄

支持markdown

快, 方便

解決方法:

結(jié)合git就可以實(shí)現(xiàn), 正好也可以利用git的權(quán)限管理功能

需要將markdown編譯成HTML文件部署到內(nèi)網(wǎng)

因?yàn)橐跒g覽器中查看, 這里最終選擇了接入簡(jiǎn)單, 界面清爽, 無依賴的dtree.js (不依賴jQuery)

這個(gè)功能用了樹的后根序遍歷算法實(shí)現(xiàn)了對(duì)多級(jí)文件的讀取(沒有用遞歸, 擔(dān)心寫著寫著把自己繞進(jìn)去), 正好dtree.js 也支持多級(jí)目錄折疊

這里我選擇了segmentfault官方出的PHP編譯工具類,改用 parsedown (相較sf的類他沒有安全校驗(yàn), 支持單行內(nèi)多個(gè)換行符)

快: 編譯600多個(gè)文件, PHP用時(shí)1s左右,可以接受, 而且支持增量編譯; 方便: 主要體現(xiàn)在目錄是自動(dòng)生成的, 不需要多帶帶在編寫目錄

其中遇到的問題: 增量編譯

剛開始判斷一個(gè)md文件是否需要編譯成HTML, 是拿md文件的創(chuàng)建時(shí)間和最后修改時(shí)間做對(duì)比進(jìn)行判斷的,
但是后來發(fā)現(xiàn), 一些復(fù)制來的, 重命名的文件用這個(gè)方法就不起作用.
最后使用了一個(gè)中間文件, 去記錄本次編譯的文件的時(shí)間, 再跟 max(創(chuàng)建時(shí)間, 最后修改時(shí)間)對(duì)比判斷是否需要編譯

刪除多余文件

后續(xù)使用過程中發(fā)現(xiàn), 有些md文檔被刪除了, 但是沒有自動(dòng)刪除最終編譯后的文件,
因此, 在編譯時(shí)會(huì)對(duì)md文件和最后的HTML文件求一個(gè)差集, 刪掉那些多余的HTML文件

整合dtree.js

首先, dtree.js需要一定要求的json數(shù)據(jù)才能顯示目錄和進(jìn)行展開和折疊的交互
還有, dtree.js字體比較小, 他的圖片,樣式,腳本文件都是相對(duì)路徑, 我這里對(duì)路徑做了相應(yīng)修改, 使之改為基于當(dāng)前域名的絕對(duì)路徑, 這樣部署到不同的域名下是不用修改dtree.js代碼的層級(jí)目錄的

組裝, 美化HTML

組裝是事先寫好HTML的頭部, 底部, 側(cè)邊欄等的HTML代碼, 然后把這些內(nèi)容與編譯后的內(nèi)容進(jìn)行組裝, 最后再放到相應(yīng)的文件夾中去
美化, 這個(gè)主要是因?yàn)閙arkdown編譯工具并沒有對(duì)生成的HTML元素(例如, table, code)添加樣式, 我這里找了一些簡(jiǎn)潔的css樣式進(jìn)行了美化

支持多級(jí)目錄

這個(gè)也是耗費(fèi)了我大量腦細(xì)胞寫出來的, 大學(xué)的時(shí)候?qū)憚?dòng)態(tài)哈夫曼編碼算法的時(shí)候?qū)崿F(xiàn)過一次樹的遍歷,
本以為駕輕就熟, 誰知道折騰到夜里3點(diǎn)多才最終寫好, 這個(gè)功能也算是核心組件之一了吧

手動(dòng)編譯太麻煩

后來發(fā)現(xiàn), 每次用git commit 前要先手動(dòng)在命令行里編譯一下(php compile.php)覺得麻煩,
就給git加了一個(gè)hook, 在提交之前自動(dòng)執(zhí)行編譯命令, 這樣就方便多了

最后附上源代碼 源代碼(碼云git) 使用方法(cnblog) 例子 效果圖

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28204.html

相關(guān)文章

  • Wizard 開源文檔管理系統(tǒng)1.0發(fā)布啦

    摘要:總結(jié)如果你在為公司尋找一款開源免費(fèi)的開發(fā)文檔文檔管理工具,不妨考慮一下項(xiàng)目,一定不會(huì)讓你失望的。 Wizard 是一款開源文檔管理系統(tǒng),項(xiàng)目地址為 https://github.com/mylxsw/wizard。這個(gè)項(xiàng)目是 我 在2017年就開始開發(fā)的,起初只是想做一款能夠在公司內(nèi)部把Swagger文檔管理起來的工具,但在這近兩年的時(shí)間里,一直斷斷續(xù)續(xù)的為其添加各種功能,現(xiàn)在終于下決...

    cod7ce 評(píng)論0 收藏0
  • 【譯】PHP:40+開發(fā)工具推薦

    摘要:今天,就為開發(fā)者介紹個(gè)方便的工具。對(duì)開發(fā)者來說,是一個(gè)非常有用的工具,它提供了超過個(gè)有用的函數(shù)。該工具檢查輸入源代碼和報(bào)告任何違反給定的標(biāo)準(zhǔn)。框架是一個(gè)開發(fā)的工具。它側(cè)重于安全性和性能,絕對(duì)是最安全的開發(fā)框架之一。 PHP是為Web開發(fā)設(shè)計(jì)的服務(wù)器腳本語言,但也是一種通用的編程語言。超過2.4億個(gè)索引域使用PHP,包括很多重要的網(wǎng)站,例如Facebook、Digg和WordPress。...

    dreambei 評(píng)論0 收藏0
  • 常用 composer 包推薦

    摘要:名稱用途說明說明地址簡(jiǎn)單易用的請(qǐng)求庫官網(wǎng)地址功能強(qiáng)大的請(qǐng)求庫文檔輕量級(jí)配置加載類支持多種配置格式簡(jiǎn)單的緩存類提供多種緩存驅(qū)動(dòng)數(shù)字生成類似優(yōu)酷視頻支持多語言支持加鹽生成官網(wǎng)地址網(wǎng)站地圖生成器簡(jiǎn)單易用數(shù)據(jù)庫操作類支持各種常見數(shù)據(jù)庫文檔生成 名稱 用途說明 說明地址 mashape/unirest-php 簡(jiǎn)單易用的HTTP請(qǐng)求庫 官網(wǎng)地址 guzzlehttp/guzzle ...

    Tamic 評(píng)論0 收藏0
  • 開箱即用-簡(jiǎn)潔實(shí)用的ImgURL圖床相冊(cè)程序和Zdir目錄列表程序(文件管理器)

    摘要:本篇文章就來分享一下兩款開箱即用上手容易的圖床相冊(cè)程序和在線文件管理器目錄列表程序,由好友開發(fā)并維護(hù),非常適合個(gè)人站長(zhǎng)用作圖床相冊(cè)和文件下載分享。雖然說現(xiàn)在照片還有文件存儲(chǔ)等都可以上傳到網(wǎng)盤中,但是國(guó)內(nèi)的網(wǎng)盤與國(guó)外的網(wǎng)盤存儲(chǔ)還有點(diǎn)不一樣。以百度網(wǎng)盤與Dropbox對(duì)比為例,百度網(wǎng)盤頂多算是一個(gè)個(gè)人用來存放私人照片和文件的網(wǎng)絡(luò)硬盤,如果用來分享的話很容易被百度限制或者取消下載。很多的個(gè)人站長(zhǎng)為...

    番茄西紅柿 評(píng)論0 收藏2637
  • 開源的api文檔管理系統(tǒng)

    摘要:國(guó)外的話國(guó)內(nèi)的國(guó)內(nèi)開源的非常好用的一款文檔管理系統(tǒng),安裝也非常方便,只需將源代碼放到項(xiàng)目目錄下自動(dòng)安裝運(yùn)行即可,不要要注意版本必須大于界面簡(jiǎn)潔功能強(qiáng)大的阿里的接口管理工具,開源免費(fèi),接口自動(dòng)化,數(shù)據(jù)自動(dòng)生成,自動(dòng)化測(cè)試,企業(yè)級(jí)管理。 在項(xiàng)目中,需要協(xié)同開發(fā),所以會(huì)寫許多API文檔給其他同事,以前都是寫一個(gè)簡(jiǎn)單的TXT文本或Word文檔,口口相傳,這種方式比較老土了,所以,需要有個(gè)api...

    zsirfs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<