Skip to content

fix: keep inline code as a code element in Typst output - #65

Merged
mcanouil merged 9 commits into
mainfrom
fix/typst-inline-highlight-macros
Sep 20, 2026
Merged

mcanouil merged 9 commits into
mainfrom
fix/typst-inline-highlight-macros

Conversation

@mcanouil

Copy link
Copy Markdown
Owner

A Typst document with inline backtick code and no code block failed to compile, with error: unknown variable: NormalTok.

The inline pass rendered each Code element to Typst itself and put the result in a raw inline. Pandoc was then left with nothing to highlight, so it wrote no #let NormalTok(s) = ... definitions, and the token calls in the body had nothing to resolve against. A code block in the same document hid the problem, because the block made Pandoc write the definitions.

The pass now wraps the element in place, between the raw inline that opens the box and the one that closes it. Pandoc highlights the element, writes the definitions and escapes the text itself.

  • The inline output is unchanged. A document with inline code, classed inline code, a code block and inline code in the title gives the same Typst as before.
  • The pass calls pandoc.write once per inline code span no longer.
  • tests/fixtures/inline-code-only.qmd covers the document that failed, and tests/fixtures/inline-code-no-theme.qmd covers the box used when the theme gives no background colour.

A Typst document with inline code and no code block failed to compile,
because Pandoc had nothing left to highlight and wrote no token
definitions for the tokens the inline pass had already written.

The filter now builds the definitions from the document's own highlight
method and writes them once.
The inline pass rendered each Code element to Typst itself and put the
result in a raw inline. Pandoc then had nothing to highlight, so it wrote
no token definitions.

The pass now wraps the element in place. Pandoc highlights it, writes the
definitions, and the inline output is unchanged.
@mcanouil mcanouil added the Type: Bug 🐛 Issues related to bugs, errors, or mistakes label Sep 20, 2026
@mcanouil mcanouil self-assigned this Sep 20, 2026
@mcanouil
mcanouil marked this pull request as ready for review September 20, 2026 18:49
@mcanouil
mcanouil merged commit ea3a594 into main Sep 20, 2026
4 checks passed
@mcanouil
mcanouil deleted the fix/typst-inline-highlight-macros branch September 20, 2026 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: Bug 🐛 Issues related to bugs, errors, or mistakes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant