Skip to content

Commit 8bde64e

Browse files
committed
Merge branch 'main' into wfformat_1.6
2 parents a8aa1f0 + f000f3d commit 8bde64e

18 files changed

Lines changed: 881 additions & 682 deletions

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ python3 -m pip install .
6161

6262
### Optional Requirements
6363

64+
Visualization support (workflow task graph drawings) is available as an extra:
65+
```
66+
python3 -m pip install wfcommons[viz]
67+
```
68+
6469
#### Graphviz
6570
WfCommons uses _pygraphviz_ for generating visualizations for the workflow task graph.
6671
If you want to enable this feature, you will have to install the

bin/wfbench

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
33
#
4-
# Copyright (c) 2021-2025 The WfCommons Team.
4+
# Copyright (c) 2021-2026 The WfCommons Team.
55
#
66
# This program is free software: you can redistribute it and/or modify
77
# it under the terms of the GNU General Public License as published by

docs/requirements.txt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
sphinx>=5.3.0
22
furo>=2024.5.6
3-
sphinx_rtd_theme>=1.2.0
4-
recommonmark>=0.7.1
5-
jsonschema~=3.2.0
3+
sphinx-design>=0.6.0
4+
sphinx-copybutton>=0.5.2
5+
jsonschema>=3.2.0
66
matplotlib>=3.3.0
77
networkx>=2.4
88
numpy>=1.19.1
@@ -12,5 +12,6 @@ scipy>=1.5.2
1212
setuptools>=49.3.1
1313
pyyaml>=5.3.1
1414
pandas>=1.2.4
15-
stringcase>=1.2.0
1615
filelock>=3.6.0
16+
shortuuid>=1.0.0
17+
tomli-w>=1.0.0

docs/source/_static/css/custom.css

Lines changed: 86 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -1,248 +1,146 @@
1-
:root {
2-
--content-max-width: 72rem;
3-
--sidebar-width: 18rem;
4-
--color-background-primary: #f7f6f2;
5-
--color-background-secondary: #f0efe9;
6-
--color-sidebar-background: #f0efe9;
7-
--color-background-hover: #e9ecf2;
8-
--color-background-border: #e1e4ee;
9-
--color-brand-primary: #1f5eff;
10-
--color-brand-content: #1a55e6;
11-
--color-foreground-primary: #16181d;
12-
--color-foreground-secondary: #4b5563;
13-
--accent-warm: #ff7a59;
14-
--accent-mint: #22c997;
15-
--accent-sky: #4cc9f0;
16-
--accent-violet: #9b5de5;
1+
/*
2+
* WfCommons documentation — light-only design.
3+
*
4+
* The furo color palettes are pinned to identical light values in conf.py
5+
* (light_css_variables == dark_css_variables), so the page never renders
6+
* dark. This stylesheet enforces a light color scheme at the browser level,
7+
* hides the theme toggle, and applies layout/typography polish.
8+
*/
9+
10+
:root,
11+
html[data-theme="light"],
12+
html[data-theme="dark"],
13+
html[data-theme="auto"] {
1714
color-scheme: light;
1815
}
1916

20-
article h1 {
21-
letter-spacing: -0.01em;
22-
}
23-
24-
article h2 {
25-
letter-spacing: -0.005em;
17+
:root {
18+
--content-max-width: 54em;
19+
--sidebar-width: 17em;
2620
}
2721

22+
/* Furo hardcodes a white code foreground for dark mode; since the code
23+
* background is always light here, pin the foreground to dark as well. */
2824
body {
29-
background:
30-
radial-gradient(1200px 600px at 10% -10%, rgba(155, 93, 229, 0.12), transparent 60%),
31-
radial-gradient(900px 500px at 90% -15%, rgba(76, 201, 240, 0.15), transparent 55%),
32-
radial-gradient(700px 400px at 50% 110%, rgba(34, 201, 151, 0.12), transparent 60%),
33-
var(--color-background-primary);
34-
}
35-
36-
.sidebar-drawer,
37-
.sidebar-container,
38-
.toc-drawer,
39-
.page-sidebar,
40-
.sidebar-tree {
41-
background: var(--color-sidebar-background);
42-
}
43-
44-
.content {
45-
background: transparent;
46-
}
47-
48-
/* Ensure any theme variant still uses the light palette. */
49-
html[data-theme="dark"],
50-
html[data-theme="auto"],
51-
body[data-theme="dark"],
52-
body[data-theme="auto"] {
53-
color-scheme: light;
25+
--color-code-foreground: black !important;
5426
}
5527

56-
html[data-theme="dark"],
57-
html[data-theme="auto"],
58-
body[data-theme="dark"],
59-
body[data-theme="auto"] {
60-
--color-background-primary: #f7f6f2;
61-
--color-background-secondary: #f0efe9;
62-
--color-sidebar-background: #f0efe9;
63-
--color-background-hover: #e9ecf2;
64-
--color-background-border: #e1e4ee;
65-
--color-brand-primary: #1f5eff;
66-
--color-brand-content: #1a55e6;
67-
--color-foreground-primary: #16181d;
68-
--color-foreground-secondary: #4b5563;
69-
--accent-warm: #ff7a59;
70-
--accent-mint: #22c997;
71-
--accent-sky: #4cc9f0;
72-
--accent-violet: #9b5de5;
73-
}
74-
75-
body[data-theme="dark"],
76-
body[data-theme="auto"] {
77-
background:
78-
radial-gradient(1200px 600px at 10% -10%, rgba(155, 93, 229, 0.12), transparent 60%),
79-
radial-gradient(900px 500px at 90% -15%, rgba(76, 201, 240, 0.15), transparent 55%),
80-
radial-gradient(700px 400px at 50% 110%, rgba(34, 201, 151, 0.12), transparent 60%),
81-
var(--color-background-primary);
82-
}
83-
84-
body[data-theme="dark"] .sidebar-drawer,
85-
body[data-theme="auto"] .sidebar-drawer,
86-
body[data-theme="dark"] .sidebar-container,
87-
body[data-theme="auto"] .sidebar-container,
88-
body[data-theme="dark"] .toc-drawer,
89-
body[data-theme="auto"] .toc-drawer,
90-
body[data-theme="dark"] .page-sidebar,
91-
body[data-theme="auto"] .page-sidebar,
92-
body[data-theme="dark"] .sidebar-tree,
93-
body[data-theme="auto"] .sidebar-tree,
94-
body[data-theme="dark"] .mobile-header,
95-
body[data-theme="auto"] .mobile-header {
96-
background: var(--color-sidebar-background);
28+
/* Hide the light/dark toggle: the docs are light-only by design. */
29+
.theme-toggle,
30+
.theme-toggle-container {
31+
display: none !important;
9732
}
9833

9934
/* Never show dark-only elements. */
10035
.only-dark {
10136
display: none !important;
10237
}
10338

104-
article {
105-
background:
106-
linear-gradient(180deg, rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.92));
107-
border: 1px solid var(--color-background-border);
108-
border-radius: 20px;
109-
box-shadow: 0 24px 48px rgba(19, 25, 39, 0.08);
110-
padding: 2.25rem 2.5rem;
111-
}
39+
/* ---- Typography ---------------------------------------------------------- */
11240

11341
article h1 {
114-
color: #0f172a;
42+
font-weight: 700;
43+
letter-spacing: -0.01em;
11544
}
11645

11746
article h1::after {
11847
content: "";
11948
display: block;
120-
width: 72px;
121-
height: 6px;
122-
margin-top: 0.5rem;
49+
width: 64px;
50+
height: 4px;
51+
margin-top: 0.4rem;
12352
border-radius: 999px;
124-
background: linear-gradient(90deg, var(--accent-warm), var(--accent-sky), var(--accent-mint));
53+
background: var(--color-brand-primary);
12554
}
12655

12756
article h2 {
128-
color: #1e293b;
57+
font-weight: 650;
58+
letter-spacing: -0.005em;
59+
border-bottom: 1px solid var(--color-background-border);
60+
padding-bottom: 0.3rem;
12961
}
13062

131-
article h3 {
132-
color: #1f2937;
63+
/* The index logo uses :align: left; keep it in the flow instead of floating. */
64+
article .align-left {
65+
float: none !important;
13366
}
13467

135-
article a {
136-
color: var(--color-brand-primary);
137-
font-weight: 600;
138-
}
68+
/* ---- Code blocks and inline code ---------------------------------------- */
13969

140-
article a:hover {
141-
color: var(--accent-violet);
142-
}
143-
144-
code,
14570
pre {
146-
background: #eef2ff;
147-
border-color: #d8def2;
71+
border: 1px solid var(--color-background-border);
72+
border-radius: 8px;
14873
}
14974

150-
pre {
151-
box-shadow: inset 0 0 0 1px rgba(26, 85, 230, 0.08);
75+
code.literal {
76+
border: 1px solid var(--color-background-border);
77+
border-radius: 4px;
78+
padding: 0.1em 0.3em;
15279
}
15380

154-
.sidebar-tree .current > a {
155-
background: rgba(26, 85, 230, 0.08);
156-
border-radius: 8px;
157-
}
81+
/* ---- Tables -------------------------------------------------------------- */
15882

159-
.sidebar-tree a:hover {
160-
background: rgba(34, 201, 151, 0.12);
83+
article table.docutils {
84+
border: 1px solid var(--color-background-border);
16185
border-radius: 8px;
86+
border-collapse: separate;
87+
border-spacing: 0;
88+
overflow: hidden;
89+
width: 100%;
16290
}
16391

164-
.toc-drawer .toc-tree li > a,
165-
.toc-tree li > a {
166-
border-radius: 8px;
92+
article table.docutils th {
93+
background: var(--color-background-secondary);
94+
text-align: left;
16795
}
16896

169-
.toc-tree li > a:hover {
170-
background: rgba(76, 201, 240, 0.14);
97+
article table.docutils th,
98+
article table.docutils td {
99+
border: none;
100+
border-bottom: 1px solid var(--color-background-border);
101+
padding: 0.5em 0.75em;
171102
}
172103

173-
table {
174-
border-radius: 12px;
175-
overflow: hidden;
176-
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
104+
article table.docutils tr:last-child td {
105+
border-bottom: none;
177106
}
178107

179-
th {
180-
background: rgba(31, 94, 255, 0.08);
181-
}
108+
/* ---- Landing-page cards (sphinx-design) ---------------------------------- */
182109

183-
hr {
184-
border: none;
185-
height: 1px;
186-
background: linear-gradient(90deg, transparent, rgba(31, 94, 255, 0.3), transparent);
110+
.sd-card {
111+
border: 1px solid var(--color-background-border);
112+
border-radius: 10px;
113+
box-shadow: 0 1px 3px rgba(26, 34, 51, 0.06);
114+
transition: box-shadow 0.15s ease, transform 0.15s ease;
115+
height: 100%;
187116
}
188117

189-
/* Hide heading link glyphs while keeping the anchor element. */
190-
.headerlink {
191-
color: transparent !important;
192-
text-decoration: none !important;
193-
font-size: 0 !important;
194-
width: 0;
195-
margin-left: 0;
118+
.sd-card:hover {
119+
box-shadow: 0 4px 12px rgba(26, 34, 51, 0.12);
120+
transform: translateY(-2px);
196121
}
197122

198-
.headerlink::before {
199-
content: "";
123+
.sd-card .sd-card-title {
124+
color: var(--color-brand-primary);
125+
font-weight: 650;
200126
}
201127

202-
/* Force light palette even if the theme requests dark mode. */
203-
html[data-theme="dark"],
204-
html[data-theme="dark"] body,
205-
html[data-theme="auto"],
206-
html[data-theme="auto"] body {
207-
--color-background-primary: #f7f6f2;
208-
--color-background-secondary: #f0efe9;
209-
--color-sidebar-background: #f0efe9;
210-
--color-background-hover: #e9ecf2;
211-
--color-background-border: #e1e4ee;
212-
--color-brand-primary: #1f5eff;
213-
--color-brand-content: #1a55e6;
214-
--color-foreground-primary: #16181d;
215-
--color-foreground-secondary: #4b5563;
216-
--accent-warm: #ff7a59;
217-
--accent-mint: #22c997;
218-
--accent-sky: #4cc9f0;
219-
--accent-violet: #9b5de5;
220-
color-scheme: light;
221-
}
128+
/* ---- Sidebar and navigation ---------------------------------------------- */
222129

223-
html[data-theme="dark"] body,
224-
html[data-theme="auto"] body {
225-
background:
226-
radial-gradient(1200px 600px at 10% -10%, rgba(155, 93, 229, 0.12), transparent 60%),
227-
radial-gradient(900px 500px at 90% -15%, rgba(76, 201, 240, 0.15), transparent 55%),
228-
radial-gradient(700px 400px at 50% 110%, rgba(34, 201, 151, 0.12), transparent 60%),
229-
var(--color-background-primary);
130+
.sidebar-tree .current-page > .reference {
131+
font-weight: 650;
230132
}
231133

232-
/* Hide the theme toggle UI entirely. */
233-
.theme-toggle,
234-
.theme-toggle-container,
235-
.theme-toggle-container button {
236-
display: none !important;
134+
.sidebar-tree .reference:hover,
135+
.toc-tree .reference:hover {
136+
background: var(--color-background-hover);
137+
border-radius: 6px;
237138
}
238139

239-
/* Hide project title text in the sidebar, keep the logo visible. */
240-
.sidebar-brand-text,
241-
.sidebar-brand .brand-text,
242-
.sidebar-brand .title {
243-
display: none !important;
244-
}
140+
/* ---- Admonitions ---------------------------------------------------------- */
245141

246-
article .align-left {
247-
float: none !important
142+
.admonition {
143+
border-radius: 8px;
144+
box-shadow: none;
145+
border: 1px solid var(--color-background-border);
248146
}

0 commit comments

Comments
 (0)