根据proto文件生成markdown文档
依赖
protoc,请先安装protoc3
go get -u github.com/x-lambda/protoc-gen-markdownprotoc -I . --markdown_out=filename=foo.md:/tmp/doc_path demo.proto补充test case,手动创建一个CodeGeneratorRequest对象,然后使用proto.Marshal()序列化成字节对象,
最后通过buffer包装成io.Reader,验证输出结果是否和预期一致。
CodeGeneratorRequest对象比较复杂,可以参考已有的文档/项目来理解
github.com/davyxu/pbmeta
项目将protoc传递的CodeGeneratorRequest对象输出到文件
tips: 重复造了一个轮子的初衷是,现有的protoc-gen-markdown作为一个二进制文件,不好集成到其他系统中。 因此,想单独提供一个package的方式,可以让其他项目引用。generator.ReadGenRequest()可以接受不同的源,例如可以自定义一个合法的CodeGeneratorRequest对象, 放到buffer中,然后再通过ReadGenRequest()和Generator.Generate()转成CodeGeneratorResponse对象。 这样如果protoc也提供package的方式,则不需要安装这些二进制,可以直接在系统中集成即可。
markdown锚点设置