搭建本地 golang 文档服务器

AntonydasWang · · 2392 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

平时我们看 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 的样式修改成这样: ![show.png](http://upload-images.jianshu.io/upload_images/17174-9be96146433722ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 最后实现 package 导航: ![nav.png](http://upload-images.jianshu.io/upload_images/17174-ed07c5f6aeff98a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 这个功能我们需要知道所有已存文档的名称,所以我们需要维护一个文件 all_documents.json 供前端使用,然后我们需要做一个带有过滤功能的列表。这里用 Vue.js 作双向数据绑定(好用,好用,好用)。 至此,我们就可以愉快的在本地看 golang 文档啦。 更多阅读: [godocserver 项目地址](https://github.com/Focinfi/godocserver) [Vuejs 初试](http://www.jianshu.com/p/20bb1a8fe686)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2392 次点击  
加入收藏 微博
1 回复  |  直到 2016-07-15 16:54:34
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传