
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
protoc-gen-gotemplateprotoc-gen-gotemplate 是一个基于 https://developers.google.com/protocol-buffers/ 的通用代码/脚本/数据生成器。作为 Google Protocol Buffers 编译器(protoc)的生成器插件,它解析 protobuf 文件生成抽象语法树(AST),并遍历本地模板目录,使用 https://golang.org/pkg/text/template/ 生成文件。
protoc-gen-gotemplate 需要一个 template_dir 目录(默认 ./templates)。所有以 .tmpl 结尾的文件都会被处理,并按照 template_dir 的目录结构写入目标文件夹,同时移除 .tmpl 扩展名。
示例:
console$> ls -R input.proto templates/doc.txt.tmpl templates/config.json.tmpl $> protoc --gotemplate_out=. input.proto $> ls -R input.proto templates/doc.txt.tmpl templates/config.json.tmpl doc.txt config.json
可通过以下方式指定自定义选项:
console$> protoc --gotemplate_out=debug=true,template_dir=/path/to/template/directory:. input.proto
| 选项 | 默认值 | 接受值 | 描述 |
|---|---|---|---|
template_dir | ./template | 绝对或相对路径 | 查找模板的路径 |
destination_dir | . | 绝对或相对路径 | 输出文件的基础路径 |
single-package-mode | false | true 或 false | 若为 true,protoc 不接受同时编译多个包,但支持跨导入依赖查找 Message |
debug | false | true 或 false | 若为 true,protoc 生成更详细的输出 |
all | false | true 或 false | 若为 true,无 Service 的 protobuf 文件也会被解析 |
使用提示
该项目使用 https://github.com/Masterminds/sprig 库,并扩展了 https://golang.org/pkg/text/template 的内置辅助函数。以下是部分新增函数(非完整列表):
add、boolFieldExtension、camelCase、contains、divide、fieldMapKeyType、fieldMapValueTypefirst、getEnumValue、getMessageType、getProtoFile、goNormalize、goTypeWithPackagegoType、goZeroValue、haskellType、httpBody、httpPath、httpPathsAdditionalBindingshttpVerb、index、int64FieldExtension、isFieldMap、isFieldMessageTimeStamp、isFieldMessageisFieldRepeated、jsSuffixReserved、jsType、json、kebabCase、last、leadingCommentleadingDetachedComments、lowerCamelCase、lowerFirst、lowerGoNormalize、multiplynamespacedFlowType、prettyjson、replaceDict、shortType、snakeCase、splitArraystringFieldExtension、stringMethodOptionsExtension、string、subtract、trailingCommenttrimstr、upperFirst、urlHasVarsFromMessage完整函数列表请参见项目帮助文档。
console$> docker run --rm -v "$(pwd):$(pwd)" -w "$(pwd)" moul/protoc-gen-gotemplate -I. --gotemplate_out=./output/ ./*.proto
MIT
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务