@shumoku/renderer 0.2.14 → 0.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Shumoku CLI - Render NetworkGraph JSON to SVG/HTML
3
+ * Shumoku CLI - Render NetworkGraph YAML/JSON to SVG/HTML
4
4
  */
5
- export {};
5
+ import '@shumoku/icons';
6
6
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AAGH,OAAO,gBAAgB,CAAA"}
package/dist/cli.js CHANGED
@@ -1,23 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Shumoku CLI - Render NetworkGraph JSON to SVG/HTML
3
+ * Shumoku CLI - Render NetworkGraph YAML/JSON to SVG/HTML
4
4
  */
5
+ // Import @shumoku/icons to auto-register vendor icons
6
+ import '@shumoku/icons';
5
7
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
6
- import { dirname, resolve } from 'node:path';
8
+ import { dirname, extname, resolve } from 'node:path';
7
9
  import { parseArgs } from 'node:util';
8
10
  import { buildHierarchicalSheets, HierarchicalLayout } from '@shumoku/core';
11
+ import { parser } from '@shumoku/parser-yaml';
9
12
  import pkg from '../package.json' with { type: 'json' };
10
13
  import * as html from './html/index.js';
11
14
  import { INTERACTIVE_IIFE } from './iife-string.js';
12
15
  import * as svg from './svg.js';
13
16
  const VERSION = pkg.version;
14
17
  const HELP = `
15
- shumoku v${VERSION} - Render NetworkGraph JSON to SVG/HTML
18
+ shumoku v${VERSION} - Render NetworkGraph YAML/JSON to SVG/HTML
16
19
 
17
- Usage: shumoku render [options] <input.json>
20
+ Usage: shumoku render [options] <input>
18
21
 
19
22
  Input:
20
- <input.json> NetworkGraph JSON file (use - for stdin)
23
+ <input> NetworkGraph YAML or JSON file (use - for stdin)
24
+ Format auto-detected from extension (.yaml, .yml, .json)
21
25
 
22
26
  Output:
23
27
  -f, --format <type> Output format: svg|html (default: auto from extension)
@@ -29,10 +33,10 @@ Other:
29
33
  -v, --version Show version
30
34
 
31
35
  Examples:
36
+ shumoku render network.yaml -o diagram.svg
37
+ shumoku render network.yaml -f html -o diagram.html
32
38
  shumoku render topology.json -o diagram.svg
33
- shumoku render topology.json -f html -o diagram.html
34
- cat topology.json | shumoku render - -o diagram.svg
35
- netbox-to-shumoku -f json -o netbox.json && shumoku render netbox.json -o netbox.svg
39
+ cat network.yaml | shumoku render - -o diagram.svg
36
40
  `;
37
41
  function cli() {
38
42
  const args = process.argv.slice(2);
@@ -62,32 +66,52 @@ function cli() {
62
66
  }
63
67
  return { values, inputFile: positionals[0] };
64
68
  }
69
+ function parseInput(content, filename) {
70
+ const ext = extname(filename).toLowerCase();
71
+ if (ext === '.json') {
72
+ return JSON.parse(content);
73
+ }
74
+ // Default to YAML (for .yaml, .yml, or stdin)
75
+ const result = parser.parse(content);
76
+ if (result.warnings && result.warnings.length > 0) {
77
+ for (const warning of result.warnings) {
78
+ if (warning.severity === 'error') {
79
+ throw new Error(`YAML parse error: ${warning.message}`);
80
+ }
81
+ console.warn(`Warning: ${warning.message}`);
82
+ }
83
+ }
84
+ return result.graph;
85
+ }
65
86
  async function main() {
66
87
  const { values, inputFile } = cli();
67
88
  if (!inputFile) {
68
89
  console.error('Error: Input file required.');
69
- console.error('Usage: shumoku render <input.json>');
90
+ console.error('Usage: shumoku render <input.yaml|json>');
70
91
  console.error('Use --help for more information.');
71
92
  process.exit(1);
72
93
  }
73
94
  try {
74
95
  // Read input
75
- let jsonContent;
96
+ let content;
97
+ let filename;
76
98
  if (inputFile === '-') {
77
- // Read from stdin
99
+ // Read from stdin (assume YAML)
78
100
  console.log('Reading from stdin...');
79
101
  const chunks = [];
80
102
  for await (const chunk of process.stdin) {
81
103
  chunks.push(chunk);
82
104
  }
83
- jsonContent = Buffer.concat(chunks).toString('utf-8');
105
+ content = Buffer.concat(chunks).toString('utf-8');
106
+ filename = 'stdin.yaml';
84
107
  }
85
108
  else {
86
109
  console.log(`Reading ${inputFile}...`);
87
- jsonContent = readFileSync(resolve(process.cwd(), inputFile), 'utf-8');
110
+ content = readFileSync(resolve(process.cwd(), inputFile), 'utf-8');
111
+ filename = inputFile;
88
112
  }
89
- // Parse JSON
90
- const graph = JSON.parse(jsonContent);
113
+ // Parse input
114
+ const graph = parseInput(content, filename);
91
115
  console.log(`Loaded graph: ${graph.nodes.length} nodes, ${graph.links.length} links`);
92
116
  if (graph.subgraphs) {
93
117
  console.log(` ${graph.subgraphs.length} subgraphs`);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/svg.d.ts CHANGED
@@ -49,8 +49,6 @@ export declare class SVGRenderer {
49
49
  private get dataAttrs();
50
50
  /** Get unique ID suffix for this sheet */
51
51
  private get idSuffix();
52
- /** Get shadow filter ID */
53
- private get shadowId();
54
52
  /** Get arrow marker ID */
55
53
  private get arrowId();
56
54
  /** Get red arrow marker ID */
@@ -137,6 +135,7 @@ export declare class SVGRenderer {
137
135
  private renderBandwidthLines;
138
136
  /**
139
137
  * Generate SVG path string from points with rounded corners
138
+ * For parallel lines, adjusts corner radius based on offset and turn direction
140
139
  */
141
140
  private generatePath;
142
141
  /**
@@ -145,9 +144,13 @@ export declare class SVGRenderer {
145
144
  private calculateLineOffsets;
146
145
  /**
147
146
  * Offset points perpendicular to line direction, handling each segment properly
148
- * For orthogonal paths, this maintains parallel lines through bends
147
+ * For orthogonal paths, calculates intersection point at bends for clean corners
149
148
  */
150
149
  private offsetPoints;
150
+ /**
151
+ * Calculate intersection point of two offset lines at a bend
152
+ */
153
+ private getOffsetIntersection;
151
154
  /**
152
155
  * Get perpendicular unit vector for a line segment
153
156
  */
package/dist/svg.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
package/dist/svg.js CHANGED
@@ -71,10 +71,6 @@ export class SVGRenderer {
71
71
  get idSuffix() {
72
72
  return this.options.sheetId ? `-${this.options.sheetId}` : '';
73
73
  }
74
- /** Get shadow filter ID */
75
- get shadowId() {
76
- return `shadow${this.idSuffix}`;
77
- }
78
74
  /** Get arrow marker ID */
79
75
  get arrowId() {
80
76
  return `arrow${this.idSuffix}`;
@@ -306,10 +302,6 @@ export class SVGRenderer {
306
302
  <polygon points="0 0, 10 3.5, 0 7" fill="#dc2626" />
307
303
  </marker>
308
304
 
309
- <!-- Filters -->
310
- <filter id="${this.shadowId}" x="-20%" y="-20%" width="140%" height="140%">
311
- <feDropShadow dx="2" dy="2" stdDeviation="3" flood-opacity="0.15"/>
312
- </filter>
313
305
  </defs>`;
314
306
  }
315
307
  renderStyles() {
@@ -615,22 +607,22 @@ ${fg}
615
607
  switch (shape) {
616
608
  case 'rect':
617
609
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}"
618
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
610
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
619
611
  case 'rounded':
620
612
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="8" ry="8"
621
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
613
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
622
614
  case 'circle': {
623
615
  const r = Math.min(halfW, halfH);
624
616
  return `<circle cx="${x}" cy="${y}" r="${r}"
625
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
617
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
626
618
  }
627
619
  case 'diamond':
628
620
  return `<polygon points="${x},${y - halfH} ${x + halfW},${y} ${x},${y + halfH} ${x - halfW},${y}"
629
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
621
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
630
622
  case 'hexagon': {
631
623
  const hx = halfW * 0.866;
632
624
  return `<polygon points="${x - halfW},${y} ${x - hx},${y - halfH} ${x + hx},${y - halfH} ${x + halfW},${y} ${x + hx},${y + halfH} ${x - hx},${y + halfH}"
633
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
625
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
634
626
  }
635
627
  case 'cylinder': {
636
628
  const ellipseH = h * 0.15;
@@ -639,20 +631,20 @@ ${fg}
639
631
  <rect x="${x - halfW}" y="${y - halfH + ellipseH}" width="${w}" height="${h - ellipseH * 2}" fill="${fill}" stroke="none" />
640
632
  <line x1="${x - halfW}" y1="${y - halfH + ellipseH}" x2="${x - halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
641
633
  <line x1="${x + halfW}" y1="${y - halfH + ellipseH}" x2="${x + halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
642
- <ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />
634
+ <ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />
643
635
  </g>`;
644
636
  }
645
637
  case 'stadium':
646
638
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="${halfH}" ry="${halfH}"
647
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
639
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
648
640
  case 'trapezoid': {
649
641
  const indent = w * 0.15;
650
642
  return `<polygon points="${x - halfW + indent},${y - halfH} ${x + halfW - indent},${y - halfH} ${x + halfW},${y + halfH} ${x - halfW},${y + halfH}"
651
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
643
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
652
644
  }
653
645
  default:
654
646
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="4" ry="4"
655
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`;
647
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
656
648
  }
657
649
  }
658
650
  /**
@@ -1027,7 +1019,8 @@ ${linePath}`;
1027
1019
  const offsets = this.calculateLineOffsets(lineCount, lineSpacing);
1028
1020
  for (const offset of offsets) {
1029
1021
  const offsetPoints = this.offsetPoints(points, offset);
1030
- const path = this.generatePath(offsetPoints);
1022
+ // Pass offset to generatePath for radius adjustment at bends
1023
+ const path = this.generatePath(offsetPoints, 8, points, offset);
1031
1024
  lines.push(`<path class="link" data-id="${id}" d="${path}"
1032
1025
  fill="none" stroke="${stroke}" stroke-width="${strokeWidth}"
1033
1026
  ${dasharray ? `stroke-dasharray="${dasharray}"` : ''} pointer-events="none" />`);
@@ -1044,8 +1037,9 @@ ${lines.join('\n')}
1044
1037
  }
1045
1038
  /**
1046
1039
  * Generate SVG path string from points with rounded corners
1040
+ * For parallel lines, adjusts corner radius based on offset and turn direction
1047
1041
  */
1048
- generatePath(points, cornerRadius = 8) {
1042
+ generatePath(points, cornerRadius = 8, originalPoints, offset) {
1049
1043
  if (points.length < 2)
1050
1044
  return '';
1051
1045
  if (points.length === 2) {
@@ -1059,9 +1053,27 @@ ${lines.join('\n')}
1059
1053
  // Calculate distances to prev and next points
1060
1054
  const distPrev = Math.hypot(curr.x - prev.x, curr.y - prev.y);
1061
1055
  const distNext = Math.hypot(next.x - curr.x, next.y - curr.y);
1056
+ // Adjust corner radius for parallel lines based on turn direction
1057
+ let adjustedRadius = cornerRadius;
1058
+ if (originalPoints && offset !== undefined && i < originalPoints.length - 1) {
1059
+ const origPrev = originalPoints[Math.min(i - 1, originalPoints.length - 1)];
1060
+ const origCurr = originalPoints[Math.min(i, originalPoints.length - 1)];
1061
+ const origNext = originalPoints[Math.min(i + 1, originalPoints.length - 1)];
1062
+ // Calculate turn direction using cross product
1063
+ const v1 = { x: origCurr.x - origPrev.x, y: origCurr.y - origPrev.y };
1064
+ const v2 = { x: origNext.x - origCurr.x, y: origNext.y - origCurr.y };
1065
+ const cross = v1.x * v2.y - v1.y * v2.x;
1066
+ // cross > 0: left turn, cross < 0: right turn
1067
+ // For left turn: positive offset = outside (larger R), negative offset = inside (smaller R)
1068
+ // For right turn: positive offset = inside (smaller R), negative offset = outside (larger R)
1069
+ if (Math.abs(cross) > 0.01) {
1070
+ const turnSign = cross > 0 ? 1 : -1;
1071
+ adjustedRadius = Math.max(1, cornerRadius - turnSign * offset);
1072
+ }
1073
+ }
1062
1074
  // Limit radius to half the shortest segment
1063
1075
  const maxRadius = Math.min(distPrev, distNext) / 2;
1064
- const radius = Math.min(cornerRadius, maxRadius);
1076
+ const radius = Math.min(adjustedRadius, maxRadius);
1065
1077
  if (radius < 1) {
1066
1078
  // Too small for rounding, just use straight line
1067
1079
  parts.push(`L ${curr.x} ${curr.y}`);
@@ -1096,7 +1108,7 @@ ${lines.join('\n')}
1096
1108
  }
1097
1109
  /**
1098
1110
  * Offset points perpendicular to line direction, handling each segment properly
1099
- * For orthogonal paths, this maintains parallel lines through bends
1111
+ * For orthogonal paths, calculates intersection point at bends for clean corners
1100
1112
  */
1101
1113
  offsetPoints(points, offset) {
1102
1114
  if (points.length < 2)
@@ -1117,21 +1129,59 @@ ${lines.join('\n')}
1117
1129
  result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset });
1118
1130
  }
1119
1131
  else {
1120
- // Middle point (bend): offset based on incoming segment direction
1132
+ // Middle point (bend): calculate intersection of offset lines
1121
1133
  const prev = points[i - 1];
1122
- const perp = this.getPerpendicular(prev, p);
1123
- result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset });
1124
- // Also add a point for the outgoing segment if direction changes
1125
1134
  const next = points[i + 1];
1135
+ const perpPrev = this.getPerpendicular(prev, p);
1126
1136
  const perpNext = this.getPerpendicular(p, next);
1127
1137
  // Check if direction changed (bend point)
1128
- if (Math.abs(perp.x - perpNext.x) > 0.01 || Math.abs(perp.y - perpNext.y) > 0.01) {
1129
- result.push({ x: p.x + perpNext.x * offset, y: p.y + perpNext.y * offset });
1138
+ const directionChanged = Math.abs(perpPrev.x - perpNext.x) > 0.01 || Math.abs(perpPrev.y - perpNext.y) > 0.01;
1139
+ if (directionChanged) {
1140
+ // Calculate intersection of the two offset lines
1141
+ const intersection = this.getOffsetIntersection(prev, p, next, offset);
1142
+ if (intersection) {
1143
+ result.push(intersection);
1144
+ }
1145
+ else {
1146
+ // Fallback: use simple offset
1147
+ result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset });
1148
+ }
1149
+ }
1150
+ else {
1151
+ // No bend, just offset the point
1152
+ result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset });
1130
1153
  }
1131
1154
  }
1132
1155
  }
1133
1156
  return result;
1134
1157
  }
1158
+ /**
1159
+ * Calculate intersection point of two offset lines at a bend
1160
+ */
1161
+ getOffsetIntersection(prev, curr, next, offset) {
1162
+ const perpPrev = this.getPerpendicular(prev, curr);
1163
+ const perpNext = this.getPerpendicular(curr, next);
1164
+ // Offset start point on incoming segment
1165
+ const p1 = { x: prev.x + perpPrev.x * offset, y: prev.y + perpPrev.y * offset };
1166
+ // Offset start point on outgoing segment
1167
+ const p3 = { x: curr.x + perpNext.x * offset, y: curr.y + perpNext.y * offset };
1168
+ // Direction vectors
1169
+ const d1 = { x: curr.x - prev.x, y: curr.y - prev.y };
1170
+ const d2 = { x: next.x - curr.x, y: next.y - curr.y };
1171
+ // Calculate intersection using parametric form
1172
+ const cross = d1.x * d2.y - d1.y * d2.x;
1173
+ if (Math.abs(cross) < 0.0001) {
1174
+ // Lines are parallel, no intersection
1175
+ return null;
1176
+ }
1177
+ const dx = p3.x - p1.x;
1178
+ const dy = p3.y - p1.y;
1179
+ const t = (dx * d2.y - dy * d2.x) / cross;
1180
+ return {
1181
+ x: p1.x + t * d1.x,
1182
+ y: p1.y + t * d1.y,
1183
+ };
1184
+ }
1135
1185
  /**
1136
1186
  * Get perpendicular unit vector for a line segment
1137
1187
  */
package/dist/svg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shumoku/renderer",
3
- "version": "0.2.14",
3
+ "version": "0.2.16",
4
4
  "description": "SVG and HTML renderers for Shumoku network diagrams",
5
5
  "license": "MIT",
6
6
  "author": "konoe-akitoshi",
@@ -56,7 +56,9 @@
56
56
  "test": "vitest run --passWithNoTests"
57
57
  },
58
58
  "dependencies": {
59
- "@shumoku/core": "^0.2.4"
59
+ "@shumoku/core": "^0.2.4",
60
+ "@shumoku/icons": "^0.2.4",
61
+ "@shumoku/parser-yaml": "^0.2.15"
60
62
  },
61
63
  "devDependencies": {
62
64
  "@types/node": "^20.11.0",
package/src/cli.ts CHANGED
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Shumoku CLI - Render NetworkGraph JSON to SVG/HTML
3
+ * Shumoku CLI - Render NetworkGraph YAML/JSON to SVG/HTML
4
4
  */
5
5
 
6
+ // Import @shumoku/icons to auto-register vendor icons
7
+ import '@shumoku/icons'
8
+
6
9
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'
7
- import { dirname, resolve } from 'node:path'
10
+ import { dirname, extname, resolve } from 'node:path'
8
11
  import { parseArgs } from 'node:util'
9
12
  import type { NetworkGraph } from '@shumoku/core'
10
13
  import { buildHierarchicalSheets, HierarchicalLayout } from '@shumoku/core'
14
+ import { parser } from '@shumoku/parser-yaml'
11
15
  import pkg from '../package.json' with { type: 'json' }
12
16
  import * as html from './html/index.js'
13
17
  import { INTERACTIVE_IIFE } from './iife-string.js'
@@ -16,12 +20,13 @@ import * as svg from './svg.js'
16
20
  const VERSION = pkg.version
17
21
 
18
22
  const HELP = `
19
- shumoku v${VERSION} - Render NetworkGraph JSON to SVG/HTML
23
+ shumoku v${VERSION} - Render NetworkGraph YAML/JSON to SVG/HTML
20
24
 
21
- Usage: shumoku render [options] <input.json>
25
+ Usage: shumoku render [options] <input>
22
26
 
23
27
  Input:
24
- <input.json> NetworkGraph JSON file (use - for stdin)
28
+ <input> NetworkGraph YAML or JSON file (use - for stdin)
29
+ Format auto-detected from extension (.yaml, .yml, .json)
25
30
 
26
31
  Output:
27
32
  -f, --format <type> Output format: svg|html (default: auto from extension)
@@ -33,10 +38,10 @@ Other:
33
38
  -v, --version Show version
34
39
 
35
40
  Examples:
41
+ shumoku render network.yaml -o diagram.svg
42
+ shumoku render network.yaml -f html -o diagram.html
36
43
  shumoku render topology.json -o diagram.svg
37
- shumoku render topology.json -f html -o diagram.html
38
- cat topology.json | shumoku render - -o diagram.svg
39
- netbox-to-shumoku -f json -o netbox.json && shumoku render netbox.json -o netbox.svg
44
+ cat network.yaml | shumoku render - -o diagram.svg
40
45
  `
41
46
 
42
47
  type OutputFormat = 'svg' | 'html'
@@ -75,34 +80,57 @@ function cli() {
75
80
  return { values, inputFile: positionals[0] }
76
81
  }
77
82
 
83
+ function parseInput(content: string, filename: string): NetworkGraph {
84
+ const ext = extname(filename).toLowerCase()
85
+
86
+ if (ext === '.json') {
87
+ return JSON.parse(content) as NetworkGraph
88
+ }
89
+
90
+ // Default to YAML (for .yaml, .yml, or stdin)
91
+ const result = parser.parse(content)
92
+ if (result.warnings && result.warnings.length > 0) {
93
+ for (const warning of result.warnings) {
94
+ if (warning.severity === 'error') {
95
+ throw new Error(`YAML parse error: ${warning.message}`)
96
+ }
97
+ console.warn(`Warning: ${warning.message}`)
98
+ }
99
+ }
100
+ return result.graph
101
+ }
102
+
78
103
  async function main(): Promise<void> {
79
104
  const { values, inputFile } = cli()
80
105
 
81
106
  if (!inputFile) {
82
107
  console.error('Error: Input file required.')
83
- console.error('Usage: shumoku render <input.json>')
108
+ console.error('Usage: shumoku render <input.yaml|json>')
84
109
  console.error('Use --help for more information.')
85
110
  process.exit(1)
86
111
  }
87
112
 
88
113
  try {
89
114
  // Read input
90
- let jsonContent: string
115
+ let content: string
116
+ let filename: string
91
117
  if (inputFile === '-') {
92
- // Read from stdin
118
+ // Read from stdin (assume YAML)
93
119
  console.log('Reading from stdin...')
94
120
  const chunks: Buffer[] = []
95
121
  for await (const chunk of process.stdin) {
96
122
  chunks.push(chunk)
97
123
  }
98
- jsonContent = Buffer.concat(chunks).toString('utf-8')
124
+ content = Buffer.concat(chunks).toString('utf-8')
125
+ filename = 'stdin.yaml'
99
126
  } else {
100
127
  console.log(`Reading ${inputFile}...`)
101
- jsonContent = readFileSync(resolve(process.cwd(), inputFile), 'utf-8')
128
+ content = readFileSync(resolve(process.cwd(), inputFile), 'utf-8')
129
+ filename = inputFile
102
130
  }
103
131
 
104
- // Parse JSON
105
- const graph: NetworkGraph = JSON.parse(jsonContent)
132
+ // Parse input
133
+ const graph = parseInput(content, filename)
106
134
  console.log(`Loaded graph: ${graph.nodes.length} nodes, ${graph.links.length} links`)
107
135
  if (graph.subgraphs) {
108
136
  console.log(` ${graph.subgraphs.length} subgraphs`)
package/src/svg.ts CHANGED
@@ -168,11 +168,6 @@ export class SVGRenderer {
168
168
  return this.options.sheetId ? `-${this.options.sheetId}` : ''
169
169
  }
170
170
 
171
- /** Get shadow filter ID */
172
- private get shadowId(): string {
173
- return `shadow${this.idSuffix}`
174
- }
175
-
176
171
  /** Get arrow marker ID */
177
172
  private get arrowId(): string {
178
173
  return `arrow${this.idSuffix}`
@@ -455,10 +450,6 @@ export class SVGRenderer {
455
450
  <polygon points="0 0, 10 3.5, 0 7" fill="#dc2626" />
456
451
  </marker>
457
452
 
458
- <!-- Filters -->
459
- <filter id="${this.shadowId}" x="-20%" y="-20%" width="140%" height="140%">
460
- <feDropShadow dx="2" dy="2" stdDeviation="3" flood-opacity="0.15"/>
461
- </filter>
462
453
  </defs>`
463
454
  }
464
455
 
@@ -838,26 +829,26 @@ ${fg}
838
829
  switch (shape) {
839
830
  case 'rect':
840
831
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}"
841
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
832
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
842
833
 
843
834
  case 'rounded':
844
835
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="8" ry="8"
845
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
836
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
846
837
 
847
838
  case 'circle': {
848
839
  const r = Math.min(halfW, halfH)
849
840
  return `<circle cx="${x}" cy="${y}" r="${r}"
850
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
841
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
851
842
  }
852
843
 
853
844
  case 'diamond':
854
845
  return `<polygon points="${x},${y - halfH} ${x + halfW},${y} ${x},${y + halfH} ${x - halfW},${y}"
855
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
846
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
856
847
 
857
848
  case 'hexagon': {
858
849
  const hx = halfW * 0.866
859
850
  return `<polygon points="${x - halfW},${y} ${x - hx},${y - halfH} ${x + hx},${y - halfH} ${x + halfW},${y} ${x + hx},${y + halfH} ${x - hx},${y + halfH}"
860
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
851
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
861
852
  }
862
853
 
863
854
  case 'cylinder': {
@@ -867,23 +858,23 @@ ${fg}
867
858
  <rect x="${x - halfW}" y="${y - halfH + ellipseH}" width="${w}" height="${h - ellipseH * 2}" fill="${fill}" stroke="none" />
868
859
  <line x1="${x - halfW}" y1="${y - halfH + ellipseH}" x2="${x - halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
869
860
  <line x1="${x + halfW}" y1="${y - halfH + ellipseH}" x2="${x + halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
870
- <ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />
861
+ <ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />
871
862
  </g>`
872
863
  }
873
864
 
874
865
  case 'stadium':
875
866
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="${halfH}" ry="${halfH}"
876
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
867
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
877
868
 
878
869
  case 'trapezoid': {
879
870
  const indent = w * 0.15
880
871
  return `<polygon points="${x - halfW + indent},${y - halfH} ${x + halfW - indent},${y - halfH} ${x + halfW},${y + halfH} ${x - halfW},${y + halfH}"
881
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
872
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
882
873
  }
883
874
 
884
875
  default:
885
876
  return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="4" ry="4"
886
- fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} filter="url(#${this.shadowId})" />`
877
+ fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
887
878
  }
888
879
  }
889
880
 
@@ -1348,7 +1339,8 @@ ${linePath}`
1348
1339
  const offsets = this.calculateLineOffsets(lineCount, lineSpacing)
1349
1340
  for (const offset of offsets) {
1350
1341
  const offsetPoints = this.offsetPoints(points, offset)
1351
- const path = this.generatePath(offsetPoints)
1342
+ // Pass offset to generatePath for radius adjustment at bends
1343
+ const path = this.generatePath(offsetPoints, 8, points, offset)
1352
1344
  lines.push(`<path class="link" data-id="${id}" d="${path}"
1353
1345
  fill="none" stroke="${stroke}" stroke-width="${strokeWidth}"
1354
1346
  ${dasharray ? `stroke-dasharray="${dasharray}"` : ''} pointer-events="none" />`)
@@ -1368,8 +1360,14 @@ ${lines.join('\n')}
1368
1360
 
1369
1361
  /**
1370
1362
  * Generate SVG path string from points with rounded corners
1363
+ * For parallel lines, adjusts corner radius based on offset and turn direction
1371
1364
  */
1372
- private generatePath(points: { x: number; y: number }[], cornerRadius = 8): string {
1365
+ private generatePath(
1366
+ points: { x: number; y: number }[],
1367
+ cornerRadius = 8,
1368
+ originalPoints?: { x: number; y: number }[],
1369
+ offset?: number,
1370
+ ): string {
1373
1371
  if (points.length < 2) return ''
1374
1372
  if (points.length === 2) {
1375
1373
  return `M ${points[0].x} ${points[0].y} L ${points[1].x} ${points[1].y}`
@@ -1386,9 +1384,30 @@ ${lines.join('\n')}
1386
1384
  const distPrev = Math.hypot(curr.x - prev.x, curr.y - prev.y)
1387
1385
  const distNext = Math.hypot(next.x - curr.x, next.y - curr.y)
1388
1386
 
1387
+ // Adjust corner radius for parallel lines based on turn direction
1388
+ let adjustedRadius = cornerRadius
1389
+ if (originalPoints && offset !== undefined && i < originalPoints.length - 1) {
1390
+ const origPrev = originalPoints[Math.min(i - 1, originalPoints.length - 1)]
1391
+ const origCurr = originalPoints[Math.min(i, originalPoints.length - 1)]
1392
+ const origNext = originalPoints[Math.min(i + 1, originalPoints.length - 1)]
1393
+
1394
+ // Calculate turn direction using cross product
1395
+ const v1 = { x: origCurr.x - origPrev.x, y: origCurr.y - origPrev.y }
1396
+ const v2 = { x: origNext.x - origCurr.x, y: origNext.y - origCurr.y }
1397
+ const cross = v1.x * v2.y - v1.y * v2.x
1398
+
1399
+ // cross > 0: left turn, cross < 0: right turn
1400
+ // For left turn: positive offset = outside (larger R), negative offset = inside (smaller R)
1401
+ // For right turn: positive offset = inside (smaller R), negative offset = outside (larger R)
1402
+ if (Math.abs(cross) > 0.01) {
1403
+ const turnSign = cross > 0 ? 1 : -1
1404
+ adjustedRadius = Math.max(1, cornerRadius - turnSign * offset)
1405
+ }
1406
+ }
1407
+
1389
1408
  // Limit radius to half the shortest segment
1390
1409
  const maxRadius = Math.min(distPrev, distNext) / 2
1391
- const radius = Math.min(cornerRadius, maxRadius)
1410
+ const radius = Math.min(adjustedRadius, maxRadius)
1392
1411
 
1393
1412
  if (radius < 1) {
1394
1413
  // Too small for rounding, just use straight line
@@ -1432,7 +1451,7 @@ ${lines.join('\n')}
1432
1451
 
1433
1452
  /**
1434
1453
  * Offset points perpendicular to line direction, handling each segment properly
1435
- * For orthogonal paths, this maintains parallel lines through bends
1454
+ * For orthogonal paths, calculates intersection point at bends for clean corners
1436
1455
  */
1437
1456
  private offsetPoints(
1438
1457
  points: { x: number; y: number }[],
@@ -1456,18 +1475,28 @@ ${lines.join('\n')}
1456
1475
  const perp = this.getPerpendicular(prev, p)
1457
1476
  result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset })
1458
1477
  } else {
1459
- // Middle point (bend): offset based on incoming segment direction
1478
+ // Middle point (bend): calculate intersection of offset lines
1460
1479
  const prev = points[i - 1]
1461
- const perp = this.getPerpendicular(prev, p)
1462
- result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset })
1463
-
1464
- // Also add a point for the outgoing segment if direction changes
1465
1480
  const next = points[i + 1]
1481
+ const perpPrev = this.getPerpendicular(prev, p)
1466
1482
  const perpNext = this.getPerpendicular(p, next)
1467
1483
 
1468
1484
  // Check if direction changed (bend point)
1469
- if (Math.abs(perp.x - perpNext.x) > 0.01 || Math.abs(perp.y - perpNext.y) > 0.01) {
1470
- result.push({ x: p.x + perpNext.x * offset, y: p.y + perpNext.y * offset })
1485
+ const directionChanged =
1486
+ Math.abs(perpPrev.x - perpNext.x) > 0.01 || Math.abs(perpPrev.y - perpNext.y) > 0.01
1487
+
1488
+ if (directionChanged) {
1489
+ // Calculate intersection of the two offset lines
1490
+ const intersection = this.getOffsetIntersection(prev, p, next, offset)
1491
+ if (intersection) {
1492
+ result.push(intersection)
1493
+ } else {
1494
+ // Fallback: use simple offset
1495
+ result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset })
1496
+ }
1497
+ } else {
1498
+ // No bend, just offset the point
1499
+ result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset })
1471
1500
  }
1472
1501
  }
1473
1502
  }
@@ -1475,6 +1504,44 @@ ${lines.join('\n')}
1475
1504
  return result
1476
1505
  }
1477
1506
 
1507
+ /**
1508
+ * Calculate intersection point of two offset lines at a bend
1509
+ */
1510
+ private getOffsetIntersection(
1511
+ prev: { x: number; y: number },
1512
+ curr: { x: number; y: number },
1513
+ next: { x: number; y: number },
1514
+ offset: number,
1515
+ ): { x: number; y: number } | null {
1516
+ const perpPrev = this.getPerpendicular(prev, curr)
1517
+ const perpNext = this.getPerpendicular(curr, next)
1518
+
1519
+ // Offset start point on incoming segment
1520
+ const p1 = { x: prev.x + perpPrev.x * offset, y: prev.y + perpPrev.y * offset }
1521
+ // Offset start point on outgoing segment
1522
+ const p3 = { x: curr.x + perpNext.x * offset, y: curr.y + perpNext.y * offset }
1523
+
1524
+ // Direction vectors
1525
+ const d1 = { x: curr.x - prev.x, y: curr.y - prev.y }
1526
+ const d2 = { x: next.x - curr.x, y: next.y - curr.y }
1527
+
1528
+ // Calculate intersection using parametric form
1529
+ const cross = d1.x * d2.y - d1.y * d2.x
1530
+ if (Math.abs(cross) < 0.0001) {
1531
+ // Lines are parallel, no intersection
1532
+ return null
1533
+ }
1534
+
1535
+ const dx = p3.x - p1.x
1536
+ const dy = p3.y - p1.y
1537
+ const t = (dx * d2.y - dy * d2.x) / cross
1538
+
1539
+ return {
1540
+ x: p1.x + t * d1.x,
1541
+ y: p1.y + t * d1.y,
1542
+ }
1543
+ }
1544
+
1478
1545
  /**
1479
1546
  * Get perpendicular unit vector for a line segment
1480
1547
  */