Skip to content

Strip ANSI escape sequences from Sphinx directive output#15192

Open
damesei wants to merge 1 commit into
ipython:mainfrom
damesei:fix-ansi-sphinxext
Open

Strip ANSI escape sequences from Sphinx directive output#15192
damesei wants to merge 1 commit into
ipython:mainfrom
damesei:fix-ansi-sphinxext

Conversation

@damesei
Copy link
Copy Markdown

@damesei damesei commented Apr 24, 2026

Fixes #11424

The IPython Sphinx directive can produce output containing raw ANSI escape
sequences (e.g. color codes from tracebacks), which render as garbled text
in HTML/PDF docs. This PR strips those escape codes from processed_output
in EmbeddedSphinxShell.process_input using a compiled regex before the
output reaches the final rendered documentation.

Changes:

  • Added _ANSI_RE regex pattern to strip ANSI escape sequences
  • Applied stripping to self.cout.read() output in process_input
  • Added unit tests for ANSI stripping behavior

Fixes ipython#11424. When IPython's Sphinx directive executes code blocks,
stderr/stdout and tracebacks can contain raw ANSI escape sequences
that appear as garbled text in HTML/PDF documentation output.

This adds a regex-based ANSI stripping step to process_input in
EmbeddedSphinxShell so escape codes are removed before output
reaches the rendered documentation. Also adds unit tests for the
stripping behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IPython directive should strip ansi escape sequence from output.

1 participant