Hermes社区贡献指南:如何参与项目开发和提交PR
Hermes社区贡献指南如何参与项目开发和提交PR【免费下载链接】hermesGolang package that generates clean, responsive HTML e-mails for sending transactional mail项目地址: https://gitcode.com/gh_mirrors/he/hermes想要为Hermes电子邮件生成库贡献力量吗 这篇完整的贡献指南将为你详细介绍参与这个优秀的Go语言电子邮件模板生成项目的正确方式。无论你是想修复bug、添加新功能还是创建全新的邮件主题模板这份指南都能帮助你快速上手。 准备工作与代码规范在开始贡献之前请确保你已经完成了以下准备工作Fork仓库并克隆到本地git clone https://gitcode.com/gh_mirrors/he/hermes cd hermes熟悉项目结构主包代码hermes.go默认主题实现default.goFlat主题实现flat.go测试文件hermes_test.go示例代码examples/代码质量检查项目使用gometalinter进行代码规范检查请确保你的代码符合项目风格# 运行项目中的代码检查 gometalinter --config.gometalinter.json ./... 创建新主题模板如果你想为Hermes添加新的内置主题模板这是最常见的贡献方式。以下是详细的步骤步骤1理解主题接口首先你需要了解Theme接口的定义在hermes.go中type Theme interface { Name() string HTMLTemplate() string PlainTextTemplate() string }步骤2创建主题文件创建一个新的Go文件以你的主题名命名例如modern.go。可以参考现有的主题实现复制default.go的内容作为起点修改HTML和纯文本模板确保实现所有必需的接口方法步骤3添加注入代码片段根据CONTRIBUTING.md中的注入代码片段部分将以下元素正确注入到你的模板中产品品牌标识邮件标题和问候语介绍文本字典键值对数据表格数据操作按钮或邀请码结尾语和签名版权信息这是一个账户确认邮件的示例模板展示了Hermes生成的精美邮件界面步骤4测试你的主题创建测试以确保你的主题正常工作在hermes_test.go中添加你的主题到测试主题列表中在examples文件夹中为你的主题创建示例文件夹创建至少3个示例文件欢迎邮件、重置密码、收据运行示例生成HTML和纯文本邮件cd examples go run *.go步骤5添加主题截图和文档更新README.md文件在Supported Themes部分添加主题名称和作者信息主题的截图使用说明维护通知模板展示了Hermes支持的自由Markdown功能 修复Bug或添加功能如果你发现了bug或者有功能改进的想法1. 创建Issue在提交代码之前请先创建一个Issue来描述Bug的详细复现步骤期望的行为实际的行为相关的环境信息2. 编写简洁的提交保持提交小而专注每个提交只解决一个问题或添加一个功能编写详细的提交信息遵循项目的提交命名约定3. 运行测试确保你的更改不会破坏现有功能go test ./... 提交PR的最佳实践当你准备好提交Pull Request时请遵循以下准则PR标题格式使用清晰、描述性的标题例如feat: 添加Modern主题支持fix: 修复表格对齐问题docs: 更新贡献指南PR描述内容在PR描述中应该包含更改的简要说明相关Issue的链接测试覆盖情况截图如果是UI/主题相关更改代码审查要点确保代码风格一致添加适当的测试更新相关文档考虑向后兼容性订单收据模板展示了Hermes如何处理商业交易邮件 高级贡献自定义主题如果你想创建自定义主题但不希望包含在Hermes主仓库中实现自定义主题创建实现Theme接口的结构体提供HTML和纯文本模板在初始化Hermes时指定你的主题详细示例可以在CONTRIBUTING.md的Using a Custom Theme部分找到。 测试你的贡献在提交PR之前请确保运行所有测试go test ./...生成示例邮件检查HTML和纯文本输出在不同邮件客户端测试使用环境变量发送测试邮件代码覆盖率确保新代码有适当的测试覆盖 社区协作准则保持友好和尊重我们都是开源社区的贡献者提供建设性反馈在代码审查中提供具体的改进建议及时响应如果维护者提出问题请及时回复持续学习每个PR都是一个学习和改进的机会 资源与学习官方Go模板指南Go模板教程Hugo模板指南Blackfriday Markdown渲染器 总结参与Hermes项目的贡献不仅能够改进这个优秀的电子邮件生成库还能让你深入了解Go语言模板系统和电子邮件开发的最佳实践。记住每个贡献无论大小都对项目的发展至关重要。准备好开始了吗Fork仓库选择一个Issue或创建新功能然后提交你的第一个PR吧感谢你考虑为Hermes项目做出贡献你的每一份努力都将帮助这个项目变得更好。【免费下载链接】hermesGolang package that generates clean, responsive HTML e-mails for sending transactional mail项目地址: https://gitcode.com/gh_mirrors/he/hermes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考