protoc plugin: generate markdown by pb file


Keywords
protoc, protoc-plugin
Install
go get github.com/x-lambda/protoc-gen-markdown

Documentation

protoc-gen-markdown

根据proto文件生成markdown文档

依赖protoc,请先安装protoc3

安装

go get -u github.com/x-lambda/protoc-gen-markdown

使用

protoc -I . --markdown_out=prefix=/api,package=demo.v0,filename=foo.md:. demo.proto
TODO

补充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的方式,则不需要安装这些二进制,可以直接在系统中集成即可。