https://github.com/x-lambda/protoc-gen-markdown
protoc plugin: generate markdown by pb file
https://github.com/x-lambda/protoc-gen-markdown
protoc protoc-plugin
Last synced: 30 days ago
JSON representation
protoc plugin: generate markdown by pb file
- Host: GitHub
- URL: https://github.com/x-lambda/protoc-gen-markdown
- Owner: x-lambda
- Created: 2021-04-10T02:08:37.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-10-24T09:14:36.000Z (over 3 years ago)
- Last Synced: 2024-06-20T10:06:00.853Z (about 2 years ago)
- Topics: protoc, protoc-plugin
- Language: Go
- Homepage:
- Size: 51.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# protoc-gen-markdown
根据`proto`文件生成`markdown`文档
> 依赖`protoc`,请先安装`protoc3`
### 安装
```shell
go get -u github.com/x-lambda/protoc-gen-markdown
```
### 使用
```shell
protoc -I . --markdown_out=filename=foo.md:/tmp/doc_path 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`的方式,则不需要安装这些二进制,可以直接在系统中集成即可。
##### TODO
markdown锚点设置