Skip to content

Conversation

@MohammadRaziei
Copy link

Summary

Hi! I’ve been using doxygen-awesome-css across several projects, and I often ran into the same issue:
to use the theme, I had to either add it as a submodule, clone the repo separately, or manually copy the files.
This makes updates harder, complicates CI setups, and sometimes leads to projects having outdated or inconsistent copies of the theme.

To solve this, I created a lightweight PyPI package that ships only the theme assets and provides a simple way to install them into any project.


How it works

pip install doxygen-awesome-css

Then install the files:

python -m doxygen_awesome_css --install .

(Verbose and quiet modes are also available.)

This approach makes it easier to:

  • avoid submodules
  • keep the theme versioned like any other dependency
  • simplify CI/CD pipelines
  • integrate the theme in Python-based documentation toolchains
  • prevent manual copy/paste mistakes

Notes

This PR doesn’t change the theme source code at all — it just adds an optional installation method for Python users.
I'm happy to maintain the PyPI package and keep it updated with future releases.

Thanks for the great project! 🚀

Add extensive .gitignore patterns for Python development environments including:
- Python cache files and compiled artifacts
- Virtual environments and environment files
- Package distribution directories
- Testing and coverage reports
- IDE-specific files (VS Code, Rope)
- Type checking cache (mypy)
- Hatch build system artifacts

These patterns prevent accidental commits of generated files and development environment artifacts commonly produced during Python development workflows.
Add pyproject.toml configuration file to set up modern Python packaging using hatch. This includes project metadata, build system configuration, version management from VERSION.txt, and code formatting tools (black and isort). The configuration enables proper package distribution with wheel builds and defines entry points for the doxygen-awesome-css command-line interface.
Add new Python module for installing Doxygen Awesome CSS theme files. The module provides an Installer class that handles copying CSS and JavaScript files to target directories with proper error handling and logging. This enables programmatic installation of the Doxygen Awesome theme files for documentation projects.
Add main entry point module to provide command-line interface for installing Doxygen Awesome CSS files. The CLI supports:
- Installing CSS/JS files to specified directories
- Verbose and quiet output modes
- Version information display
- Help documentation with usage examples

This enables users to easily install the theme files via command line rather than manual file copying.
Add Python package installation method to README with usage examples for
integrating the theme into Python projects. Also create VERSION.txt file
to track project version (2.4.1). These changes make the theme more
accessible to Python developers and improve version management.
Add a new GitHub Actions workflow that automates the build and release process for Python packages. The workflow includes:

- Building source distributions (sdist) on Ubuntu
- Building wheels for multiple platforms (Ubuntu and Windows) using cibuildwheel
- Automated releases to GitHub with proper tagging
- Publishing to PyPI when tags are pushed

The workflow triggers on pushes to master, pull requests, and tag pushes (for releases), providing continuous integration and deployment capabilities for the project.
Rename .github/workflows/wheel.yml to .github/workflows/wheel.yaml to maintain consistency with other workflow files in the repository that use the .yaml extension. This change standardizes file naming conventions across GitHub Actions workflows.
Update GitHub Actions workflow to use 'main' as the default branch instead of 'master' to align with modern naming conventions and industry standards. The workflow now triggers on pushes to the main branch and tags starting with 'v'.
Add macos-latest to the matrix strategy in the wheel.yaml GitHub workflow to enable building wheels for macOS in addition to existing Ubuntu and Windows support. This expands platform compatibility for the project.
Move package version and license metadata from VERSION.txt and __init__.py to a dedicated __about__.py module. This follows Python packaging best practices by keeping metadata separate from code logic. Update hatch configuration to read version from the new location.
- Replace matrix-based multi-OS wheel building with single universal wheel build
- Switch from cibuildwheel to standard python build tooling
- Remove submodules checkout as they're no longer needed
- Simplify artifact upload with single wheelhouse name and overwrite enabled
- Maintain PyPI release functionality while streamlining build process
- Update pyproject.toml to use setuptools build backend instead of hatchling
- Add setup.py with custom build step to copy CSS/JS assets
- Fix package directory path in installer to correctly locate assets
- Improve installer to create target directory if it doesn't exist
- Add setuptools package-data configuration for proper asset inclusion

The switch to setuptools provides better compatibility and allows proper inclusion of CSS/JS asset files in the package distribution. The installer now automatically creates missing target directories instead of failing.
Remove the build_sdist job from the GitHub Actions workflow since we're only building and releasing universal wheels. This simplifies the CI pipeline and reduces build time by eliminating redundant package distribution formats. The release job now only depends on the build_wheels job.
Update package version to 2.4.1.beta to indicate this is a beta release
preparing for the next stable version. This helps distinguish development
builds from production releases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant