Fix QuartoRunner: drop --output flag to let Quarto run full typst→PDF pipeline
Build and Deploy Verso / deploy (push) Failing after 12m18s

--to typst combined with --output output.pdf caused Quarto to write a
Typst source file (.typ content) named output.pdf instead of invoking
the typst compiler, producing a text file that the PDF viewer could not
render (hence 'markdown not rendered' — it was literally showing the raw
.typ markup). Fix: let Quarto name the PDF after the input file
(main.qmd → main.pdf) and rename to output.pdf with mv afterwards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
claude
2026-05-31 14:08:08 +00:00
parent b2b2ed13aa
commit 824b873c69
+13 -12
View File
@@ -52,18 +52,19 @@ function _buildQuartoCommand(mainFile) {
// Run through a POSIX shell so stderr is merged into stdout (2>&1).
// Quarto writes all progress and error messages to stderr; without this
// the log panel would be empty on failure.
// LocalCommandRunner replaces $COMPILE_DIR before the shell sees the
// string, so no shell variable expansion occurs for that token.
const quartoArgs = [
'quarto',
'render',
`$COMPILE_DIR/${mainFile}`,
'--to',
'typst',
'--output',
'output.pdf',
].join(' ')
return ['/bin/sh', '-c', `${quartoArgs} 2>&1`]
// LocalCommandRunner replaces $COMPILE_DIR before the shell sees it.
//
// Do NOT pass --output: combining --to typst with --output *.pdf causes
// Quarto to write a Typst source file (.typ) with a .pdf extension instead
// of running the full typst→PDF pipeline. Instead, let Quarto name the PDF
// after the source file (main.qmd → main.pdf) and rename it afterwards.
const inputPath = `$COMPILE_DIR/${mainFile}`
const pdfName = mainFile.replace(/\.[^/.]+$/, '') + '.pdf'
const renderedPdf = `$COMPILE_DIR/${pdfName}`
const cmd =
`quarto render ${inputPath} --to typst 2>&1 && ` +
`mv ${renderedPdf} $COMPILE_DIR/output.pdf`
return ['/bin/sh', '-c', cmd]
}
function _writeLogOutput(compileName, directory, output, callback) {