1. 程式人生 > 其它 >搭建本地 golang 文件伺服器

搭建本地 golang 文件伺服器

平時我們看 golang 文件的方式通常有:

  1. go doc <package>
  2. golang.org/pkg 或者國內的 godoc.golangtc.com/pkg/
  3. 看原始碼,當然這是最好的方式,只是需要更多的時間和耐心。

如果沒有網路,我一般會選擇 方式1 + 方式3,但缺點是可讀性差。

後來瞭解到,godoc -html <package> 可以生成 HTML 文件,所以就思考如何搭建本地的 localhost:3000/pkg

先取個名字,godocserver

步驟如下:

  1. 獲取所有 golang built-in packages 名稱
  2. 遍歷所有 packages 執行 godoc -html <package>
  3. 儲存所有檔案,啟動一個靜態檔案伺服器

利用 Ruby 實現 步驟1、2,要注意遍歷 $GOPATH/src/ 時要過濾一些不需要的目錄,建立檔案時,要先建立對應的目錄。

啟動靜態伺服器用 golang 和 ruby 都可以,我用的是 negroni,就三行程式碼。

問題是,這樣的頁面完全沒有樣式啊,所以我不得不去 golang.org/pkg 上 copy css 和 js 檔案。

然後將 Index 的樣式修改成這樣:

最後實現 package 導航:

這個功能我們需要知道所有已存文件的名稱,所以我們需要維護一個檔案 all_documents.json 供前端使用,然後我們需要做一個帶有過濾功能的列表。這裡用 Vue.js 作雙向資料繫結(好用,好用,好用)。

至此,我們就可以愉快的在本地看 golang 文件啦。