Skip to content

Commit 11a4ae1

Browse files
committed
Docs: automatic dark mode
1 parent 0df1010 commit 11a4ae1

File tree

4 files changed

+202
-3
lines changed

4 files changed

+202
-3
lines changed

.github/workflows/pdoc.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ jobs:
2626
- uses: actions/setup-python@v6
2727
with:
2828
python-version: '3.14'
29-
- run: uv run pdoc ./src/obelisk -o docs/ --math
29+
- run: uv run pdoc ./src/obelisk -o ./docs/build/ --math --template-directory ./docs/templates/
3030
- uses: actions/upload-pages-artifact@v4
3131
with:
32-
path: docs/
32+
path: docs/build/
3333

3434
# Deploy the artifact to GitHub pages.
3535
# This is a separate job so that only actions/deploy-pages has the necessary permissions.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ coverage.xml
4848
cover/
4949

5050
# Sphinx documentation
51-
docs/
51+
docs/build/
5252

5353
# PyBuilder
5454
.pybuilder/
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
/* auto-generated, see templates/README.md */
2+
pre { line-height: 125%; }
3+
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 20px; }
4+
.pdoc-code .hll { background-color: #ffffcc }
5+
.pdoc-code { background: #f8f8f8; }
6+
.pdoc-code .c { color: #3D7B7B; font-style: italic } /* Comment */
7+
.pdoc-code .err { border: 1px solid #FF0000 } /* Error */
8+
.pdoc-code .k { color: #008000; font-weight: bold } /* Keyword */
9+
.pdoc-code .o { color: #666666 } /* Operator */
10+
.pdoc-code .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
11+
.pdoc-code .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
12+
.pdoc-code .cp { color: #9C6500 } /* Comment.Preproc */
13+
.pdoc-code .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
14+
.pdoc-code .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
15+
.pdoc-code .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
16+
.pdoc-code .gd { color: #A00000 } /* Generic.Deleted */
17+
.pdoc-code .ge { font-style: italic } /* Generic.Emph */
18+
.pdoc-code .gr { color: #E40000 } /* Generic.Error */
19+
.pdoc-code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
20+
.pdoc-code .gi { color: #008400 } /* Generic.Inserted */
21+
.pdoc-code .go { color: #717171 } /* Generic.Output */
22+
.pdoc-code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
23+
.pdoc-code .gs { font-weight: bold } /* Generic.Strong */
24+
.pdoc-code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
25+
.pdoc-code .gt { color: #0044DD } /* Generic.Traceback */
26+
.pdoc-code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
27+
.pdoc-code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
28+
.pdoc-code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
29+
.pdoc-code .kp { color: #008000 } /* Keyword.Pseudo */
30+
.pdoc-code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
31+
.pdoc-code .kt { color: #B00040 } /* Keyword.Type */
32+
.pdoc-code .m { color: #666666 } /* Literal.Number */
33+
.pdoc-code .s { color: #BA2121 } /* Literal.String */
34+
.pdoc-code .na { color: #687822 } /* Name.Attribute */
35+
.pdoc-code .nb { color: #008000 } /* Name.Builtin */
36+
.pdoc-code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
37+
.pdoc-code .no { color: #880000 } /* Name.Constant */
38+
.pdoc-code .nd { color: #AA22FF } /* Name.Decorator */
39+
.pdoc-code .ni { color: #717171; font-weight: bold } /* Name.Entity */
40+
.pdoc-code .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
41+
.pdoc-code .nf { color: #0000FF } /* Name.Function */
42+
.pdoc-code .nl { color: #767600 } /* Name.Label */
43+
.pdoc-code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
44+
.pdoc-code .nt { color: #008000; font-weight: bold } /* Name.Tag */
45+
.pdoc-code .nv { color: #19177C } /* Name.Variable */
46+
.pdoc-code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
47+
.pdoc-code .w { color: #bbbbbb } /* Text.Whitespace */
48+
.pdoc-code .mb { color: #666666 } /* Literal.Number.Bin */
49+
.pdoc-code .mf { color: #666666 } /* Literal.Number.Float */
50+
.pdoc-code .mh { color: #666666 } /* Literal.Number.Hex */
51+
.pdoc-code .mi { color: #666666 } /* Literal.Number.Integer */
52+
.pdoc-code .mo { color: #666666 } /* Literal.Number.Oct */
53+
.pdoc-code .sa { color: #BA2121 } /* Literal.String.Affix */
54+
.pdoc-code .sb { color: #BA2121 } /* Literal.String.Backtick */
55+
.pdoc-code .sc { color: #BA2121 } /* Literal.String.Char */
56+
.pdoc-code .dl { color: #BA2121 } /* Literal.String.Delimiter */
57+
.pdoc-code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
58+
.pdoc-code .s2 { color: #BA2121 } /* Literal.String.Double */
59+
.pdoc-code .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
60+
.pdoc-code .sh { color: #BA2121 } /* Literal.String.Heredoc */
61+
.pdoc-code .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
62+
.pdoc-code .sx { color: #008000 } /* Literal.String.Other */
63+
.pdoc-code .sr { color: #A45A77 } /* Literal.String.Regex */
64+
.pdoc-code .s1 { color: #BA2121 } /* Literal.String.Single */
65+
.pdoc-code .ss { color: #19177C } /* Literal.String.Symbol */
66+
.pdoc-code .bp { color: #008000 } /* Name.Builtin.Pseudo */
67+
.pdoc-code .fm { color: #0000FF } /* Name.Function.Magic */
68+
.pdoc-code .vc { color: #19177C } /* Name.Variable.Class */
69+
.pdoc-code .vg { color: #19177C } /* Name.Variable.Global */
70+
.pdoc-code .vi { color: #19177C } /* Name.Variable.Instance */
71+
.pdoc-code .vm { color: #19177C } /* Name.Variable.Magic */
72+
.pdoc-code .il { color: #666666 } /* Literal.Number.Integer.Long */
73+
74+
@media (prefers-color-scheme: dark) {
75+
/* monokai color scheme, see pdoc/template/README.md */
76+
pre { line-height: 125%; }
77+
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 20px; }
78+
.pdoc-code .hll { background-color: #49483e }
79+
.pdoc-code { background: #272822; color: #f8f8f2 }
80+
.pdoc-code .c { color: #75715e } /* Comment */
81+
.pdoc-code .err { color: #960050; background-color: #1e0010 } /* Error */
82+
.pdoc-code .esc { color: #f8f8f2 } /* Escape */
83+
.pdoc-code .g { color: #f8f8f2 } /* Generic */
84+
.pdoc-code .k { color: #66d9ef } /* Keyword */
85+
.pdoc-code .l { color: #ae81ff } /* Literal */
86+
.pdoc-code .n { color: #f8f8f2 } /* Name */
87+
.pdoc-code .o { color: #f92672 } /* Operator */
88+
.pdoc-code .x { color: #f8f8f2 } /* Other */
89+
.pdoc-code .p { color: #f8f8f2 } /* Punctuation */
90+
.pdoc-code .ch { color: #75715e } /* Comment.Hashbang */
91+
.pdoc-code .cm { color: #75715e } /* Comment.Multiline */
92+
.pdoc-code .cp { color: #75715e } /* Comment.Preproc */
93+
.pdoc-code .cpf { color: #75715e } /* Comment.PreprocFile */
94+
.pdoc-code .c1 { color: #75715e } /* Comment.Single */
95+
.pdoc-code .cs { color: #75715e } /* Comment.Special */
96+
.pdoc-code .gd { color: #f92672 } /* Generic.Deleted */
97+
.pdoc-code .ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */
98+
.pdoc-code .gr { color: #f8f8f2 } /* Generic.Error */
99+
.pdoc-code .gh { color: #f8f8f2 } /* Generic.Heading */
100+
.pdoc-code .gi { color: #a6e22e } /* Generic.Inserted */
101+
.pdoc-code .go { color: #66d9ef } /* Generic.Output */
102+
.pdoc-code .gp { color: #f92672; font-weight: bold } /* Generic.Prompt */
103+
.pdoc-code .gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */
104+
.pdoc-code .gu { color: #75715e } /* Generic.Subheading */
105+
.pdoc-code .gt { color: #f8f8f2 } /* Generic.Traceback */
106+
.pdoc-code .kc { color: #66d9ef } /* Keyword.Constant */
107+
.pdoc-code .kd { color: #66d9ef } /* Keyword.Declaration */
108+
.pdoc-code .kn { color: #f92672 } /* Keyword.Namespace */
109+
.pdoc-code .kp { color: #66d9ef } /* Keyword.Pseudo */
110+
.pdoc-code .kr { color: #66d9ef } /* Keyword.Reserved */
111+
.pdoc-code .kt { color: #66d9ef } /* Keyword.Type */
112+
.pdoc-code .ld { color: #e6db74 } /* Literal.Date */
113+
.pdoc-code .m { color: #ae81ff } /* Literal.Number */
114+
.pdoc-code .s { color: #e6db74 } /* Literal.String */
115+
.pdoc-code .na { color: #a6e22e } /* Name.Attribute */
116+
.pdoc-code .nb { color: #f8f8f2 } /* Name.Builtin */
117+
.pdoc-code .nc { color: #a6e22e } /* Name.Class */
118+
.pdoc-code .no { color: #66d9ef } /* Name.Constant */
119+
.pdoc-code .nd { color: #a6e22e } /* Name.Decorator */
120+
.pdoc-code .ni { color: #f8f8f2 } /* Name.Entity */
121+
.pdoc-code .ne { color: #a6e22e } /* Name.Exception */
122+
.pdoc-code .nf { color: #a6e22e } /* Name.Function */
123+
.pdoc-code .nl { color: #f8f8f2 } /* Name.Label */
124+
.pdoc-code .nn { color: #f8f8f2 } /* Name.Namespace */
125+
.pdoc-code .nx { color: #a6e22e } /* Name.Other */
126+
.pdoc-code .py { color: #f8f8f2 } /* Name.Property */
127+
.pdoc-code .nt { color: #f92672 } /* Name.Tag */
128+
.pdoc-code .nv { color: #f8f8f2 } /* Name.Variable */
129+
.pdoc-code .ow { color: #f92672 } /* Operator.Word */
130+
.pdoc-code .w { color: #f8f8f2 } /* Text.Whitespace */
131+
.pdoc-code .mb { color: #ae81ff } /* Literal.Number.Bin */
132+
.pdoc-code .mf { color: #ae81ff } /* Literal.Number.Float */
133+
.pdoc-code .mh { color: #ae81ff } /* Literal.Number.Hex */
134+
.pdoc-code .mi { color: #ae81ff } /* Literal.Number.Integer */
135+
.pdoc-code .mo { color: #ae81ff } /* Literal.Number.Oct */
136+
.pdoc-code .sa { color: #e6db74 } /* Literal.String.Affix */
137+
.pdoc-code .sb { color: #e6db74 } /* Literal.String.Backtick */
138+
.pdoc-code .sc { color: #e6db74 } /* Literal.String.Char */
139+
.pdoc-code .dl { color: #e6db74 } /* Literal.String.Delimiter */
140+
.pdoc-code .sd { color: #e6db74 } /* Literal.String.Doc */
141+
.pdoc-code .s2 { color: #e6db74 } /* Literal.String.Double */
142+
.pdoc-code .se { color: #ae81ff } /* Literal.String.Escape */
143+
.pdoc-code .sh { color: #e6db74 } /* Literal.String.Heredoc */
144+
.pdoc-code .si { color: #e6db74 } /* Literal.String.Interpol */
145+
.pdoc-code .sx { color: #e6db74 } /* Literal.String.Other */
146+
.pdoc-code .sr { color: #e6db74 } /* Literal.String.Regex */
147+
.pdoc-code .s1 { color: #e6db74 } /* Literal.String.Single */
148+
.pdoc-code .ss { color: #e6db74 } /* Literal.String.Symbol */
149+
.pdoc-code .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
150+
.pdoc-code .fm { color: #a6e22e } /* Name.Function.Magic */
151+
.pdoc-code .vc { color: #f8f8f2 } /* Name.Variable.Class */
152+
.pdoc-code .vg { color: #f8f8f2 } /* Name.Variable.Global */
153+
.pdoc-code .vi { color: #f8f8f2 } /* Name.Variable.Instance */
154+
.pdoc-code .vm { color: #f8f8f2 } /* Name.Variable.Magic */
155+
}

docs/templates/theme.css

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* pdoc color scheme (see also: examples/dark-mode) */
2+
:root {
3+
--pdoc-background: #fff;
4+
}
5+
6+
.pdoc {
7+
--text: #212529;
8+
--muted: #6c757d;
9+
--link: #3660a5;
10+
--link-hover: #1659c5;
11+
--code: #f8f8f8;
12+
--active: #fff598;
13+
14+
--accent: #eee;
15+
--accent2: #c1c1c1;
16+
17+
--nav-hover: rgba(255, 255, 255, 0.5);
18+
--name: #0066BB;
19+
--def: #008800;
20+
--annotation: #007020;
21+
}
22+
23+
@media (prefers-color-scheme: dark) {
24+
:root {
25+
--pdoc-background: #212529;
26+
}
27+
28+
.pdoc {
29+
--text: #f7f7f7;
30+
--muted: #9d9d9d;
31+
--link: #58a6ff;
32+
--link-hover: #3989ff;
33+
--code: #333;
34+
--active: #555;
35+
36+
--accent: #343434;
37+
--accent2: #555;
38+
39+
--nav-hover: rgba(0, 0, 0, 0.1);
40+
--name: #77C1FF;
41+
--def: #0cdd0c;
42+
--annotation: #00c037;
43+
}
44+
}

0 commit comments

Comments
 (0)