Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/changelog/2025-11-job-list-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 18 additions & 9 deletions assets/workflows/diagrams/custom-display-names.d2
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,41 @@ vars: {
}
}

style.fill: "#fcf9fa"
style.fill: "#FCF9FA"
style.stroke: "#170206"
direction: down

title: {
label: custom-display-names
near: top-center
shape: text
style.font-size: 30
style.font-color: "black"
style.font-color: "#170206"
}
root-task: {
label: "Root(3)"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
leaf0: {
label: "Leaf Nr. 0"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
root-task -> leaf0
root-task -> leaf0: {style.stroke: "#170206"}
leaf1: {
label: "Leaf Nr. 1"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
root-task -> leaf1
root-task -> leaf1: {style.stroke: "#170206"}
leaf2: {
label: "Leaf Nr. 2"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
root-task -> leaf2
root-task -> leaf2: {style.stroke: "#170206"}
86 changes: 57 additions & 29 deletions assets/workflows/diagrams/download-dog-images-recursive.d2
Original file line number Diff line number Diff line change
Expand Up @@ -7,82 +7,110 @@ vars: {
}
}

style.fill: "#fcf9fa"
style.fill: "#FCF9FA"
direction: down

title: {
label: download-dog-images-recursive
near: top-center
shape: text
style.font-size: 30
style.font-color: "black"
style.font-color: "#170206"
}
01916ed6-dad9-69de-e2b9-498bfd4063ec: {
label: "DownloadRandomDogImages"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-8108-aaf6-9c3e36b2be71: {
label: "DownloadRandomDogImages"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-dad9-69de-e2b9-498bfd4063ec -> 01916ed6-ed2c-8108-aaf6-9c3e36b2be71
01916ed6-dad9-69de-e2b9-498bfd4063ec -> 01916ed6-ed2c-8108-aaf6-9c3e36b2be71: {style.stroke: "#170206"}
01916ed6-f486-0ecc-b38b-f6227ff00a64: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-0ecc-b38b-f6227ff00a64
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-0ecc-b38b-f6227ff00a64: {style.stroke: "#170206"}
01916ed6-f486-7440-7137-8eff4418bb33: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-7440-7137-8eff4418bb33
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-7440-7137-8eff4418bb33: {style.stroke: "#170206"}
01916ed6-f486-96f5-935e-60f53a9e236a: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-96f5-935e-60f53a9e236a
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-96f5-935e-60f53a9e236a: {style.stroke: "#170206"}
01916ed7-0baf-73da-1803-f84c268462bf: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed7-062b-8b76-089b-d6afefbeda9d -> 01916ed7-0baf-73da-1803-f84c268462bf
01916ed7-062b-8b76-089b-d6afefbeda9d -> 01916ed7-0baf-73da-1803-f84c268462bf: {style.stroke: "#170206"}
01916ed6-f486-b3b4-ba10-e866c110cd5f: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-b3b4-ba10-e866c110cd5f
01916ed6-ed2c-8108-aaf6-9c3e36b2be71 -> 01916ed6-f486-b3b4-ba10-e866c110cd5f: {style.stroke: "#170206"}
01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7: {
label: "DownloadRandomDogImages"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-dad9-69de-e2b9-498bfd4063ec -> 01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7
01916ed6-dad9-69de-e2b9-498bfd4063ec -> 01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7: {style.stroke: "#170206"}
01916ed7-062b-8b76-089b-d6afefbeda9d: {
label: "DownloadRandomDogImages"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7 -> 01916ed7-062b-8b76-089b-d6afefbeda9d
01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7 -> 01916ed7-062b-8b76-089b-d6afefbeda9d: {style.stroke: "#170206"}
01916ed7-0baf-8926-8a77-732688abe0cb: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed7-062b-8b76-089b-d6afefbeda9d -> 01916ed7-0baf-8926-8a77-732688abe0cb
01916ed7-062b-8b76-089b-d6afefbeda9d -> 01916ed7-0baf-8926-8a77-732688abe0cb: {style.stroke: "#170206"}
01916ed7-1b55-55e6-f4ab-d931df99d369: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed7-062b-fdb3-f762-8fef23e661ba -> 01916ed7-1b55-55e6-f4ab-d931df99d369
01916ed7-062b-fdb3-f762-8fef23e661ba -> 01916ed7-1b55-55e6-f4ab-d931df99d369: {style.stroke: "#170206"}
01916ed7-1b55-6209-99c0-8aef11bd35b6: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed7-062b-fdb3-f762-8fef23e661ba -> 01916ed7-1b55-6209-99c0-8aef11bd35b6
01916ed7-062b-fdb3-f762-8fef23e661ba -> 01916ed7-1b55-6209-99c0-8aef11bd35b6: {style.stroke: "#170206"}
01916ed7-1b55-742f-385b-7167502a2fe2: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed7-062b-fdb3-f762-8fef23e661ba -> 01916ed7-1b55-742f-385b-7167502a2fe2
01916ed7-062b-fdb3-f762-8fef23e661ba -> 01916ed7-1b55-742f-385b-7167502a2fe2: {style.stroke: "#170206"}
01916ed7-062b-fdb3-f762-8fef23e661ba: {
label: "DownloadRandomDogImages"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7 -> 01916ed7-062b-fdb3-f762-8fef23e661ba
01916ed6-ed2c-cd72-4f0b-ec87c45cb3f7 -> 01916ed7-062b-fdb3-f762-8fef23e661ba: {style.stroke: "#170206"}
38 changes: 25 additions & 13 deletions assets/workflows/diagrams/download-dog-images.d2
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,54 @@ vars: {
}
}

style.fill: "#fcf9fa"
style.fill: "#FCF9FA"
direction: down

title: {
label: download-random-dog-images
near: top-center
shape: text
style.font-size: 30
style.font-color: "black"
style.font-color: "#170206"
}
01916b1f-524b-7e2c-ef0e-ff006e44508c: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-7e2c-ef0e-ff006e44508c
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-7e2c-ef0e-ff006e44508c: {style.stroke: "#170206"}
01916b1f-524b-2e44-9bdf-b7d9c38d736c: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-2e44-9bdf-b7d9c38d736c
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-2e44-9bdf-b7d9c38d736c: {style.stroke: "#170206"}
01916b1f-4769-73e9-886e-ae0b1dd3ae3d: {
label: "DownloadRandomDogImages"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916b1f-524b-8be2-ee23-e0a93a4c2a3a: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-8be2-ee23-e0a93a4c2a3a
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-8be2-ee23-e0a93a4c2a3a: {style.stroke: "#170206"}
01916b1f-524b-b87f-9ee3-6d4676efee9d: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-b87f-9ee3-6d4676efee9d
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-b87f-9ee3-6d4676efee9d: {style.stroke: "#170206"}
01916b1f-524b-fc05-3d4b-cd41be7d2d20: {
label: "DownloadImage"
style.fill: HoneyDew
style.fill: "#F0FFF0"
style.stroke: "#3F4B40"
style.font-color: "#000000"
}
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-fc05-3d4b-cd41be7d2d20
01916b1f-4769-73e9-886e-ae0b1dd3ae3d -> 01916b1f-524b-fc05-3d4b-cd41be7d2d20: {style.stroke: "#170206"}
54 changes: 23 additions & 31 deletions assets/workflows/diagrams/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,39 +27,31 @@ def generate_light_and_dark_svgs(diagram_file: Path, output_dir: Path):
def to_dark(diagram: str) -> str:
"""Converts a diagram to dark mode by manipulating colors."""

# dark background color
diagram = diagram.replace('style.fill: "#fcf9fa"', 'style.fill: "#161416"')
# white title text color
diagram = diagram.replace('style.font-color: "black"', 'style.font-color: "white"')

# replace all fill colors depending on the state of the task:
lookup = {
"HoneyDew": ("#265429", "#C7E6C9"), # computed
"LavenderBlush": ("#A37200", "#FFE099"), # queued
"PaleTurquoise": ("#3E7079", "#AED0D5"), # running
"Salmon": ("#A31800", "#FF9785"), # failed
color_mapping = {
# general
"#000000": "#FFFFFF",
# main background color
"#FCF9FA": "#161416",
# title text, parent->child edge color
"#170206": "#F4F1F4",
# dependency edge color
"#9B1A47": "#F97F76",
# queued
"#FFF0F5": "#A37200",
"#504448": "#fcc76f",
# running
"#AFEEEE": "#3E7079",
"#0e5253": "#B1E5EF",
# computed
"#F0FFF0": "#265429",
"#3F4B40": "#B7EBB8",
# failed
"#FA8072": "#A31800",
"#4A1511": "#F78D79",
}

for task_color, replace_colors in lookup.items():
fill_color, stroke_color = replace_colors
diagram = diagram.replace(
f"style.fill: {task_color}",
f'style.fill: "{fill_color}"\n style.stroke: "{stroke_color}"\n style.font-color: "white"',
)

# replace dependency edges with another color
dependency_edges = re.findall(
r"(([0-9a-zA-Z-]+ <- [0-9a-zA-Z-]+): \{.*)\n", diagram
)
for edge, relation in dependency_edges:
diagram = diagram.replace(
edge, relation + ': {style: {stroke: "#F97F76"; stroke-dash: 3}}'
)

# make subtask edges white
subtask_edges = re.findall(r"([0-9a-zA-Z-]+ -> [0-9a-zA-Z-]+)\n", diagram)
for edge in subtask_edges:
diagram = diagram.replace(edge, edge + ": {style.stroke: white}")
for light_color, dark_color in color_mapping.items():
diagram = diagram.replace(light_color, dark_color)

return diagram

Expand Down
Loading