搭建本地 golang 文件伺服器
阿新 • • 發佈:2022-05-04
平時我們看 golang 文件的方式通常有:
go doc <package>
- golang.org/pkg 或者國內的 godoc.golangtc.com/pkg/
- 看原始碼,當然這是最好的方式,只是需要更多的時間和耐心。
如果沒有網路,我一般會選擇 方式1 + 方式3,但缺點是可讀性差。
後來瞭解到,godoc -html <package>
可以生成 HTML 文件,所以就思考如何搭建本地的 localhost:3000/pkg
先取個名字,godocserver
步驟如下:
- 獲取所有 golang built-in packages 名稱
-
遍歷所有 packages 執行
godoc -html <package>
- 儲存所有檔案,啟動一個靜態檔案伺服器
利用 Ruby 實現 步驟1、2,要注意遍歷 $GOPATH/src/
時要過濾一些不需要的目錄,建立檔案時,要先建立對應的目錄。
啟動靜態伺服器用 golang 和 ruby 都可以,我用的是 negroni,就三行程式碼。
問題是,這樣的頁面完全沒有樣式啊,所以我不得不去 golang.org/pkg 上 copy css 和 js 檔案。
然後將 Index 的樣式修改成這樣:
最後實現 package 導航:
這個功能我們需要知道所有已存文件的名稱,所以我們需要維護一個檔案 all_documents.json 供前端使用,然後我們需要做一個帶有過濾功能的列表。這裡用 Vue.js 作雙向資料繫結(好用,好用,好用)。
至此,我們就可以愉快的在本地看 golang 文件啦。