国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

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

wpw / 603人閱讀

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

工作后一直在從事PHP開(kāi)發(fā), 從以前的大包大攬到現(xiàn)在的退居服務(wù)端寫(xiě)接口, 當(dāng)中接觸過(guò)幾個(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, 需要在代碼中寫(xiě)大量的注釋去配合

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

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

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

主要目標(biāo):

可以多人編輯

可以在瀏覽器中查看

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

支持多級(jí)目錄

支持markdown

快, 方便

解決方法:

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

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

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

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

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

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

其中遇到的問(wèn)題: 增量編譯

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

刪除多余文件

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

整合dtree.js

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

組裝, 美化HTML

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

支持多級(jí)目錄

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

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

后來(lái)發(fā)現(xiàn), 每次用git commit 前要先手動(dòng)在命令行里編譯一下(php compile.php)覺(jué)得麻煩,
就給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.specialneedsforspecialkids.com/yun/28204.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<