YAML Configuration
The file _data/site.yaml controls global site settings — header, footer, navigation, pricing, FAQ, and more.
This page documents every field.
How _data/ Works
Every .yaml or .yml file inside _data/ is loaded and merged into a single config object.
| File | Merged As |
|---|---|
_data/site.yaml | Top-level keys |
_data/author.yaml | Under author key |
_data/products.yaml | Under products key |
The engine also supports a legacy config.yaml at the project root — it is merged if present.
Site Identity
name: PYCORA
title: Pycora — Python Static Site Generator
description: A premium Python SSG by Axcora.
url: https://pycorapro.axcora.com
author: Axcora Technology
twitter_username: "@axcoratech"
| Field | Purpose |
|---|---|
name | Internal site name (meta tags) |
title | Browser tab and SEO title |
description | Meta description |
url | Live site URL (used in sitemap and feeds) |
author | Site owner |
twitter_username | Twitter handle for Twitter Card |
Brand Assets
image: /img/logo.webp
favicon: /img/favicon.webp
logo: /img/logo.webp
| Field | Purpose |
|---|---|
image | Default social share image |
favicon | Browser tab icon |
logo | Header logo |
Site Meta
site_name: PYCORA PRO
lang: en
locale: en_US
type: website
keywords:
- python
- ssg
- jamstack
show_widget: true
| Field | Purpose |
|---|---|
site_name | Display name in header |
lang | HTML lang attribute |
locale | Open Graph locale |
type | Open Graph type |
keywords | SEO keywords (list) |
show_widget | Toggle sidebar widget |
About Section
about:
title: Axcora Technology
logo: /img/logo.webp
description: A software studio since 2018.
button:
text: Visit Axcora
url: https://axcora.com
Used on the About page and home section.
Navigation
nav:
logo: P
title: PYCORA
sub_title: PRO
list:
- name: Projects
url: /projects/
- name: Journal
url: /journal/
button:
text: Get Pycora Pro
url: https://gumroad.com/pycora-pro
| Field | Purpose |
|---|---|
logo | Single letter or icon |
title | Navbar main title |
sub_title | Navbar subtitle |
list | Menu items (name + URL) |
button | Navbar CTA |
Pricing
pricing:
info: No license • Own forever
title: Pay once. Use forever.
description: Two tiers. Same code quality.
standard_option:
info: STARTER
badge: MINIMALIST
price: FREE
per: forever
description: Simple minimalist design.
item:
- text: Feature one
- text: Feature two
button:
text: Get Starter
url: /starter/
info: Free tier
pro_option:
info: PYCORA PRO
badge: PREMIUM
price: $145
per: one-time
description: Premium Bento Grid design.
item:
- text: Feature one
button:
text: Get Pro
url: https://gumroad.com/pycora-pro
info: Instant download
Two tiers: standard_option and pro_option. Each has the same structure.
FAQ
faq:
title: Questions, answered.
list:
- q: What is Pycora?
a: A Python static site generator.
- q: Why use Pycora?
a: Because you only need Python.
| Field | Purpose |
|---|---|
title | Section heading |
list | Array of {q, a} objects |
Footer
footer:
title: Let's build
info: something that lasts.
text: Premium Python SSG by Axcora.
button:
text: Get Pycora Pro
url: https://gumroad.com/pycora-pro
button_secondary:
text: Read Docs
url: https://docs.example.com
trust:
- One payment — own forever
- Unlimited projects
copyrights: © 2026 PYCORA PRO
list:
- name: Home
url: /
- name: Projects
url: /projects/
| Field | Purpose |
|---|---|
title | Footer heading |
info | Subheading |
text | Description |
button | Primary CTA |
button_secondary | Secondary CTA |
trust | Trust badges (list) |
copyrights | Copyright line |
list | Footer links |
TOC and Related Posts
toc: Table of Contents
related_post: Related Posts
| Field | Purpose |
|---|---|
toc | Label for the table of contents |
related_post | Label for related posts |
About URL
about_url: /about/
The URL of the About page. Used in templates.
Adding a New Config File
You can split configuration across multiple files. Example:
_data/site.yaml:
name: PYCORA
title: Pycora SSG
_data/social.yaml:
twitter: "@axcoratech"
github: mesinkasir
The config is merged into:
name: PYCORA
title: Pycora SSG
social:
twitter: "@axcoratech"
github: mesinkasir
Access in templates:
{{ social.twitter }}
{{ social.github }}
Accessing Config in Templates
Every config key is available in every template:
{{ site.name }}
{{ site.title }}
{{ site.nav.title }}
{{ site.footer.title }}
{{ site.pricing.pro_option.price }}
For nested values, use dot notation.
Best Practices
- Keep
site.yamlas the main file — split only when needed - Use lowercase keys with hyphens or underscores
- Quote strings with special characters
- Keep URLs absolute in
urland buttons - Do not rename existing keys — templates depend on them
Troubleshooting
Config values do not appear
- Check that the file is inside
_data/ - Check that the YAML is valid
- Check that the key name matches the template variable
- Rebuild the site
Nested values are empty
- Check indentation — YAML uses spaces, not tabs
- Check that all parent keys exist
Navigation menu is empty
- Check that
nav.listhas at least one item - Check that each item has
nameandurl - Rebuild
Footer links broken
- Check each URL in
footer.list - Confirm each URL points to a real page
Custom YAML file is ignored
- Check that the file ends with
.yamlor.yml - Check that it is inside
_data/ - Check that it is not hidden (no leading dot)