From 552106e31cd9623af52905c97b0e5b9cfed53a0b Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 10 Mar 2026 18:06:47 +0100 Subject: [PATCH] Fix reference.ts producing empty hugo.json (#1957) Hugo is a custom Quarto format not in pandoc-all, so optionsForFormat("hugo") matches no options and writes []. Map "hugo" to its base format "gfm" for option lookup while keeping the output filename as hugo.json. Also add a guard that warns and skips formats with no pandoc-all match. (cherry picked from commit 34681044e3c5603c7232edfdb2b346f9cca5b167) --- tools/reference.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/reference.ts b/tools/reference.ts index 225b9d99d5..3ec129b2a8 100644 --- a/tools/reference.ts +++ b/tools/reference.ts @@ -20,6 +20,12 @@ const readSchema = (file: string) => { // deno-lint-ignore no-explicit-any const formatAliases = (readSchema("format-aliases.yml") as any)["aliases"] as Record; const allFormats = formatAliases["pandoc-all"]; + +// Custom Quarto formats not in pandoc-all, mapped to their base Pandoc format +const customFormatAliases: Record = { + "hugo": "gfm", +}; + const resolveFormats = (formats: string[]): string[] => { return distinct(formats .reduce((formats, format) => { @@ -171,7 +177,12 @@ const writeDocumentOptions = (format: string, path: string) => { for (const file of expandGlobSync("docs/reference/formats/**/*.qmd")) { if (file.isFile) { const format = basename(file.name, ".qmd"); - writeDocumentOptions(format, join(dirname(file.path), format + ".json")); + const lookupFormat = customFormatAliases[format] ?? format; + if (!allFormats.includes(lookupFormat)) { + console.warn(`Warning: format "${format}" not in pandoc-all and has no custom alias. Skipping.`); + continue; + } + writeDocumentOptions(lookupFormat, join(dirname(file.path), format + ".json")); } }