Thank you for your interest in contributing to the MkDocs Header Dropdown Plugin!
If you find a bug or have a feature request:
- Check if the issue already exists in GitHub Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- MkDocs and plugin versions
- Sample configuration (if applicable)
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/mkdocs-header-dropdown.git cd mkdocs-header-dropdown -
Create a branch:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes:
- Follow the existing code style
- Add tests if applicable
- Update documentation if needed
-
Test your changes:
# Install in development mode pip install -e . # Test with a sample MkDocs site cd /path/to/test/site mkdocs build mkdocs serve
-
Commit your changes:
git add . git commit -m "Add: Brief description of your changes"
Use commit message prefixes:
Add:for new featuresFix:for bug fixesUpdate:for improvements to existing featuresDocs:for documentation changesRefactor:for code refactoring
-
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request:
- Go to the original repository
- Click "New Pull Request"
- Select your fork and branch
- Describe your changes
- Python 3.7 or higher
- MkDocs >= 1.4.0
- Material for MkDocs theme
# Clone the repository
git clone https://github.com/cms-cat/mkdocs-header-dropdown.git
cd mkdocs-header-dropdown
# Install in development mode
pip install -e .
# Or with development dependencies (if we add them later)
pip install -e ".[dev]"To test your changes:
- Create a test MkDocs site or use an existing one
- Install the plugin in development mode
- Configure the plugin in
mkdocs.yml - Run
mkdocs serveand verify functionality - Test with different configurations
- Test with light and dark themes
- Follow PEP 8 Python style guide
- Use meaningful variable and function names
- Add docstrings to classes and functions
- Keep functions focused and small
- Comment complex logic
When adding new features:
- Update README.md with basic usage
- Update USAGE.md with detailed examples
- Add examples to QUICKSTART.md if applicable
- Update CHANGELOG.md with your changes
We follow Semantic Versioning:
- MAJOR version for incompatible API changes
- MINOR version for new functionality (backwards compatible)
- PATCH version for bug fixes (backwards compatible)
Maintainers will handle releases:
- Update version in
pyproject.tomlandsetup.py - Update CHANGELOG.md
- Create a git tag:
git tag -a vX.Y.Z -m "Release vX.Y.Z" - Push tag:
git push origin vX.Y.Z - Create GitHub release from tag
Feel free to:
- Open an issue for questions
- Start a discussion on GitHub Discussions (if enabled)
- Contact the maintainers
By contributing, you agree that your contributions will be licensed under the MIT License.