AI-powered Hugo theme converter with Decap CMS integration
Project description
Hugoifier
Convert any website to a production-ready Hugo site with Decap CMS — pixel-perfect, no content loss.
How it works
Hugoifier takes three types of input and produces a deployable Hugo site with CMS:
| Input | Method | AI needed? |
|---|---|---|
| Hugo theme | Assembles, patches deprecated APIs, adds CMS | No |
| Next.js app | Captures rendered HTML from dev server | No |
| Raw HTML | Extracts head/body directly into Hugo templates | No |
AI is only used as a fallback (Next.js without a running dev server) or for lightweight structural analysis.
Quick start
pip install hugoifier
# Convert a Hugo theme
hugoifier complete themes/my-theme
# Convert a Next.js app (start your dev server first)
hugoifier complete path/to/nextjs-app
# Convert a raw HTML site
hugoifier complete path/to/html-site
Output goes to output/{name}/ — a complete Hugo site ready to serve:
cd output/my-site && hugo serve
What you get
- Hugo site with all content, styles, and assets preserved
- Decap CMS at
/admin/with GitHub OAuth (Cloudflare Pages Functions) functions/api/auth.js+callback.jsfor OAuth flow- Whitelabel CMS branding (
--cms-name,--cms-logo,--cms-color)
Deploy to Cloudflare Pages
hugo --minify
npx wrangler pages deploy public --project-name my-site
Set GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET as environment variables for CMS auth.
Configuration
# Choose AI backend (only needed for fallback conversion)
HUGOIFIER_BACKEND=anthropic # or openai, google
ANTHROPIC_API_KEY=sk-...
# Whitelabel CMS
hugoifier complete my-site --cms-name "My CMS" --cms-logo https://... --cms-color "#515be3"
Development
git clone https://github.com/ConflictHQ/hugoifier.git
cd hugoifier
pip install -e ".[dev]"
pytest
Built with
Hugoifier is built on top of two excellent open-source projects:
- Hugo — The world's fastest static site generator. Apache 2.0 licensed. Created by Steve Francia and Bjarne Pedersen and contributors.
- Decap CMS (formerly Netlify CMS) — Open-source content management for Git workflows. MIT licensed. Maintained by the Decap community.
We're grateful to both communities for building the tools that make this project possible.
License
MIT — see LICENSE for details.
Made by Conflict.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hugoifier-0.3.0.tar.gz.
File metadata
- Download URL: hugoifier-0.3.0.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cbc2aa29f31babbe224af2ee93ad1624bde25bd51210d69003d4365134ab4cb
|
|
| MD5 |
28e03503d5254bedcb6ea0de598fb087
|
|
| BLAKE2b-256 |
456d1990a4bdeec084438c5edeeb937f44626e15697c434560340d6088fe92c3
|
Provenance
The following attestation bundles were made for hugoifier-0.3.0.tar.gz:
Publisher:
publish.yml on ConflictHQ/hugoifier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugoifier-0.3.0.tar.gz -
Subject digest:
6cbc2aa29f31babbe224af2ee93ad1624bde25bd51210d69003d4365134ab4cb - Sigstore transparency entry: 1118963344
- Sigstore integration time:
-
Permalink:
ConflictHQ/hugoifier@117e421ba85e339749d7697639cdf1fb1f2eba24 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ConflictHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@117e421ba85e339749d7697639cdf1fb1f2eba24 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hugoifier-0.3.0-py3-none-any.whl.
File metadata
- Download URL: hugoifier-0.3.0-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01898553e385194e75eaefe89c246d6e95b8862232bf8bcd36bda230e02a42da
|
|
| MD5 |
4f87e7dd9e6f90d84466f6a57f1c03af
|
|
| BLAKE2b-256 |
62c55e45a0b52a2c7b51be2e61ebe7ab38aab7e49883f9440f6c9fa2c4d69f84
|
Provenance
The following attestation bundles were made for hugoifier-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on ConflictHQ/hugoifier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hugoifier-0.3.0-py3-none-any.whl -
Subject digest:
01898553e385194e75eaefe89c246d6e95b8862232bf8bcd36bda230e02a42da - Sigstore transparency entry: 1118963346
- Sigstore integration time:
-
Permalink:
ConflictHQ/hugoifier@117e421ba85e339749d7697639cdf1fb1f2eba24 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/ConflictHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@117e421ba85e339749d7697639cdf1fb1f2eba24 -
Trigger Event:
release
-
Statement type: