Thank you for your interest in contributing to Goop! This document provides guidelines for contributors.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Clone your fork
git clone https://github.com/ez0000001000000/Goop.git
cd Goop
# Install dependencies
go mod tidy
# Run tests
go test ./...
# Run example
cd test && go run test_goop.go- Follow Go conventions and formatting (
go fmt) - Keep functions small and focused
- Add comments for public APIs
- Include examples in documentation
- Add tests for new features
- Ensure all tests pass (
go test ./...) - Test with real websites when applicable
- Use GitHub Issues
- Include Go version and OS
- Provide minimal reproduction code
- Include error messages
- Use GitHub Issues
- Describe use case clearly
- Consider API compatibility
- Bug fixes
- Performance improvements
- New scraping features
- Documentation improvements
goop/
├── goop.go # Main package exports and Root struct
├── goop-client.go # HTTP client operations
├── goop-parser.go # HTML parsing
├── goop-element.go # Element finding and traversal
├── goop-attributes.go # Attribute handling and text extraction
├── goop-errors.go # Error types and handling
└── test/
└── test_goop.go # Comprehensive test script
By contributing, you agree that your contributions will be licensed under the same terms as the project.
Feel free to open an issue for any questions about contributing!