Skip to content

YAML Format

meta:
portada: "Title shown on the cover slide"
unidad: "Unit 00"
output: "00_filename-prefix" # output filename prefix
objetivos:
- "Learning objective 1"
- "Learning objective 2"
indice:
- "First section"
- "Second section"
secciones:
- indice: 1 # 1-based reference to the indice: list
slides:
- tipo: texto
texto: "Introductory content."
conclusion:
- "Conclusion point 1"
- "Conclusion point 2"
referencias:
- ["Resource name", "https://example.url.com"]

subtitulo: — italic text shown between the section indicator and the slide content. Available on bullets, texto, java, python and all other code types, diagrama, terminal, salida, aviso, comparar_* and dos_columnas.

- tipo: bullets
subtitulo: "Key features"
items:
- "Point one"
- "Point two"

notas: — text inserted into the ODP presenter notes (visible in LibreOffice presentation mode). Available on any slide.

- tipo: texto
notas: "Remember to mention the practical case study."
texto: "Content visible on the slide."
- tipo: texto
texto: "Free text for the slide."

\n inside the value produces a real line break in the slide:

- tipo: texto
texto: "First line.\nSecond line shown as a separate paragraph."

All code types support:

  • texto: | — YAML literal block (recommended); preserves original indentation.
  • fichero: — optional; shows the file path in grey above the code.
  • subtitulo: — italic text below the section indicator.
  • Auto-split: more than 25 lines generates multiple [1/N] slides.
  • Auto font sizing: ≤12 lines → 16 pt · 13-16 → 14 pt · 17-21 → 12 pt · 22-27 → 10 pt · >27 → 9 pt.
tipoLanguageHighlighting
javaJavakeywords, strings, comments, numbers, @ annotations
pythonPythonkeywords, strings, comments, numbers, @ decorators
javascriptJavaScriptkeywords, strings, comments, numbers
typescriptTypeScriptsame as JS + interface, type, enum, readonly, abstract, primitive types…
xml / htmlXML / HTMLtags, attributes, values, comments
jspJSPHTML + scriptlets <% %> + EL ${}
cssCSSselectors, properties, values, at-rules
jsonJSONkeys, strings, numbers, booleans
yamlYAMLkeys, values, comments, anchors
dockerfileDockerfileinstructions, strings, comments, variables $VAR/${VAR}
terraform / hclTerraform HCLblocks, strings, comments, interpolations ${…}
codigopseudocodemonospaced, no highlighting
- tipo: java
fichero: "src/main/java/com/example/Hello.java" # optional
texto: |
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam String name) {
return "Hello, " + name + "!";
}
}

Interactive shell session. Plain strings are user commands (green $ prompt). Dicts allow variants:

- tipo: terminal
items:
- {cmt: "Build the project"}
- "mvn clean package"
- {out: "BUILD SUCCESS"}
- {cmt: "Run"}
- "java -jar target/app.jar"
- {ok: "Server listening on port 8080"}
DictStyleUse
{cmt: "..."}greyDescriptive comment
plain stringgreen with $User command
{root: "..."}red with #Root command
{out: "..."}whiteStandard output
{ok: "..."}greenSuccess or confirmation
{err: "..."}redError or warning
{cont: "..."}whiteLine continuation (no prompt)

Two text lists side by side. For conceptual comparisons: pros/cons, advantages/disadvantages, two approaches explained in words. Items are text bullets, with no code highlighting.

- tipo: dos_columnas
izquierda:
- "Easy to learn"
- "Huge community"
- "Mature ecosystem"
derecha:
- "Dynamic typing"
- "GIL limits parallelism"
- "Slow for CPU-bound tasks"