自帶官網
Go 1.0 發布時,安裝包中自帶 godoc 程序,通過該程序可以在本地搭建一個官網鏡像:
godoc -http=:6060
打開瀏覽器訪問 http://localohst:6060 ,看到如下頁面:
這解決了我們訪問不了 Go 官網的問題,我也借此搭建了一個 Go 官網鏡像。
從主倉庫剝離
從 Go1.2 開始,godoc 從 Go 主倉庫剝離,放入了 https://github.com/golang/tools 中。這時,如果想要本地搭建 Go 官網鏡像,可以通過 go get 命名安裝:
go get golang.org/x/tools/cmd/godoc
但那時候這樣多半安裝不成功,因爲 golang.org 訪問不了。
官網改版
2019 年,官網做了改版,也就是現在的樣子。代碼也不再使用 golang.org/x/tools/cmd/godoc,而是使用新倉庫 https://github.com/golang/website,相當於完全重寫。
要在本地搭建官網鏡像,clone 該倉庫代碼,然後執行如下命令即可:
go run ./cmd/golangorg
新官網長這樣:
但有兩個問題:
官方部落格在單獨的域名:https://blog.golang.org;play 在另一個單獨的域名:https://play.golang.org;
這兩個域名一樣訪問不了。而且,雖然 Go 官方特意爲我們搭建了 https://golang.google.cn,但這是閹割版,沒有 blog 和 play。
play 主程序在 https://github.com/golang/tools 倉庫中,而 blog 在 https://github.com/golang/blog 中, 爲了搭建自己的 blog,得費一番心思。
Go1.16 發布後,使用了 Go 内嵌功能。最近在 website 倉庫中,把 blog 也包含進來了(原 blog 倉庫也刪除了),同時 go.dev 網站主程序也放在了 website 中。
現在 Go 語言中文網搭建的 Go 官網鏡像可以正常訪問 blog 和 play,歡迎使用。
總結
Go 官網在 website 倉庫中,一個網站涉及幾個程序,之前分開好幾個項目。現在,通過 website 集中管理,同樣的代碼放在了該項目的 internal 子包中。
現在自己搭建一個 Go 官網鏡像,只要 clone website 倉庫代碼,運行
go run ./cmd/golangorg
即可。