Skip to content

Commit 44e07b2

Browse files
authored
WEB: Add code highlighting in PDEPs and render tables correctly (#51458)
1 parent 66c53fd commit 44e07b2

File tree

5 files changed

+82
-0
lines changed

5 files changed

+82
-0
lines changed

environment.yml

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ dependencies:
114114
- feedparser
115115
- pyyaml
116116
- requests
117+
- pygments # Code highlighting
117118

118119
- pip:
119120
- sphinx-toggleprompt

requirements-dev.txt

+1
Original file line numberDiff line numberDiff line change
@@ -85,5 +85,6 @@ markdown
8585
feedparser
8686
pyyaml
8787
requests
88+
pygments
8889
sphinx-toggleprompt
8990
setuptools>=61.0.0

web/pandas/config.yml

+3
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@ main:
1818
- tables
1919
- fenced_code
2020
- meta
21+
- footnotes
22+
- codehilite
2123
static:
2224
logo: static/img/pandas_white.svg
2325
css:
2426
- static/css/pandas.css
27+
- static/css/codehilite.css
2528
navbar:
2629
- name: "About us"
2730
target:

web/pandas/static/css/codehilite.css

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
pre { line-height: 125%; }
2+
td.linenos .normal { color: #666666; background-color: transparent; padding-left: 5px; padding-right: 5px; }
3+
span.linenos { color: #666666; background-color: transparent; padding-left: 5px; padding-right: 5px; }
4+
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
5+
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
6+
.codehilite .hll { background-color: #ffffcc }
7+
.codehilite { background: #f0f0f0; }
8+
.codehilite .c { color: #60a0b0; font-style: italic } /* Comment */
9+
.codehilite .err { border: 1px solid #FF0000 } /* Error */
10+
.codehilite .k { color: #007020; font-weight: bold } /* Keyword */
11+
.codehilite .o { color: #666666 } /* Operator */
12+
.codehilite .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
13+
.codehilite .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
14+
.codehilite .cp { color: #007020 } /* Comment.Preproc */
15+
.codehilite .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
16+
.codehilite .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
17+
.codehilite .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
18+
.codehilite .gd { color: #A00000 } /* Generic.Deleted */
19+
.codehilite .ge { font-style: italic } /* Generic.Emph */
20+
.codehilite .gr { color: #FF0000 } /* Generic.Error */
21+
.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
22+
.codehilite .gi { color: #00A000 } /* Generic.Inserted */
23+
.codehilite .go { color: #888888 } /* Generic.Output */
24+
.codehilite .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
25+
.codehilite .gs { font-weight: bold } /* Generic.Strong */
26+
.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
27+
.codehilite .gt { color: #0044DD } /* Generic.Traceback */
28+
.codehilite .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
29+
.codehilite .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
30+
.codehilite .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
31+
.codehilite .kp { color: #007020 } /* Keyword.Pseudo */
32+
.codehilite .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
33+
.codehilite .kt { color: #902000 } /* Keyword.Type */
34+
.codehilite .m { color: #40a070 } /* Literal.Number */
35+
.codehilite .s { color: #4070a0 } /* Literal.String */
36+
.codehilite .na { color: #4070a0 } /* Name.Attribute */
37+
.codehilite .nb { color: #007020 } /* Name.Builtin */
38+
.codehilite .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
39+
.codehilite .no { color: #60add5 } /* Name.Constant */
40+
.codehilite .nd { color: #555555; font-weight: bold } /* Name.Decorator */
41+
.codehilite .ni { color: #d55537; font-weight: bold } /* Name.Entity */
42+
.codehilite .ne { color: #007020 } /* Name.Exception */
43+
.codehilite .nf { color: #06287e } /* Name.Function */
44+
.codehilite .nl { color: #002070; font-weight: bold } /* Name.Label */
45+
.codehilite .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
46+
.codehilite .nt { color: #062873; font-weight: bold } /* Name.Tag */
47+
.codehilite .nv { color: #bb60d5 } /* Name.Variable */
48+
.codehilite .ow { color: #007020; font-weight: bold } /* Operator.Word */
49+
.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
50+
.codehilite .mb { color: #40a070 } /* Literal.Number.Bin */
51+
.codehilite .mf { color: #40a070 } /* Literal.Number.Float */
52+
.codehilite .mh { color: #40a070 } /* Literal.Number.Hex */
53+
.codehilite .mi { color: #40a070 } /* Literal.Number.Integer */
54+
.codehilite .mo { color: #40a070 } /* Literal.Number.Oct */
55+
.codehilite .sa { color: #4070a0 } /* Literal.String.Affix */
56+
.codehilite .sb { color: #4070a0 } /* Literal.String.Backtick */
57+
.codehilite .sc { color: #4070a0 } /* Literal.String.Char */
58+
.codehilite .dl { color: #4070a0 } /* Literal.String.Delimiter */
59+
.codehilite .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
60+
.codehilite .s2 { color: #4070a0 } /* Literal.String.Double */
61+
.codehilite .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
62+
.codehilite .sh { color: #4070a0 } /* Literal.String.Heredoc */
63+
.codehilite .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
64+
.codehilite .sx { color: #c65d09 } /* Literal.String.Other */
65+
.codehilite .sr { color: #235388 } /* Literal.String.Regex */
66+
.codehilite .s1 { color: #4070a0 } /* Literal.String.Single */
67+
.codehilite .ss { color: #517918 } /* Literal.String.Symbol */
68+
.codehilite .bp { color: #007020 } /* Name.Builtin.Pseudo */
69+
.codehilite .fm { color: #06287e } /* Name.Function.Magic */
70+
.codehilite .vc { color: #bb60d5 } /* Name.Variable.Class */
71+
.codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */
72+
.codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */
73+
.codehilite .vm { color: #bb60d5 } /* Name.Variable.Magic */
74+
.codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */

web/pandas_web.py

+3
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,9 @@ def main(
418418
body = markdown.markdown(
419419
content, extensions=context["main"]["markdown_extensions"]
420420
)
421+
# Apply Bootstrap's table formatting manually
422+
# Python-Markdown doesn't let us config table attributes by hand
423+
body = body.replace("<table>", '<table class="table table-bordered">')
421424
content = extend_base_template(body, context["main"]["base_template"])
422425
context["base_url"] = "".join(["../"] * os.path.normpath(fname).count("/"))
423426
content = jinja_env.from_string(content).render(**context)

0 commit comments

Comments
 (0)