diff --git a/topology/topology/renderers/elk/default.nix b/topology/topology/renderers/elk/default.nix index 4e1be48..8956f6a 100644 --- a/topology/topology/renderers/elk/default.nix +++ b/topology/topology/renderers/elk/default.nix @@ -253,6 +253,7 @@ in { "org.eclipse.elk.algorithm" = "layered"; "org.eclipse.elk.edgeRouting" = "ORTHOGONAL"; "org.eclipse.elk.direction" = "RIGHT"; + "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides" = true; "org.eclipse.elk.layered.crossingMinimization.strategy" = true; "org.eclipse.elk.layered.nodePlacement.strategy" = "NETWORK_SIMPLEX"; "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers" = 40; @@ -284,6 +285,16 @@ in { }; }; } + + # Add network overview + { + children.network-overview = { + svg = { + file = config.lib.renderers.svg.net.mkOverview; + scale = 0.8; + }; + }; + } ] ++ flatten (map netToElk (attrValues config.networks)) ++ flatten (map nodeToElk (attrValues config.nodes)) diff --git a/topology/topology/renderers/svg/default.nix b/topology/topology/renderers/svg/default.nix index 3ad788f..69d8b64 100644 --- a/topology/topology/renderers/svg/default.nix +++ b/topology/topology/renderers/svg/default.nix @@ -3,10 +3,8 @@ # - NAT indication # - embed font globally, try removing satori embed? # - network overview card (list all networks with name and cidr, legend style) -# - stable pseudorandom colors from palette with no-reuse until necessary # - network centric view as standalone # - split network layout or make rectpacking of childs -# - hardware info (image small top and image big bottom and full (no card), maybe just image and render position) # - more service info # - disks (from disko) + render # - impermanence render? @@ -110,36 +108,71 @@ ''; net = { + netStylePreview = net: twAttrs: let + secondaryColor = + if net.style.secondaryColor == null + then "#00000000" + else net.style.secondaryColor; + in + { + solid = ''
''; + dashed = ''''; + dotted = ''''; + } + .${net.style.pattern}; + mkCard = net: { width = 480; - html = let - netStylePreview = let - secondaryColor = - if net.style.secondaryColor == null - then "#00000000" - else net.style.secondaryColor; - in - { - solid = ''''; - dashed = ''''; - dotted = ''''; - } - .${net.style.pattern}; - in + html = mkCardContainer /* html */ ''