vienalatina/config.yaml
Claude 72894b8907
Scaffold Hugo + Decap trilingual site from WordPress migration plan
Static replacement for the WordPress + Polylang + synchronous DeepL stack:

- Hugo config: es (default) / de / pt-br, siblings paired by filename
  basename, WP slugs preserved via /:slug/ permalinks
- Theme: CSS ported verbatim from the WP theme; header/footer/lang-switcher
  and article templates ported from their PHP counterparts (no Google
  Fonts — zero third-party requests)
- seo-head partial: hreflang + x-default, og:locale(:alternate), JSON-LD
  BlogPosting/Blog with inLanguage (ported from theme/inc/seo.php)
- robots.txt AI-crawler allowlist + build-time llms.txt (ported from
  theme/inc/robots-and-llms.php)
- scripts/translate.py: async DeepL step (tag_handling=html, protected
  community terms, manual_translation freeze, fail-loud, bot commits)
- scripts/wp-to-hugo.py: one-shot WP REST → Hugo content converter
- Decap CMS admin with Gitea backend, locally-bundled JS
- .woodpecker.yml: translate → build → deploy (rsync to Caddy root)
- Sample trilingual welcome post + acerca/contacto pages

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017z2rT1oN7vMS4ggo23n5WG
2026-07-31 11:17:32 +00:00

101 lines
2.5 KiB
YAML

# Viena Latina — Hugo site configuration
# Three languages: Spanish (default, at /), German (/de/), Brazilian Portuguese (/pt-br/).
# Siblings pair by filename basename: mi-articulo.es.md ↔ mi-articulo.de.md ↔ mi-articulo.pt-br.md
baseURL: "https://vienalatina.com/"
title: "Viena Latina"
theme: "vienalatina"
defaultContentLanguage: "es"
defaultContentLanguageInSubdir: false
# Preserve WordPress slugs so external inbound links keep working.
permalinks:
post: "/:slug/"
taxonomies:
category: "categories"
tag: "tags"
languages:
es:
languageCode: "es"
languageName: "Español"
weight: 1
params:
description: "Comunidad latinoamericana en Viena — turismo, cultura, gastronomía, comunidad y comercio."
menus:
main:
- name: "Inicio"
url: "/"
weight: 1
- name: "Acerca"
url: "/page/acerca/"
weight: 2
- name: "Contacto"
url: "/page/contacto/"
weight: 3
de:
languageCode: "de"
languageName: "Deutsch"
weight: 2
params:
description: "Lateinamerikanische Community in Wien — Tourismus, Kultur, Gastronomie, Gemeinschaft und Handel."
menus:
main:
- name: "Start"
url: "/de/"
weight: 1
- name: "Über uns"
url: "/de/page/acerca/"
weight: 2
- name: "Kontakt"
url: "/de/page/contacto/"
weight: 3
pt-br:
languageCode: "pt-BR"
languageName: "Português (Brasil)"
weight: 3
params:
description: "Comunidade latino-americana em Viena — turismo, cultura, gastronomia, comunidade e comércio."
menus:
main:
- name: "Início"
url: "/pt-br/"
weight: 1
- name: "Sobre"
url: "/pt-br/page/acerca/"
weight: 2
- name: "Contato"
url: "/pt-br/page/contacto/"
weight: 3
params:
# og:locale values per language slug (ported from theme/inc/seo.php).
localeMap:
es: "es_ES"
de: "de_DE"
pt-br: "pt_BR"
# llms.txt — custom plain-text output rendered from layouts/index.llms.txt
# (ported from theme/inc/robots-and-llms.php).
outputFormats:
llms:
mediaType: "text/plain"
baseName: "llms"
isPlainText: true
outputs:
home: ["HTML", "RSS", "llms"]
sitemap:
changefreq: "weekly"
priority: 0.5
markup:
goldmark:
renderer:
unsafe: true # WP-migrated content contains inline HTML
enableRobotsTXT: false # robots.txt is a static file in static/