creating-zola-static-sites
Build static sites with the Zola generator (Rust-based SSG). Handles project initialization, config.toml configuration, Tera templates, Markdown content (sections via _index.md, pages via *.md), taxonomies, image processing, and deployment. Use for Zola project setup, Tera templating, _index.md structure, RSS/Atom feeds, syntax highlighting, or deployment to Netlify/Cloudflare/GitHub Pages/Vercel/Firebase. Also covers Zola+Astro hybrid architectures.
Works with
---
name: creating-zola-static-sites
description: Build static sites with the Zola generator (Rust-based SSG). Handles project initialization, config.toml configuration, Tera templates, Markdown content (sections via _index.md, pages via *.md), taxonomies, image processing, and deployment. Use for Zola project setup, Tera templating, _index.md structure, RSS/Atom feeds, syntax highlighting, or deployment to Netlify/Cloudflare/GitHub Pages/Vercel/Firebase. Also covers Zola+Astro hybrid architectures.
license: MIT
---
# Creating Zola Static Sites
Single-binary static site generator. Built-in Sass, image processing, Tera templating.
## Quick Start
```
New Project:
- [ ] zola init my-site && cd my-site
- [ ] Edit config.toml: set base_url
- [ ] IF using theme: skip next step (theme provides templates)
- [ ] IF no theme: copy templates from skill assets/
- [ ] zola serve → http://127.0.0.1:1111 loads
- [ ] zola check → exit code 0
```
## Commands
| Command | Purpose | Verify Success |
|---------|---------|----------------|
| `zola init` | Create project | `ls config.toml` exists |
| `zola serve` | Dev server :1111 | Browser loads site |
| `zola build` | Output to public/ | `ls public/index.html` exists |
| `zola check` | Validate links | Exit 0, no errors printed |
## Core: Sections vs Pages
**`_` prefix = section (listing); no prefix = page (content):**
| Filename | Type | Template | Example URL |
|----------|------|----------|-------------|
| `_index.md` | section | section.html | `/blog/` (listing) |
| `index.md` | page | page.html | `/about/` (with assets) |
| `post.md` | page | page.html | `/blog/post/` |
```
content/
├── _index.md # section: /
├── about.md # page: /about/
└── blog/
├── _index.md # section: /blog/
└── post.md # page: /blog/post/
```
## Frontmatter
**section** (`_index.md`):
```toml
+++
title = "Blog"
sort_by = "date" # date|title|weight|none
paginate_by = 10
+++
```
**page** (`*.md`):
```toml
+++
title = "My Post"
date = 2024-01-15 # NO QUOTES or sorting breaks
[taxonomies]
tags = ["rust"]
+++
```
## Internal Links
Build-validated with `@/` prefix:
```markdown
[About](@/about.md)
[Blog](@/blog/_index.md)
```
## Workflows
### Create Blog
```
Blog Setup:
- [ ] Create content/blog/_index.md with sort_by="date"
- [ ] Create post: content/blog/2024-01-15-hello.md
- [ ] IF multilingual: add blog/_index.fr.md per language
- [ ] zola serve → /blog/ shows listing (empty if no posts yet)
- [ ] zola serve → /blog/hello/ shows post
- [ ] IF pagination: add more posts than paginate_by to test
- [ ] zola check → passes
```
### Add Taxonomies
```
Taxonomy Setup:
- [ ] config.toml: taxonomies = [{name = "tags", feed = true}]
- [ ] Page frontmatter: [taxonomies] tags = ["value"]
- [ ] IF need categories: add {name = "categories"} to array
- [ ] IF term has spaces: use slugified URL (/tags/my-tag/)
- [ ] zola serve → /tags/ lists tags
- [ ] zola serve → /tags/rust/ shows posts
```
### Deploy
```
Production Deploy:
- [ ] zola check → passes (use --skip-external-links if slow)
- [ ] zola build → no errors
- [ ] ls public/index.html → exists
- [ ] IF feeds enabled: ls public/atom.xml → exists
```
## Reference Files
| Task | Reference | Load When User Asks About |
|------|-----------|---------------------------|
| Config | [config-reference.md](references/config-reference.md) | Feeds, taxonomies, highlighting, search, link checker |
| Templates | [tera-templates.md](references/tera-templates.md) | Filters, loops, variables, macros, shortcodes |
| Content | [content-organization.md](references/content-organization.md) | _index.md vs index.md, frontmatter, multilingual |
| Deploy | [deployment-guides.md](references/deployment-guides.md) | Netlify, Cloudflare, GitHub Actions, Vercel, Firebase |
| Hybrid | [astro-integration.md](references/astro-integration.md) | Zola+Astro, Firebase export, shared navigation |
## Assets
Copy from skill `assets/` directory:
| Asset | Use For |
|-------|---------|
| `templates/base.html` | Base layout |
| `templates/section.html` | Listings with pagination |
| `templates/page.html` | Articles with TOC |
| `templates/404.html` | Error page |
| `templates/shortcodes/` | youtube.html, figure.html |
| `config-templates/blog.toml` | Blog preset |
| `config-templates/docs.toml` | Docs preset |
## Common Mistakes
| Wrong | Right | Why |
|-------|-------|-----|
| `date = "2024-01-15"` | `date = 2024-01-15` | Quoted dates are strings, break sorting |
| `[About](about.md)` | `[About](@/about.md)` | Missing @/ means no build validation |
| `index.md` in blog/ | `_index.md` in blog/ | Without `_` it's a page, not a section |
| `templates/blog.html` | `templates/section.html` | Zola looks for section.html by default |
## Troubleshooting
| Error | Fix | Verify |
|-------|-----|--------|
| Template not found | Check spelling; ensure templates/ exists | `ls templates/*.html` shows files |
| Dates not sorting | Use `date = 2024-01-15` (no quotes) | Posts appear in date order |
| Broken @/ links | Path from content/, include .md extension | `zola check` passes |
| Slow check | Skip external: `zola check --skip-external-links` | Completes in <10s |
**Debug:** `{{ __tera_context }}` in template shows all variables.
**Verbose:** `RUST_LOG=zola=info zola build`
## When Not to Use
- **Other SSGs:** Hugo, Jekyll, Eleventy use different syntax
- **General Markdown:** Questions without Zola context
- **Pure Astro:** Projects without Zola integrationMore Deployment & CI/CD skills
azure-enterprise-infra-planner
microsoft/azure-skills
Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment', 'Azure Backup for VM workloads'. PREFER azure-prepare FOR app-centric workflows.
azure-kubernetes-app-deploy
microsoft/azure-skills
Use when deploying an existing web application or API to an already-running Azure Kubernetes Service cluster. Detects the framework, generates a Dockerfile and Kubernetes manifests, validates against AKS Deployment Safeguards, and deploys with verification. WHEN: deploy app to AKS, deploy to existing AKS cluster, containerize app for Kubernetes, generate K8s manifests for Azure, set up CI/CD for AKS, my AKS deployment is failing safeguard checks, I have a Django/Express/Spring Boot app to run on AKS. DO NOT USE FOR: creating or provisioning an AKS cluster (use azure-kubernetes), assessing migration to AKS Automatic (use azure-kubernetes-automatic-readiness), or deploying to non-AKS targets like Web Apps, Container Apps, or Functions.
finetuning
microsoft/azure-skills
Fine-tune models on Microsoft Foundry using SFT (supervised), DPO (preference), or RFT (reinforcement with graders). Covers dataset preparation, training job submission, deployment, and evaluation. USE FOR: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, training job, large file upload, calibrate grader, deploy fine-tuned model, evaluate fine-tuned model. DO NOT USE FOR: general model deployment without fine-tuning (use deploy-model), agent creation (use agents), prompt optimization without training (use prompt-optimizer).

