Make sure that you follow CODE_OF_CONDUCT.md while contributing and engaging in the discussions.
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.156.0) - The static site generator
- pnpm - Package manager (recommended)
You can check your installed versions:
node --version
hugo version
pnpm --versionFirst, fork this repository by clicking the fork button.
Next, clone your forked repo.
git clone https://github.com/hugo-fixit/FixIt.git && cd FixItThen, install the dev dependencies.
pnpm installAnd now you are ready to go!
Here are some useful commands for 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:docsTip
- 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.
# Build demo site
pnpm build:demo
# Build test site
pnpm build:test
# Build all sites
pnpm build# Preview the built site locally (requires build first)
pnpm previewUnderstanding 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
- 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
- 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 ๐
We follow the Conventional Commits specification for commit messages. This enables automatic changelog generation using our custom template: conventional.hbs.