From 7cb401e164669ec3b0d46d37a2c84b9213288cee Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 10 Mar 2026 17:52:31 +0100 Subject: [PATCH] Fix reference.ts producing empty hugo.json 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. --- 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")); } }