From 2c793083f4cb40f31a6b3258aeb1739a9870b8ea Mon Sep 17 00:00:00 2001
From: Jeremy Rose <172423086+nornagon-openai@users.noreply.github.com>
Date: Thu, 20 Nov 2025 13:06:22 -0800
Subject: [PATCH] tui: centralize markdown styling and make inline code cyan
(#7023)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
codex-rs/tui/src/markdown_render.rs | 77 ++++++++++++++++++-----
codex-rs/tui/src/markdown_render_tests.rs | 2 +-
2 files changed, 63 insertions(+), 16 deletions(-)
diff --git a/codex-rs/tui/src/markdown_render.rs b/codex-rs/tui/src/markdown_render.rs
index 099d0860c..19cf94492 100644
--- a/codex-rs/tui/src/markdown_render.rs
+++ b/codex-rs/tui/src/markdown_render.rs
@@ -10,11 +10,50 @@ use pulldown_cmark::Parser;
use pulldown_cmark::Tag;
use pulldown_cmark::TagEnd;
use ratatui::style::Style;
-use ratatui::style::Stylize;
use ratatui::text::Line;
use ratatui::text::Span;
use ratatui::text::Text;
+struct MarkdownStyles {
+ h1: Style,
+ h2: Style,
+ h3: Style,
+ h4: Style,
+ h5: Style,
+ h6: Style,
+ code: Style,
+ emphasis: Style,
+ strong: Style,
+ strikethrough: Style,
+ ordered_list_marker: Style,
+ unordered_list_marker: Style,
+ link: Style,
+ blockquote: Style,
+}
+
+impl Default for MarkdownStyles {
+ fn default() -> Self {
+ use ratatui::style::Stylize;
+
+ Self {
+ h1: Style::new().bold().underlined(),
+ h2: Style::new().bold(),
+ h3: Style::new().bold().italic(),
+ h4: Style::new().italic(),
+ h5: Style::new().italic(),
+ h6: Style::new().italic(),
+ code: Style::new().cyan(),
+ emphasis: Style::new().italic(),
+ strong: Style::new().bold(),
+ strikethrough: Style::new().crossed_out(),
+ ordered_list_marker: Style::new().light_blue(),
+ unordered_list_marker: Style::new(),
+ link: Style::new().cyan().underlined(),
+ blockquote: Style::new().green(),
+ }
+ }
+}
+
#[derive(Clone, Debug)]
struct IndentContext {
prefix: Vec>,
@@ -51,6 +90,7 @@ where
{
iter: I,
text: Text<'static>,
+ styles: MarkdownStyles,
inline_styles: Vec