* chore: use monorepo to manage demo, test and other applications and internal packages * style: add eslint support and lint code * chore: refactor project structure and add versioning package replace of fixit-releaser * chore(deps-dev): replace husky with simple-git-hooks * Potential fix for code scanning alert no. 13: Shell command built from environment values * chore(deps-dev): update the final fixit-releaser version * docs: update contributing guidelines for new structure and commands --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
3.5 KiB
CONTRIBUTING
Make sure that you follow CODE_OF_CONDUCT.md while contributing and engaging in the discussions.
Prerequisites
Before you start contributing, make sure you have the following tools installed:
- Node.js (>= 20.0.0) - Required for package management and build tools
- Hugo Extended (>= 0.147.7) - The static site generator
- pnpm - Package manager (recommended)
You can check your installed versions:
node --version
hugo version
pnpm --version
How to contribute to this project
First, fork this repository by clicking the fork button.
Next, clone your forked repo.
git clone https://github.com/hugo-fixit/FixIt.git && cd FixIt
Then, install the dev dependencies.
pnpm install
And now you are ready to go!
Here are some useful commands for development:
Development
# Start demo site development server
pnpm dev:demo
# Start test site development server
pnpm dev:test
# Start documentation development server (requires fixit-docs as sibling directory)
pnpm dev:docs
Tip
- Add
-e productionto the development command to check the production environment, e.g.pnpm dev:test -e production.- For documentation-related theme changes, it is recommended to clone both
FixItandfixit-docsas sibling directories.
Building
# Build demo site
pnpm build:demo
# Build test site
pnpm build:test
# Build all sites
pnpm build
Preview
# Preview the built site locally (requires build first)
pnpm preview
Project Structure
Understanding the project structure will help you contribute more effectively:
FixIt/
├── apps/ # Minimal sites
│ ├── demo/ # Demo site
│ └── test/ # Test site
├── archetypes/ # Content templates
├── assets/ # Theme assets
│ ├── css/ # SCSS stylesheets
│ ├── js/ # JavaScript files
│ ├── images/ # Image assets
│ └── lib/ # Third-party libraries
├── i18n/ # Internationalization files
├── layouts/ # Hugo template files
│ ├── _markup/ # Hugo render hooks
│ ├── _partials/ # Reusable template components
│ └── _shortcodes/ # Custom shortcodes
├── packages/ # Theme-related packages
├── static/ # Static files
├── hugo.toml # Default theme configuration
└── package.json # npm scripts and dependencies
Development Workflow
- Make your changes in the appropriate directories
- Test locally using
pnpm devorpnpm test - Check different environments with production builds
- Verify documentation changes with
pnpm dev:docs(if applicable) - Commit your changes following the commit message format below
Pull Request Guidelines
- Create a feature branch from
main - Make your changes with clear, focused commits
- Test your changes thoroughly
- Update documentation if needed
- Submit a pull request with a clear description
Finally, create a new pull request at https://github.com/hugo-fixit/FixIt/pulls to submit your contribution 🎉
Git Commit Guidelines
We follow the Conventional Commits specification for commit messages. This enables automatic changelog generation using our custom template: conventional.hbs.