Skip to content

Commit 12bd15f

Browse files
authored
gh-129939: Add darkmode support for difflib's comparison pages (#129940)
1 parent 3b366a4 commit 12bd15f

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

Doc/whatsnew/3.14.rst

+7
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,13 @@ decimal
411411
:meth:`Decimal.from_number() <decimal.Decimal.from_number>`.
412412
(Contributed by Serhiy Storchaka in :gh:`121798`.)
413413

414+
difflib
415+
-------
416+
417+
* Comparison pages with highlighted changes generated by the
418+
:class:`difflib.HtmlDiff` class now support dark mode.
419+
(Contributed by Jiahao Li in :gh:`129939`.)
420+
414421
dis
415422
---
416423

Lib/difflib.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -1632,13 +1632,22 @@ def _line_pair_iterator():
16321632
</html>"""
16331633

16341634
_styles = """
1635+
:root {color-scheme: light dark}
16351636
table.diff {font-family:Courier; border:medium;}
16361637
.diff_header {background-color:#e0e0e0}
16371638
td.diff_header {text-align:right}
16381639
.diff_next {background-color:#c0c0c0}
1639-
.diff_add {background-color:#aaffaa}
1640+
.diff_add {background-color:palegreen}
16401641
.diff_chg {background-color:#ffff77}
1641-
.diff_sub {background-color:#ffaaaa}"""
1642+
.diff_sub {background-color:#ffaaaa}
1643+
1644+
@media (prefers-color-scheme: dark) {
1645+
.diff_header {background-color:#666}
1646+
.diff_next {background-color:#393939}
1647+
.diff_add {background-color:darkgreen}
1648+
.diff_chg {background-color:#847415}
1649+
.diff_sub {background-color:darkred}
1650+
}"""
16421651

16431652
_table_template = """
16441653
<table class="diff" id="difflib_chg_%(prefix)s_top"

Lib/test/test_difflib_expect.html

+10-1
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,22 @@
99
content="text/html; charset=utf-8" />
1010
<title></title>
1111
<style type="text/css">
12+
:root {color-scheme: light dark}
1213
table.diff {font-family:Courier; border:medium;}
1314
.diff_header {background-color:#e0e0e0}
1415
td.diff_header {text-align:right}
1516
.diff_next {background-color:#c0c0c0}
16-
.diff_add {background-color:#aaffaa}
17+
.diff_add {background-color:palegreen}
1718
.diff_chg {background-color:#ffff77}
1819
.diff_sub {background-color:#ffaaaa}
20+
21+
@media (prefers-color-scheme: dark) {
22+
.diff_header {background-color:#666}
23+
.diff_next {background-color:#393939}
24+
.diff_add {background-color:darkgreen}
25+
.diff_chg {background-color:#847415}
26+
.diff_sub {background-color:darkred}
27+
}
1928
</style>
2029
</head>
2130

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Comparison pages with highlighted changes generated by the
2+
:class:`difflib.HtmlDiff` class now support dark mode.

0 commit comments

Comments
 (0)