119 lines
6.5 KiB
Text
119 lines
6.5 KiB
Text
# Which Slidev deck projects onto which site pages.
|
|
#
|
|
# ONE SOURCE PER PAGE, with the deck's `source` as the default.
|
|
#
|
|
# The first shape of this file said "one source, N pages" — true only for a deck that is not
|
|
# translated. A bilingual deck is TWO sources, and without a per-page source the only way to have
|
|
# an English page is to serve Spanish slides under an English URL. A page that lies about its
|
|
# language is worse than a page that does not exist.
|
|
#
|
|
# So: `pages[].source` overrides the deck's. Omit a page and that language simply has no page.
|
|
{
|
|
decks = [
|
|
{
|
|
source = "ontology_slides.md", # relative to outreach/presentation/
|
|
id = "ontoref-ontologia-reflexion",
|
|
pages = [
|
|
{ lang = "es", slug = "ontoref-ontologia-reflexion" },
|
|
# The English page has its OWN source. The deck is Spanish (the "46/57 mix" I first
|
|
# reported was a false signal — my classifier counted `runtime`, `Nickel`, `commit` as
|
|
# English; the prose is clean Spanish). ontology_slides_en.md is a controlled translation
|
|
# that keeps the product name, the coined terms and the glossary lexicon, and uses the
|
|
# REAL English field names for the code (nodes/invariant/description/…) — which the
|
|
# Spanish deck localizes and so, on that one point, the English deck is more faithful.
|
|
{ lang = "en", slug = "ontoref-ontology-and-reflection",
|
|
source = "ontology_slides_en.md" },
|
|
],
|
|
},
|
|
{
|
|
# An intro to ontoref for an INFRA audience: "does AI manage your infra — do you know what's
|
|
# happening?". Authored in Spanish (ai-infra_es.md), translated to English (ai-infra.md) as a
|
|
# faithful counterpart — same content, glossary lexicon and real English field names in the
|
|
# code. Two sources → one build/capture/asset-dir each.
|
|
source = "ai-infra_es.md",
|
|
id = "ai-infra",
|
|
pages = [
|
|
{ lang = "es", slug = "la-ia-gestiona-tu-infra" },
|
|
{ lang = "en", slug = "does-ai-manage-your-infra", source = "ai-infra.md" },
|
|
],
|
|
},
|
|
{
|
|
source = "rustikon_es.md",
|
|
id = "rustikon",
|
|
pages = [
|
|
{ lang = "es", slug = "por-que-necesite-rust" },
|
|
{ lang = "en", slug = "why-i-needed-rust", source = "rustikon.md" },
|
|
],
|
|
},
|
|
{
|
|
source = "disciplina-sin-disparador_es.md",
|
|
id = "disciplina-sin-disparador",
|
|
pages = [
|
|
{ lang = "es", slug = "una-regla-sin-disparador" },
|
|
{ lang = "en", slug = "a-rule-without-a-trigger", source = "disciplina-sin-disparador.md" },
|
|
],
|
|
},
|
|
],
|
|
|
|
# Classes the site is entitled to carry INTO the deck. Everything else of the site's
|
|
# is reverted at the boundary. `gloss-`: the glossary decorates deck text — the whole
|
|
# point of the projection. `deck-`: the projection's own chrome (card, switcher, zoom).
|
|
boundary_allow = ["[class*=\"gloss-\"]", "[class*=\"deck-\"]"],
|
|
|
|
# The URL category segment, per language. The route is /recursos/{category}/{slug}; the KIND
|
|
# localizes (recursos↔resources) but {category} is filled literally from the content, so an ES
|
|
# deck under category "decks" gives /recursos/decks/… — Spanish path, English word. Localizing
|
|
# the category (es = "presentaciones") keeps the whole ES URL Spanish. Runtime route, no rebuild;
|
|
# registers on server restart.
|
|
category = { es = "presentaciones", en = "decks" },
|
|
|
|
# The KIND segment that precedes the category. It lived only in the comment above until
|
|
# 2026-07-17, so `decks-served` could not DERIVE a deck's URL and carried two hand-written
|
|
# ones instead — both of the same deck. The gate went green over three decks it never
|
|
# loaded. Declared here so the URL is computed from the manifest, once.
|
|
kind = { es = "recursos", en = "resources" },
|
|
|
|
# Slidev's native slide geometry. The WIDTH is the scaling base; the height is only a
|
|
# floor — 12 of 16 slides in this deck hold more than 552px, so the card grows to its
|
|
# measured content instead of cutting it.
|
|
slide = { width = 980, height = 552 },
|
|
|
|
# The chrome is the SITE's UI, so it speaks the page's language. One capture, N pages:
|
|
# the deck body is shared, the wrapper around it is not.
|
|
i18n = {
|
|
es = {
|
|
read = "Leer todo", slider = "Diapositivas", index = "Índice",
|
|
index_head = "Índice", slides = "diapositivas",
|
|
prev = "Anterior", next = "Siguiente",
|
|
zoom = "Ampliar diapositiva", slide = "Diapositiva",
|
|
aria = "Presentación de %n diapositivas. Con el foco puesto, las flechas o la barra espaciadora navegan.",
|
|
help = "Cómo usar",
|
|
help_title = "Cómo usar esta presentación",
|
|
help_items = [
|
|
"Diapositivas / Leer todo — pasa las slides una a una, o vélas todas apiladas (ahí funciona buscar con <kbd>Ctrl</kbd>+<kbd>F</kbd>, seleccionar y copiar el texto).",
|
|
"Índice — muestra u oculta el índice lateral; al pulsar una entrada saltas a esa slide.",
|
|
"Términos del glosario — algunas palabras llevan un realce ámbar: pasa el ratón por encima (o púlsalas en móvil) para ver una definición breve.",
|
|
"Teclado — con la presentación seleccionada: <kbd>→</kbd> o <kbd>Espacio</kbd> avanzan, <kbd>←</kbd> o <kbd>Shift</kbd>+<kbd>Espacio</kbd> retroceden.",
|
|
"Ampliar — el botón <kbd>⤢</kbd> abre la slide a pantalla completa; <kbd>Esc</kbd> la cierra.",
|
|
"Copiar código — pasa el ratón por un bloque de código y pulsa el botón de arriba a la derecha para copiarlo.",
|
|
],
|
|
},
|
|
en = {
|
|
read = "Read all", slider = "Slides", index = "Index",
|
|
index_head = "Index", slides = "slides",
|
|
prev = "Previous", next = "Next",
|
|
zoom = "Enlarge slide", slide = "Slide",
|
|
aria = "Deck of %n slides. With focus on it, arrows or the space bar navigate.",
|
|
help = "How to use",
|
|
help_title = "How to use this deck",
|
|
help_items = [
|
|
"Slides / Read all — step through one at a time, or see them all stacked (there <kbd>Ctrl</kbd>+<kbd>F</kbd>, select and copy the text all work).",
|
|
"Index — shows or hides the side index; clicking an entry jumps to that slide.",
|
|
"Glossary terms — some words carry a faint amber highlight: hover them (or tap on mobile) for a short definition.",
|
|
"Keyboard — with the deck focused: <kbd>→</kbd> or <kbd>Space</kbd> advance, <kbd>←</kbd> or <kbd>Shift</kbd>+<kbd>Space</kbd> go back.",
|
|
"Enlarge — the <kbd>⤢</kbd> button opens the slide full-screen; <kbd>Esc</kbd> closes it.",
|
|
"Copy code — hover a code block and press the button at its top-right to copy it.",
|
|
],
|
|
},
|
|
},
|
|
}
|