{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Hugoifier","text":"<p>AI-powered Hugo theme converter with Decap CMS integration.</p> <p>Hugoifier converts any HTML/CSS theme into a production-ready Hugo site \u2014 complete with layouts, content structure, and a fully configured Decap CMS admin panel. Supports Anthropic Claude, OpenAI GPT-4, and Google Gemini as AI backends.</p>"},{"location":"#features","title":"Features","text":"<ul> <li>HTML \u2192 Hugo \u2014 AI converts raw HTML/CSS templates into valid Hugo Go template files with proper partials, blocks, and template variables</li> <li>Multi-backend AI \u2014 Route to Anthropic (default), OpenAI, or Google Gemini via <code>HUGOIFIER_BACKEND</code></li> <li>Decap CMS out of the box \u2014 Auto-generates <code>static/admin/config.yml</code> by introspecting your content structure, including deeply nested collections</li> <li>Hugo API modernization \u2014 Automatically patches deprecated Hugo APIs (<code>.Site.DisqusShortname</code>, <code>.Site.GoogleAnalytics</code>, <code>paginate</code>, etc.) for Hugo \u2265 v0.128</li> <li>Whitelabel CMS \u2014 Customize the Decap admin panel name, logo, and color per deployment</li> <li>Smart theme detection \u2014 Handles messy zip-extracted directory structures, skips <code>__MACOSX</code> artifacts, detects <code>exampleSite</code> automatically</li> <li>Docker support \u2014 Fully containerized with <code>docker-compose.yml</code></li> </ul>"},{"location":"#quick-start","title":"Quick Start","text":"<pre><code># Install dependencies\npip install -r requirements.txt\n\n# Set your AI backend key\nexport ANTHROPIC_API_KEY=your_key_here\n\n# Convert a Hugo theme\npython src/cli.py complete themes/my-theme\n\n# Convert raw HTML\npython src/cli.py complete path/to/html-theme/\n\n# Output goes to output/{theme-name}/ by default\ncd output/my-theme && hugo serve\n</code></pre>"},{"location":"#installation","title":"Installation","text":"From sourceDocker <pre><code>git clone https://github.com/ConflictHQ/hugoifier.git\ncd hugoifier\npip install -r requirements.txt\n</code></pre> <pre><code>git clone https://github.com/ConflictHQ/hugoifier.git\ncd hugoifier\nANTHROPIC_API_KEY=your_key docker compose up\n</code></pre>"},{"location":"#requirements","title":"Requirements","text":"<ul> <li>Python 3.11+</li> <li>At least one AI API key: <code>ANTHROPIC_API_KEY</code>, <code>OPENAI_API_KEY</code>, or <code>GOOGLE_API_KEY</code></li> <li>Hugo extended (for building the output site)</li> </ul>"},{"location":"#pipeline-overview","title":"Pipeline Overview","text":"<pre><code>Input (Hugo theme or raw HTML)\n \u2193\n[Theme Finder] \u2014 detect Hugo theme vs raw HTML\n \u2193\n[Hugoify] \u2014 AI converts HTML \u2192 Hugo layouts (raw HTML only)\n \u2193\n[Assemble] \u2014 copy theme + exampleSite, write hugo.toml\n \u2193\n[Theme Patcher] \u2014 fix deprecated Hugo APIs\n \u2193\n[Decapify] \u2014 generate Decap CMS config from content structure\n \u2193\noutput/{theme-name}/ \u2190 ready to run with hugo serve\n</code></pre>"},{"location":"#license","title":"License","text":"<p>MIT License \u2014 Copyright \u00a9 2026 CONFLICT LLC. All rights reserved.</p>"},{"location":"about/","title":"Why Hugo + Cloudflare?","text":"<p>Most websites don't need a database, a server, or a $200/month hosting bill. They need fast, reliable delivery of content that doesn't change on every request. Hugo and Cloudflare Pages are built exactly for that \u2014 and together they're one of the best stacks for anyone who just needs a website.</p>"},{"location":"about/#why-hugo","title":"Why Hugo","text":""},{"location":"about/#no-database","title":"No Database","text":"<p>Traditional CMS platforms \u2014 WordPress, Drupal, Ghost \u2014 hit a database on every page load. That database is the single biggest source of downtime, security vulnerabilities, and scaling headaches. Hugo generates pure static HTML at build time. There is no database. There is nothing to query, nothing to corrupt, nothing to patch.</p>"},{"location":"about/#unhackable-by-design","title":"Unhackable by Design","text":"<p>If there's no server-side code running when a visitor hits your site, there's nothing to exploit. No PHP injection. No SQL injection. No session hijacking. No CVE-of-the-week to scramble and patch at 2am. A static site's attack surface is essentially zero \u2014 you're just serving files.</p>"},{"location":"about/#markdown-content","title":"Markdown Content","text":"<p>Your content lives in plain <code>.md</code> files in a Git repository. That means:</p> <ul> <li>Version-controlled \u2014 every edit is tracked, every change is reversible</li> <li>Portable \u2014 no vendor lock-in, no proprietary export format</li> <li>Writable anywhere \u2014 any text editor, any machine, offline</li> <li>Diffable \u2014 you can review content changes in a PR like code changes</li> </ul>"},{"location":"about/#built-for-the-edge","title":"Built for the Edge","text":"<p>Hugo compiles your site to pure static HTML at build time. There's no server, no runtime, no application to deploy \u2014 just files. That means the output can be dropped onto any CDN and served directly from the edge, everywhere in the world, simultaneously.</p> <p>When a visitor hits your site, Cloudflare serves the HTML from a data center that's physically close to them \u2014 often within milliseconds of their location. There's no origin server to round-trip to, no database query in the critical path, no cold start. The page is already there, pre-rendered, waiting.</p> <p>This is what \"edge-native\" actually means in practice: static HTML that travels well. Every CDN on the planet \u2014 Cloudflare, Fastly, AWS CloudFront, GitHub Pages \u2014 is designed exactly for this. You get global low-latency delivery for free, as a natural consequence of how Hugo works.</p>"},{"location":"about/#fast-really-fast","title":"Fast. Really Fast.","text":"<p>Hugo is written in Go and builds thousands of pages in under a second. But the build speed is almost beside the point \u2014 the real win is that the output is fast. Pre-rendered HTML with no runtime processing means your pages load in milliseconds, anywhere in the world, without caching tricks, optimization layers, or infrastructure tuning.</p>"},{"location":"about/#easy-to-maintain","title":"Easy to Maintain","text":"<p>No plugins to update. No runtime dependencies to keep in sync. No hosting environment to babysit. The site you build today will still build correctly in five years from the same source files.</p>"},{"location":"about/#why-cloudflare-pages","title":"Why Cloudflare Pages","text":""},{"location":"about/#free-hosting-that-actually-scales","title":"Free Hosting That Actually Scales","text":"<p>Cloudflare Pages has no bandwidth limits on the free tier. Your site is served from Cloudflare's global edge network \u2014 over 300 data centers worldwide \u2014 at no cost. Whether you get 10 visitors or 10 million, the bill doesn't change.</p> <p>GitHub Pages works the same way for public repositories. Both are production-grade CDN infrastructure available for free.</p>"},{"location":"about/#performance-at-the-edge","title":"Performance at the Edge","text":"<p>Static files served from the edge means the HTML is already at a data center close to your visitor before they even request it. There's no origin server round-trip, no cold start, no database query in the path. Time-to-first-byte is measured in single-digit milliseconds.</p>"},{"location":"about/#built-in-https-ddos-protection-analytics","title":"Built-in HTTPS, DDoS Protection, Analytics","text":"<p>Cloudflare wraps every site with:</p> <ul> <li>Automatic SSL certificates and HTTPS enforcement</li> <li>DDoS mitigation by default (the same protection enterprises pay for)</li> <li>Web analytics without tracking scripts</li> <li>Automatic redirects, custom headers, and edge functions if you ever need them</li> </ul>"},{"location":"about/#git-native-deployments","title":"Git-native Deployments","text":"<p>Push to <code>main</code>, site updates. Every PR gets a preview deployment at a unique URL. No deploy scripts, no CI configuration required.</p>"},{"location":"about/#why-github","title":"Why GitHub","text":"<p>Your site's content is a Git repository. That's not a technical detail \u2014 it's the whole point.</p> <p>Git gives you a complete, timestamped history of every word ever published on your site. Revert a bad edit in seconds. See exactly what changed and when. Run your content through pull request review before it goes live.</p> <p>GitHub adds a layer on top of that:</p> <ul> <li>Free hosting \u2014 GitHub Pages serves static sites directly from your repo at no cost, with a CDN and HTTPS included</li> <li>Collaboration \u2014 anyone with a GitHub account can fork your repo, propose changes, and submit a PR. No user accounts, no permissions system to manage</li> <li>Automation \u2014 GitHub Actions runs your Hugo build and deploys it on every push. The workflow is a file in your repo, version-controlled alongside your content</li> <li>Decap CMS integration \u2014 Decap CMS (which Hugoifier configures automatically) uses Git Gateway to commit content changes directly back to GitHub. Your editors use a clean web UI; under the hood it's just commits</li> <li>Single source of truth \u2014 content, theme, config, and deploy pipeline all live in one place. No external services to keep in sync, no credentials to rotate, no staging environments to maintain</li> </ul> <p>GitHub is free for public repositories and has been running reliably for over 15 years. For a website, it's all the infrastructure you need.</p>"},{"location":"about/#the-case-against-overbuilding","title":"The Case Against Overbuilding","text":"<p>The internet is full of websites that are WordPress or Next.js or a React SPA backed by a database \u2014 not because those sites need any of that, but because that's what the developer knew how to build.</p> <p>A restaurant menu doesn't need a database. A portfolio doesn't need server-side rendering. A documentation site doesn't need a JavaScript framework.</p> <p>Hugo + Cloudflare Pages gives you a site that:</p> <ul> <li>Costs $0/month to host (or very close to it)</li> <li>Loads in under 1 second globally</li> <li>Has no attack surface</li> <li>Never goes down because of a database or application server</li> <li>Is owned by you \u2014 files in a Git repo, portable anywhere</li> </ul> <p>That's what Hugoifier is built to produce. Take any theme, convert it, deploy it. No infrastructure required.</p>"},{"location":"about/#the-catch-and-how-hugoifier-fixes-it","title":"The Catch \u2014 and How Hugoifier Fixes It","text":"<p>Hugo is excellent, but it has a learning curve. You need to understand themes, layouts, front matter, Go templating, and <code>hugo.toml</code>. Converting an existing HTML/CSS design to a working Hugo theme takes hours. Wiring up a CMS so a non-developer can edit content takes more hours still.</p> <p>Most people give up and go back to WordPress, Squarespace, or paying a developer.</p> <p>Hugoifier removes that barrier. Point it at any HTML theme or existing Hugo theme, and it:</p> <ol> <li>Converts the HTML to Hugo layouts \u2014 using AI to map static content to <code>{{ .Title }}</code>, <code>{{ range .Pages }}</code>, partials, and template blocks</li> <li>Assembles a working site \u2014 with the right directory structure, a modern <code>hugo.toml</code>, and deprecated API patches applied automatically</li> <li>Wires up Decap CMS \u2014 so editors get a clean admin panel at <code>/admin/</code> backed by Git, with no separate backend to run</li> </ol> <p>You get all the benefits of the Hugo + Cloudflare stack without needing to understand any of it to get started.</p>"},{"location":"architecture/","title":"Architecture","text":""},{"location":"architecture/#pipeline","title":"Pipeline","text":"<pre><code>flowchart TD\n A[Input path] --> B{Hugo theme?}\n B -- Yes --> C[find_hugo_theme]\n B -- No --> D[find_raw_html_files]\n\n C --> E[Copy theme \u2192 themes/name/]\n E --> F[Copy exampleSite content/data/static]\n F --> G[Write hugo.toml]\n G --> H[patch_theme + patch_config]\n H --> I[decapify]\n\n D --> J[hugoify_html via AI]\n J --> K[Write layouts/]\n K --> L[Copy CSS/JS/images]\n L --> M[Write minimal hugo.toml]\n M --> I\n\n I --> N[output/theme-name/]</code></pre>"},{"location":"architecture/#module-map","title":"Module Map","text":"Module Responsibility <code>src/cli.py</code> Argument parsing, logging setup, error handling <code>src/config.py</code> Multi-backend AI routing (<code>call_ai</code>) <code>src/utils/complete.py</code> Full pipeline orchestration <code>src/utils/theme_finder.py</code> Locate Hugo theme + exampleSite within messy extracted directories <code>src/utils/hugoify.py</code> AI-powered HTML \u2192 Hugo layout conversion <code>src/utils/decapify.py</code> Generate Decap CMS <code>index.html</code> + <code>config.yml</code> <code>src/utils/theme_patcher.py</code> Patch deprecated Hugo APIs in layout files and config <code>src/utils/analyze.py</code> Theme structure reporting + AI-powered HTML analysis <code>src/utils/translate.py</code> AI content translation <code>src/utils/deploy.py</code> Cloudflare deployment (stub) <code>src/utils/cloudflare.py</code> Cloudflare configuration (stub) <code>src/utils/parser.py</code> HTML/CSS linting (stub)"},{"location":"architecture/#ai-backends","title":"AI Backends","text":"<p>All AI calls route through a single <code>call_ai(prompt, system)</code> function in <code>src/config.py</code>. Switch backends via <code>HUGOIFIER_BACKEND</code>:</p> Backend Default Model Env Var <code>anthropic</code> (default) <code>claude-sonnet-4-6</code> <code>ANTHROPIC_API_KEY</code> <code>openai</code> <code>gpt-4-turbo</code> <code>OPENAI_API_KEY</code> <code>google</code> <code>gemini-1.5-pro</code> <code>GOOGLE_API_KEY</code>"},{"location":"architecture/#hugo-api-patching","title":"Hugo API Patching","text":"<p><code>theme_patcher.py</code> handles breaking changes in Hugo \u2265 v0.128:</p> <p>Template patches:</p> Old New <code>.Site.DisqusShortname</code> <code>.Site.Config.Services.Disqus.Shortname</code> <code>.Site.GoogleAnalytics</code> <code>.Site.Config.Services.GoogleAnalytics.ID</code> <p>Config patches (<code>hugo.toml</code>):</p> Old New <code>paginate = N</code> <code>[pagination] pagerSize = N</code> <code>googleAnalytics = \"UA-...\"</code> <code>[services.googleAnalytics] id = \"UA-...\"</code> <code>disqusShortname = \"...\"</code> <code>[services.disqus] shortname = \"...\"</code>"},{"location":"architecture/#decap-cms-generation","title":"Decap CMS Generation","text":"<p><code>decapify.py</code> introspects <code>content/</code> to build Decap collections:</p> <ul> <li>Folder collection \u2014 subdirectory with <code>.md</code> files at any depth (blog, posts, etc.)</li> <li>File collection \u2014 subdirectory with only <code>_index.md</code> (about, contact, etc.)</li> </ul> <p>Field types are inferred from YAML frontmatter values: <code>string</code>, <code>text</code>, <code>datetime</code>, <code>image</code>, <code>list</code>, <code>boolean</code>, <code>number</code>, <code>markdown</code>.</p>"},{"location":"architecture/#output-structure","title":"Output Structure","text":"<pre><code>output/{theme-name}/\n\u251c\u2500\u2500 hugo.toml # Site config (modernized)\n\u251c\u2500\u2500 content/ # From exampleSite or minimal stub\n\u251c\u2500\u2500 data/ # From exampleSite (if present)\n\u251c\u2500\u2500 static/\n\u2502 \u2514\u2500\u2500 admin/\n\u2502 \u251c\u2500\u2500 index.html # Decap CMS UI\n\u2502 \u2514\u2500\u2500 config.yml # Decap collections config\n\u2514\u2500\u2500 themes/\n \u2514\u2500\u2500 {theme-name}/ # Patched Hugo theme\n \u251c\u2500\u2500 layouts/\n \u251c\u2500\u2500 static/\n \u2514\u2500\u2500 archetypes/\n</code></pre>"},{"location":"cli-reference/","title":"CLI Reference","text":"<p>All commands are invoked via <code>python src/cli.py</code>.</p>"},{"location":"cli-reference/#global-options","title":"Global Options","text":"<pre><code>python src/cli.py [--backend {anthropic,openai,google}] <command> ...\n</code></pre> Flag Description <code>--backend</code> Override <code>HUGOIFIER_BACKEND</code> env var for this run"},{"location":"cli-reference/#complete-full-pipeline","title":"<code>complete</code> \u2014 Full Pipeline","text":"<p>Runs the full pipeline: detect \u2192 copy/convert \u2192 patch \u2192 decapify.</p> <pre><code>python src/cli.py complete <path> [options]\n</code></pre> Argument Description <code>path</code> Path to a Hugo theme directory or raw HTML directory <code>--output</code>, <code>-o</code> Output directory (default: <code>output/{theme-name}</code>) <code>--cms-name</code> Whitelabel CMS name shown in admin UI <code>--cms-logo</code> URL to a logo image for the admin UI <code>--cms-color</code> Hex color for the admin top bar (e.g. <code>#1a1a2e</code>) <p>Examples:</p> <pre><code># Hugo theme with exampleSite\npython src/cli.py complete themes/revolve-hugo\n\n# Custom output path\npython src/cli.py complete themes/revolve-hugo --output /var/www/mysite\n\n# With whitelabel CMS\npython src/cli.py complete themes/revolve-hugo \\\n --cms-name \"My Studio\" \\\n --cms-color \"#0d1117\"\n</code></pre>"},{"location":"cli-reference/#analyze-inspect-theme-structure","title":"<code>analyze</code> \u2014 Inspect Theme Structure","text":"<p>Analyzes a theme and reports its layout files, content types, and exampleSite location. For raw HTML, uses AI to suggest partials and Hugo template tags.</p> <pre><code>python src/cli.py analyze <path>\n</code></pre>"},{"location":"cli-reference/#hugoify-html-hugo-conversion","title":"<code>hugoify</code> \u2014 HTML \u2192 Hugo Conversion","text":"<p>Converts a raw HTML file or directory to Hugo layout files. For an existing Hugo theme, validates its structure.</p> <pre><code>python src/cli.py hugoify <path>\n</code></pre>"},{"location":"cli-reference/#decapify-add-decap-cms","title":"<code>decapify</code> \u2014 Add Decap CMS","text":"<p>Adds Decap CMS to an already-assembled Hugo site. Introspects <code>content/</code> to auto-generate <code>static/admin/config.yml</code>.</p> <pre><code>python src/cli.py decapify <path> [options]\n</code></pre> Argument Description <code>path</code> Path to an assembled Hugo site (contains <code>hugo.toml</code>, <code>content/</code>, <code>themes/</code>) <code>--cms-name</code> Whitelabel CMS name <code>--cms-logo</code> Logo URL <code>--cms-color</code> Top-bar hex color"},{"location":"cli-reference/#translate-translate-content","title":"<code>translate</code> \u2014 Translate Content","text":"<p>Translates a content file to another language using the configured AI backend.</p> <pre><code>python src/cli.py translate <path> [--target-language LANGUAGE]\n</code></pre> Argument Default Description <code>path</code> \u2014 Path to the content file <code>--target-language</code> <code>Spanish</code> Language to translate into"},{"location":"cli-reference/#deploy-deploy-to-cloudflare-stub","title":"<code>deploy</code> \u2014 Deploy to Cloudflare (stub)","text":"<pre><code>python src/cli.py deploy <path> <zone>\n</code></pre>"},{"location":"cli-reference/#cloudflare-configure-cloudflare-stub","title":"<code>cloudflare</code> \u2014 Configure Cloudflare (stub)","text":"<pre><code>python src/cli.py cloudflare <path> <zone>\n</code></pre>"},{"location":"cli-reference/#exit-codes","title":"Exit Codes","text":"Code Meaning <code>0</code> Success <code>1</code> Error (bad input path, missing API key, etc.) \u2014 message printed to stderr"},{"location":"getting-started/configuration/","title":"Configuration","text":"<p>All configuration is via environment variables.</p>"},{"location":"getting-started/configuration/#ai-backend","title":"AI Backend","text":"Variable Default Description <code>HUGOIFIER_BACKEND</code> <code>anthropic</code> Backend to use: <code>anthropic</code>, <code>openai</code>, or <code>google</code> <code>ANTHROPIC_API_KEY</code> \u2014 Required when using Anthropic backend <code>OPENAI_API_KEY</code> \u2014 Required when using OpenAI backend <code>GOOGLE_API_KEY</code> \u2014 Required when using Google backend <code>ANTHROPIC_MODEL</code> <code>claude-sonnet-4-6</code> Anthropic model override <code>OPENAI_MODEL</code> <code>gpt-4-turbo</code> OpenAI model override <code>GOOGLE_MODEL</code> <code>gemini-1.5-pro</code> Google model override <code>HUGOIFIER_MAX_TOKENS</code> <code>4096</code> Max tokens for AI responses"},{"location":"getting-started/configuration/#decap-cms-defaults","title":"Decap CMS Defaults","text":"Variable Default Description <code>CMS_NAME</code> <code>Content Manager</code> Default CMS admin panel title <code>CMS_LOGO_URL</code> (empty) Default logo URL for admin panel <code>CMS_COLOR</code> <code>#2e3748</code> Default top-bar hex color <p>These defaults apply when the corresponding CLI flags (<code>--cms-name</code>, <code>--cms-logo</code>, <code>--cms-color</code>) are not passed.</p>"},{"location":"getting-started/configuration/#example-env","title":"Example <code>.env</code>","text":"<pre><code>HUGOIFIER_BACKEND=anthropic\nANTHROPIC_API_KEY=sk-ant-...\n\nCMS_NAME=My Studio\nCMS_COLOR=#1a1a2e\n</code></pre> <p>Warning</p> <p>Never commit <code>.env</code> to version control. It is listed in <code>.gitignore</code>.</p>"},{"location":"getting-started/installation/","title":"Installation","text":""},{"location":"getting-started/installation/#prerequisites","title":"Prerequisites","text":"<ul> <li>Python 3.11+</li> <li>Hugo extended \u2014 for building the generated site locally (<code>brew install hugo</code> on macOS)</li> <li>At least one AI API key</li> </ul>"},{"location":"getting-started/installation/#from-source","title":"From Source","text":"<pre><code>git clone https://github.com/ConflictHQ/hugoifier.git\ncd hugoifier\npip install -r requirements.txt\n</code></pre>"},{"location":"getting-started/installation/#docker","title":"Docker","text":"<pre><code>git clone https://github.com/ConflictHQ/hugoifier.git\ncd hugoifier\n</code></pre> <p>Then run with your preferred backend:</p> Anthropic (default)OpenAIGoogle <pre><code>ANTHROPIC_API_KEY=your_key docker compose up\n</code></pre> <pre><code>OPENAI_API_KEY=your_key HUGOIFIER_BACKEND=openai docker compose up\n</code></pre> <pre><code>GOOGLE_API_KEY=your_key HUGOIFIER_BACKEND=google docker compose up\n</code></pre>"},{"location":"getting-started/installation/#api-keys","title":"API Keys","text":"<p>Set the key for your chosen backend:</p> Backend Environment Variable Model Anthropic (default) <code>ANTHROPIC_API_KEY</code> <code>claude-sonnet-4-6</code> OpenAI <code>OPENAI_API_KEY</code> <code>gpt-4-turbo</code> Google <code>GOOGLE_API_KEY</code> <code>gemini-1.5-pro</code> <p>Override the model with <code>ANTHROPIC_MODEL</code>, <code>OPENAI_MODEL</code>, or <code>GOOGLE_MODEL</code>.</p>"},{"location":"getting-started/quickstart/","title":"Quick Start","text":""},{"location":"getting-started/quickstart/#convert-a-hugo-theme","title":"Convert a Hugo Theme","text":"<p>Most Hugo themes include an <code>exampleSite/</code> directory. Hugoifier assembles a complete, working site from it:</p> <pre><code>export ANTHROPIC_API_KEY=your_key\n\npython src/cli.py complete themes/my-hugo-theme\n# \u2192 output/my-hugo-theme/\n</code></pre> <p>Then test it:</p> <pre><code>cd output/my-hugo-theme\nhugo serve\n# Open http://localhost:1313\n</code></pre> <p>The Decap CMS admin panel is automatically available at <code>http://localhost:1313/admin/</code>.</p>"},{"location":"getting-started/quickstart/#convert-raw-html","title":"Convert Raw HTML","text":"<p>For a plain HTML/CSS theme:</p> <pre><code>python src/cli.py complete path/to/html-theme/\n# \u2192 output/html-theme/\n</code></pre> <p>Hugoifier sends the main HTML file to the AI backend and converts it to Hugo layout files (<code>_default/baseof.html</code>, <code>partials/header.html</code>, etc.).</p>"},{"location":"getting-started/quickstart/#custom-output-directory","title":"Custom Output Directory","text":"<pre><code>python src/cli.py complete themes/my-theme --output /tmp/my-site\n</code></pre>"},{"location":"getting-started/quickstart/#whitelabel-decap-cms","title":"Whitelabel Decap CMS","text":"<pre><code>python src/cli.py complete themes/my-theme \\\n --cms-name \"My CMS\" \\\n --cms-color \"#1a1a2e\" \\\n --cms-logo \"https://example.com/logo.png\"\n</code></pre>"},{"location":"getting-started/quickstart/#switch-ai-backend","title":"Switch AI Backend","text":"<pre><code># Use OpenAI instead of Anthropic\nHUGOIFIER_BACKEND=openai OPENAI_API_KEY=your_key python src/cli.py complete themes/my-theme\n\n# Or via CLI flag\npython src/cli.py --backend openai complete themes/my-theme\n</code></pre>"}]}