← eval_submission_analyzer

rich_3944

failed WRONG_FIX wrong_fix · 10 tool calls · 29 s · Textualize/rich

Task input

fix fonts

Fixes https://github.com/Textualize/rich/issues/3943

Tool calls (11)

#ToolArgumentsResult
1run_command
{
 "command": "grep -rn \"font\" . | head -40"
}
{"status": "ok", "stdout": "./assets/logo.svg:4: <style bx:fonts=\"Fira Code\">@font-face { font-family: \"Fira Code\"; font-style: normal; font-weight: 300; fo
full
{"status": "ok", "stdout": "./assets/logo.svg:4:    <style bx:fonts=\"Fira Code\">@font-face { font-family: \"Fira Code\"; font-style: normal; font-weight: 300; font-stretch: normal; font-variant: normal; font-feature-settings: normal; src: url(\"data:font/ttf;base64,AAEAAAAQAQAABAAAR0RFRp4LlJ8AAhdoAAABdkdQT1NaRxfrAAIY4AAAFfxHU1VCvcA6eQACLtwAAFUwT1MvMmlt1xQAAZHIAAAAYFNUQVR4cGiMAAKEDAAAABxjbWFwI+mTbgABkigAADpwZ2FzcAAAABAAAhdgAAAACGdseWYLbS8pAAABDAABaVpoZWFkC8n2/gABd4QAAAA2aGhlYQM6BAMAAZGkAAAAJGhtdHjgF35pAAF3vAAAGeZsb2NhNWuROgABaogAAAz8bWF4cAbrArwAAWpoAAAAIG5hbWVz25rrAAHMoAAABIJwb3N0XaJ9IgAB0SQAAEY7cHJlcGgGjIUAAcyYAAAABwAEALT9RAP8CDQAAwAHACcAMwAAUyERISURIREBFAYjIiY1NTY2NTQmIyIHBiMiJjU0NjYzMhYWFRQGBwM0NjMyFhUUBiMiJrQDSPy4Atz9kgFEIBITH2xKL0s5Lw8LFho9VidWYSdZZXgoHh4oKB4eKAg09RBoCiD14AOuFhoaFqgGRU87TxYGGxMbIhFBaTxpdA/+9h4oKB4fKysAAAIAPAAABHQFXgAHAAoAAEEhAyMBMwEjASEDA3f9tnl4AcepAciE/WgB9fkBb/6RBV76ogHjAwT//wA8AAAEdAb4BiYAAQAAAAYGNAoA//8APAAABHQG4wYmAAEAAAAGBjX9AP//ADwAAAR0BwoGJgABAAAABgY4AAD//wA8AAAEdAa6BiYAAQAAAAYGOQQA//8APAAABHQHAQYmAAEAAAAGBjsEAP//ADwAAAR0BqQGJgABAAAABgY9BAD//wA8/kMEdAVeBiYAAQAAAAcGMAERAAD//wA8AAAEdAdCBiYAAQAAAAYGPgQA//8APAAABHQG5wYmAAEAAAAGBj8EAAAC/+gAAATCBV4ADwASAABBIQMjASEHIRMhFSETIRUhASEDAp3+Q3CIAaQC4RH+CXABhv6RcQFl/iv+IwFuoAFt/pMFXnX+C3X99nUB5wMH////6AAABMIG+AYmAAsAAAAHBjQAiwAAAAMA2QAABCQFXgALABQAKQAAQTQmJiMhESEyPgIDNCYjIxEzMjYTFA4CIyERITIeAhUUBgYHHgIDm1iPU/73AQMzcGE8N56C7P9/jsBYkbFa/qkBNVaoiVNKdUFNkV4BeXJ5Lv3hFThnAtyAa/4ddv4EbpZaJwVeIE6GZVp8SQ4NRYsAAAEAkP/sBGIFcQAdAABBMhYXByYmIyIGAhUUEhYzMjY3FwYGIyIkAjU0EiQCzIOuUE5Dk094z354y3x3mTZIOsOPof73nJ8BBQVxQUBZOS1u/v/f2f7+ckQtXDhTowE75egBOqAA//8AkP/sBGIG+AYmAA4AAAAHBjQAkAAA//8AkP/sBGIG+AYmAA4AAAAHBjYAhgAA//8AkP4xBGIFcQYmAA4AAAAGBjdiAP//AJD/7ARiBwoGJgAOAAAABwY4AIYAAP//AJD/7ARiBuEGJgAOAAAABwY6AIoAAAACALoAAAREBV4ADAAZAABBNC4CIyMRMzI+AjcUAgYGIyERITIWFhIDuVWInUm9wEydhVKLcLfUZf7WARV14LVrArbA43Ak+4EwfuW12v7vlDcFXjWR/vUAAwAvAAAEVQVeAAMAEAAdAABBFSE1BTQuAiMjETMyPgI3FAIGBiMhESEyFhYSAp39kgObVYidSb3ATJ2FUotwt9Rl/tYBFXXg
2run_command
{
 "command": "grep -rn \"font\" . --exclude=*.svg | head -40"
}
{"status": "ok", "stdout": "./CHANGELOG.md:175:- Ensure font is correctly inherited in exported HTML https://github.com/Textualize/rich/issues/3104\n./CHANGELOG
full
{"status": "ok", "stdout": "./CHANGELOG.md:175:- Ensure font is correctly inherited in exported HTML https://github.com/Textualize/rich/issues/3104\n./CHANGELOG.md:360:- Add `font_aspect_ratio` parameter in SVG export https://github.com/Textualize/rich/pull/2539/files\n./README.pt-br.md:29:A [API do Rich](https://rich.readthedocs.io/en/latest/) permite adicionar cores e estilos no output do terminal de forma f\u00e1cil. Rich tamb\u00e9m permite formata\u00e7ao de tabelas, barra de progresso, markdown, highlight de sintaxe de c\u00f3digo fonte, rastreio de erros (traceback) e muito mais.\n./tests/test_style.py:128:    expected = \"color: #7f7fbf; text-decoration-color: #7f7fbf; background-color: #800000; font-weight: bold; font-style: italic; text-decoration: underline; text-decoration: line-through; text-decoration: overline\"\n./tests/test_console.py:518:    expected = '<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\"UTF-8\">\\n<style>\\n.r1 {font-weight: bold}\\n.r2 {color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold}\\n.r3 {color: #008000; text-decoration-color: #008000; font-weight: bold}\\nbody {\\n    color: #000000;\\n    background-color: #ffffff;\\n}\\n</style>\\n</head>\\n<body>\\n    <pre style=\"font-family:Menlo,\\'DejaVu Sans Mono\\',consolas,\\'Courier New\\',monospace\"><code style=\"font-family:inherit\"><span class=\"r1\">foo &lt;</span><span class=\"r2\">script</span><span class=\"r1\">&gt; </span><span class=\"r3\">&#x27;test&#x27;</span><span class=\"r1\"> </span><a class=\"r1\" href=\"https://example.org\">Click</a>\\n</code></pre>\\n</body>\\n</html>\\n'\n./tests/test_console.py:527:    expected = '<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\"UTF-8\">\\n<style>\\n\\nbody {\\n    color: #000000;\\n    background-color: #ffffff;\\n}\\n</style>\\n</head>\\n<body>\\n    <pre style=\"font-family:Menlo,\\'DejaVu Sans Mono\\',consolas,\\'Courier New\\',monospace\"><code style=\"font-family:inherit\"><span style=\"font-weight
3run_command
{
 "command": "grep -rn \"font-family\" . | head -20"
}
{"status": "ok", "stdout": "./assets/logo.svg:4: <style bx:fonts=\"Fira Code\">@font-face { font-family: \"Fira Code\"; font-style: normal; font-weight: 300; fo
full
{"status": "ok", "stdout": "./assets/logo.svg:4:    <style bx:fonts=\"Fira Code\">@font-face { font-family: \"Fira Code\"; font-style: normal; font-weight: 300; font-stretch: normal; font-variant: normal; font-feature-settings: normal; src: url(\"data:font/ttf;base64,AAEAAAAQAQAABAAAR0RFRp4LlJ8AAhdoAAABdkdQT1NaRxfrAAIY4AAAFfxHU1VCvcA6eQACLtwAAFUwT1MvMmlt1xQAAZHIAAAAYFNUQVR4cGiMAAKEDAAAABxjbWFwI+mTbgABkigAADpwZ2FzcAAAABAAAhdgAAAACGdseWYLbS8pAAABDAABaVpoZWFkC8n2/gABd4QAAAA2aGhlYQM6BAMAAZGkAAAAJGhtdHjgF35pAAF3vAAAGeZsb2NhNWuROgABaogAAAz8bWF4cAbrArwAAWpoAAAAIG5hbWVz25rrAAHMoAAABIJwb3N0XaJ9IgAB0SQAAEY7cHJlcGgGjIUAAcyYAAAABwAEALT9RAP8CDQAAwAHACcAMwAAUyERISURIREBFAYjIiY1NTY2NTQmIyIHBiMiJjU0NjYzMhYWFRQGBwM0NjMyFhUUBiMiJrQDSPy4Atz9kgFEIBITH2xKL0s5Lw8LFho9VidWYSdZZXgoHh4oKB4eKAg09RBoCiD14AOuFhoaFqgGRU87TxYGGxMbIhFBaTxpdA/+9h4oKB4fKysAAAIAPAAABHQFXgAHAAoAAEEhAyMBMwEjASEDA3f9tnl4AcepAciE/WgB9fkBb/6RBV76ogHjAwT//wA8AAAEdAb4BiYAAQAAAAYGNAoA//8APAAABHQG4wYmAAEAAAAGBjX9AP//ADwAAAR0BwoGJgABAAAABgY4AAD//wA8AAAEdAa6BiYAAQAAAAYGOQQA//8APAAABHQHAQYmAAEAAAAGBjsEAP//ADwAAAR0BqQGJgABAAAABgY9BAD//wA8/kMEdAVeBiYAAQAAAAcGMAERAAD//wA8AAAEdAdCBiYAAQAAAAYGPgQA//8APAAABHQG5wYmAAEAAAAGBj8EAAAC/+gAAATCBV4ADwASAABBIQMjASEHIRMhFSETIRUhASEDAp3+Q3CIAaQC4RH+CXABhv6RcQFl/iv+IwFuoAFt/pMFXnX+C3X99nUB5wMH////6AAABMIG+AYmAAsAAAAHBjQAiwAAAAMA2QAABCQFXgALABQAKQAAQTQmJiMhESEyPgIDNCYjIxEzMjYTFA4CIyERITIeAhUUBgYHHgIDm1iPU/73AQMzcGE8N56C7P9/jsBYkbFa/qkBNVaoiVNKdUFNkV4BeXJ5Lv3hFThnAtyAa/4ddv4EbpZaJwVeIE6GZVp8SQ4NRYsAAAEAkP/sBGIFcQAdAABBMhYXByYmIyIGAhUUEhYzMjY3FwYGIyIkAjU0EiQCzIOuUE5Dk094z354y3x3mTZIOsOPof73nJ8BBQVxQUBZOS1u/v/f2f7+ckQtXDhTowE75egBOqAA//8AkP/sBGIG+AYmAA4AAAAHBjQAkAAA//8AkP/sBGIG+AYmAA4AAAAHBjYAhgAA//8AkP4xBGIFcQYmAA4AAAAGBjdiAP//AJD/7ARiBwoGJgAOAAAABwY4AIYAAP//AJD/7ARiBuEGJgAOAAAABwY6AIoAAAACALoAAAREBV4ADAAZAABBNC4CIyMRMzI+AjcUAgYGIyERITIWFhIDuVWInUm9wEydhVKLcLfUZf7WARV14LVrArbA43Ak+4EwfuW12v7vlDcFXjWR/vUAAwAvAAAEVQVeAAMAEAAdAABBFSE1BTQuAiMjETMyPgI3FAIGBiMhESEyFhYSAp39kgObVYidSb3ATJ2FUotwt9Rl/tYBFXXg
4run_command
{
 "command": "grep -rn \"font-family\" . --exclude=*.svg | head -20"
}
{"status": "ok", "stdout": "./tests/test_console.py:518: expected = '<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\"UTF-8\">\\n<style>\\n.r1 {font-weight:
full
{"status": "ok", "stdout": "./tests/test_console.py:518:    expected = '<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\"UTF-8\">\\n<style>\\n.r1 {font-weight: bold}\\n.r2 {color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold}\\n.r3 {color: #008000; text-decoration-color: #008000; font-weight: bold}\\nbody {\\n    color: #000000;\\n    background-color: #ffffff;\\n}\\n</style>\\n</head>\\n<body>\\n    <pre style=\"font-family:Menlo,\\'DejaVu Sans Mono\\',consolas,\\'Courier New\\',monospace\"><code style=\"font-family:inherit\"><span class=\"r1\">foo &lt;</span><span class=\"r2\">script</span><span class=\"r1\">&gt; </span><span class=\"r3\">&#x27;test&#x27;</span><span class=\"r1\"> </span><a class=\"r1\" href=\"https://example.org\">Click</a>\\n</code></pre>\\n</body>\\n</html>\\n'\n./tests/test_console.py:527:    expected = '<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\"UTF-8\">\\n<style>\\n\\nbody {\\n    color: #000000;\\n    background-color: #ffffff;\\n}\\n</style>\\n</head>\\n<body>\\n    <pre style=\"font-family:Menlo,\\'DejaVu Sans Mono\\',consolas,\\'Courier New\\',monospace\"><code style=\"font-family:inherit\"><span style=\"font-weight: bold\">foo </span><span style=\"font-weight: bold\"><a href=\"https://example.org\">Click</a></span>\\n</code></pre>\\n</body>\\n</html>\\n'\n./tests/test_console.py:531:EXPECTED_SVG = '<svg class=\"rich-terminal\" viewBox=\"0 0 1238 74.4\" xmlns=\"http://www.w3.org/2000/svg\">\\n    <!-- Generated with Rich https://www.textualize.io -->\\n    <style>\\n\\n    @font-face {\\n        font-family: \"Fira Code\";\\n        src: local(\"FiraCode-Regular\"),\\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2\") format(\"woff2\"),\\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff\") format(\"woff\");\\n        font-style: normal;\\n        font-weight: 400;\\n    }\\n    @font-face {\\n        fo
5run_command
{
 "command": "grep -rn \"export_html\" . | head -20"
}
{"status": "ok", "stdout": "./tests/test_console.py:513:def test_export_html() -> None:\n./tests/test_console.py:516: html = console.export_html()\n./tests/test
full
{"status": "ok", "stdout": "./tests/test_console.py:513:def test_export_html() -> None:\n./tests/test_console.py:516:    html = console.export_html()\n./tests/test_console.py:522:def test_export_html_inline() -> None:\n./tests/test_console.py:525:    html = console.export_html(inline_styles=True)\n./examples/export.py:42:file2 = \"table_export_html.html\"\n./examples/export.py:43:html = console.export_html(clear=False)\n./examples/export.py:54:file4 = \"table_export_html2.html\"\n./docs/source/console.rst:257:After you have written content, you can call :meth:`~rich.console.Console.export_text`, :meth:`~rich.console.Console.export_svg` or :meth:`~rich.console.Console.export_html` to get the console output as a string. You can also call :meth:`~rich.console.Console.save_text`, :meth:`~rich.console.Console.save_svg`, or :meth:`~rich.console.Console.save_html` to write the contents directly to disk.\n./rich/default_styles.py:195:        print(console.export_html(inline_styles=True))\n./rich/console.py:607:            required to call :meth:`export_html`, :meth:`export_svg`, and :meth:`export_text`. Defaults to False.\n./rich/console.py:2223:    def export_html(\n./rich/console.py:2320:        html = self.export_html(\n", "exit_code": 0}
6read_file
{
 "filepath": "rich/console.py",
 "start_line": 2223,
 "end_line": 2320
}
{"status": "ok", "filepath": "rich/console.py", "content": " def export_html(\n self,\n *,\n theme: Optional[TerminalTheme] = None,\n clear: bool = True,\n code
full
{"status": "ok", "filepath": "rich/console.py", "content": "    def export_html(\n        self,\n        *,\n        theme: Optional[TerminalTheme] = None,\n        clear: bool = True,\n        code_format: Optional[str] = None,\n        inline_styles: bool = False,\n    ) -> str:\n        \"\"\"Generate HTML from console contents (requires record=True argument in constructor).\n\n        Args:\n            theme (TerminalTheme, optional): TerminalTheme object containing console colors.\n            clear (bool, optional): Clear record buffer after exporting. Defaults to ``True``.\n            code_format (str, optional): Format string to render HTML. In addition to '{foreground}',\n                '{background}', and '{code}', should contain '{stylesheet}' if inline_styles is ``False``.\n            inline_styles (bool, optional): If ``True`` styles will be inlined in to spans, which makes files\n                larger but easier to cut and paste markup. If ``False``, styles will be embedded in a style tag.\n                Defaults to False.\n\n        Returns:\n            str: String containing console contents as HTML.\n        \"\"\"\n        assert (\n            self.record\n        ), \"To export console contents set record=True in the constructor or instance\"\n        fragments: List[str] = []\n        append = fragments.append\n        _theme = theme or DEFAULT_TERMINAL_THEME\n        stylesheet = \"\"\n\n        render_code_format = CONSOLE_HTML_FORMAT if code_format is None else code_format\n\n        with self._record_buffer_lock:\n            if inline_styles:\n                for text, style, _ in Segment.filter_control(\n                    Segment.simplify(self._record_buffer)\n                ):\n                    text = escape(text)\n                    if style:\n                        rule = style.get_html_style(_theme)\n                        if style.link:\n                            text = f'<a href=\"{style.link}\">{text}</a>'\n      
7run_command
{
 "command": "grep -rn \"CONSOLE_HTML_FORMAT\" . | head -20"
}
{"status": "ok", "stdout": "./rich/console.py:42:from ._export_format import CONSOLE_HTML_FORMAT, CONSOLE_SVG_FORMAT\n./rich/console.py:2253: render_code_format
full
{"status": "ok", "stdout": "./rich/console.py:42:from ._export_format import CONSOLE_HTML_FORMAT, CONSOLE_SVG_FORMAT\n./rich/console.py:2253:        render_code_format = CONSOLE_HTML_FORMAT if code_format is None else code_format\n./rich/console.py:2304:        code_format: str = CONSOLE_HTML_FORMAT,\n./rich/_export_format.py:1:CONSOLE_HTML_FORMAT = \"\"\"\\\n", "exit_code": 0}
8read_file
{
 "end_line": 20,
 "filepath": "rich/_export_format.py",
 "start_line": 1
}
{"status": "ok", "filepath": "rich/_export_format.py", "content": "CONSOLE_HTML_FORMAT = \"\"\"\\\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<s
full
{"status": "ok", "filepath": "rich/_export_format.py", "content": "CONSOLE_HTML_FORMAT = \"\"\"\\\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<style>\n{stylesheet}\nbody {{\n    color: {foreground};\n    background-color: {background};\n}}\n</style>\n</head>\n<body>\n    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\n</body>\n</html>\n\"\"\"\n\nCONSOLE_SVG_FORMAT = \"\"\"\\\n", "start_line": 1, "end_line": 20, "total_lines": 76, "is_truncated": false}
9read_file
{
 "filepath": "rich/_export_format.py"
}
{"status": "ok", "filepath": "rich/_export_format.py", "content": "CONSOLE_HTML_FORMAT = \"\"\"\\\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<s
full
{"status": "ok", "filepath": "rich/_export_format.py", "content": "CONSOLE_HTML_FORMAT = \"\"\"\\\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<style>\n{stylesheet}\nbody {{\n    color: {foreground};\n    background-color: {background};\n}}\n</style>\n</head>\n<body>\n    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\n</body>\n</html>\n\"\"\"\n\nCONSOLE_SVG_FORMAT = \"\"\"\\\n<svg class=\"rich-terminal\" viewBox=\"0 0 {width} {height}\" xmlns=\"http://www.w3.org/2000/svg\">\n    <!-- Generated with Rich https://www.textualize.io -->\n    <style>\n\n    @font-face {{\n        font-family: \"Fira Code\";\n        src: local(\"FiraCode-Regular\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2\") format(\"woff2\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff\") format(\"woff\");\n        font-style: normal;\n        font-weight: 400;\n    }}\n    @font-face {{\n        font-family: \"Fira Code\";\n        src: local(\"FiraCode-Bold\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2\") format(\"woff2\"),\n                url(\"https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff\") format(\"woff\");\n        font-style: bold;\n        font-weight: 700;\n    }}\n\n    .{unique_id}-matrix {{\n        font-family: Fira Code, monospace;\n        font-size: {char_height}px;\n        line-height: {line_height}px;\n        font-variant-east-asian: full-width;\n    }}\n\n    .{unique_id}-title {{\n        font-size: 18px;\n        font-weight: bold;\n        font-family: arial;\n    }}\n\n    {styles}\n    </style>\n\n    <defs>\n    <clipPath id=\"{unique_id}-clip-terminal\">\n      <rect x=\"0\" y=\"0\" width=\"{terminal_width}\" height=\"{terminal_height}\" />\n    </cli
10edit_file
{
 "filepath": "rich/_export_format.py",
 "new_string": "    <pre style=\"font-family: 'Fira Code', 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'DejaVu Sans Mono', 'Courier New', monospace\"><code style=\"font-family:inherit\">{code}</code></pre>",
 "old_string": "    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>"
}
{"status": "ok", "filepath": "rich/_export_format.py", "occurrences": 1, "strategy": "exact", "diff": "--- a/rich/_export_format.py\n+++ b/rich/_export_format.p
full
{"status": "ok", "filepath": "rich/_export_format.py", "occurrences": 1, "strategy": "exact", "diff": "--- a/rich/_export_format.py\n+++ b/rich/_export_format.py\n@@ -12,7 +12,7 @@\n </style>\n </head>\n <body>\n-    <pre style=\"font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\n+    <pre style=\"font-family: 'Fira Code', 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'DejaVu Sans Mono', 'Courier New', monospace\"><code style=\"font-family:inherit\">{code}</code></pre>\n </body>\n </html>\n \"\"\"\n", "is_truncated": false}
11submit_patch
[]
{"status": "ok", "patch_size": 563, "files_changed": 1}
full
{"status": "ok", "patch_size": 563, "files_changed": 1}

Patch

diff --git a/rich/_export_format.py b/rich/_export_format.py
index e7527e52..2ffd4f8d 100644
--- a/rich/_export_format.py
+++ b/rich/_export_format.py
@@ -12,7 +12,7 @@ body {{
 </style>
 </head>
 <body>
-    <pre style="font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace"><code style="font-family:inherit">{code}</code></pre>
+    <pre style="font-family: 'Fira Code', 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'DejaVu Sans Mono', 'Courier New', monospace"><code style="font-family:inherit">{code}</code></pre>
 </body>
 </html>
 """

Test output

show
.....................................................F
=================================== FAILURES ===================================
________________________________ test_nerd_font ________________________________

    def test_nerd_font():
        """Regression test for https://github.com/Textualize/rich/issues/3943"""
        # Not allocated by unicode, but used by nerd fonts
>       assert cell_len("\U000f024d") == 1
E       AssertionError: assert 0 == 1
E        +  where 0 = cell_len('\U000f024d')

tests/test_cells.py:189: AssertionError
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
1 failed, 53 passed in 0.08s