Contributions are welcome! Content is managed as YAML files — never edit generated HTML.
- Fork the repo
- Create a new YAML file in the appropriate
content/<category>/folder (e.g.content/language/my-feature.yaml) - Copy
content/template.jsonas a starting point for all required fields (see the snippet schema for details) - Update the
prev/nextfields in adjacent pattern files to maintain navigation - Run
jbang html-generators/generate.javato verify your changes build correctly - Open a pull request
Please ensure JDK version labels only reference the version where a feature became final (non-preview).
The site supports multiple languages. See specs/i18n/i18n-spec.md for the full specification.
- Add the locale to
html-generators/locales.properties(e.g.ja=日本語) - Create
translations/strings/<locale>.yamlwith all UI strings translated (copytranslations/strings/en.yamlas a starting point) - Create content translation files under
translations/content/<locale>/<category>/<slug>.yaml - Run
jbang html-generators/generate.javaand verify the build succeeds - Open a pull request
Translation files contain only translatable fields — the generator merges them onto the English base at build time. This prevents translated files from diverging structurally from the English source of truth.
A translation file should contain exactly these fields:
title: "Inferencia de tipos con var"
oldApproach: "Tipos explícitos"
modernApproach: "Palabra clave var"
summary: "Usa var para inferencia de tipos..."
explanation: "Desde Java 10, el compilador infiere..."
whyModernWins:
- icon: "⚡"
title: "Menos código repetitivo"
desc: "No es necesario repetir tipos genéricos..."
- icon: "👁"
title: "Mejor legibilidad"
desc: "..."
- icon: "🔒"
title: "Igualmente seguro"
desc: "..."
support:
description: "Ampliamente disponible desde JDK 10 (marzo 2018)"Do not include id, slug, category, difficulty, jdkVersion, oldCode, modernCode, prev, next, related, or docs — these are always taken from the English source.
Important: If your text contains colons (:), ensure the value is properly quoted in YAML to avoid parse errors. Always validate with jbang html-generators/generate.java before submitting.