Documentation
¶
Overview ¶
Package render provides multiple output formats for system-spec graphs.
Index ¶
- type CytoscapeEdge
- type CytoscapeEdgeData
- type CytoscapeElements
- type CytoscapeNode
- type CytoscapeNodeData
- type CytoscapeOutput
- type CytoscapeRenderer
- type D2Renderer
- type DOTRenderer
- type Format
- type MermaidRenderer
- type Renderer
- type Renderers
- type SigmaEdge
- type SigmaNode
- type SigmaOutput
- type SigmaRenderer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CytoscapeEdge ¶
type CytoscapeEdge struct {
Data CytoscapeEdgeData `json:"data"`
}
CytoscapeEdge represents an edge in Cytoscape format.
type CytoscapeEdgeData ¶
type CytoscapeEdgeData struct {
ID string `json:"id"`
Source string `json:"source"`
Target string `json:"target"`
Label string `json:"label,omitempty"`
Kind string `json:"kind"`
Protocol string `json:"protocol,omitempty"`
Port int `json:"port,omitempty"`
}
CytoscapeEdgeData contains edge properties.
type CytoscapeElements ¶
type CytoscapeElements struct {
Nodes []CytoscapeNode `json:"nodes"`
Edges []CytoscapeEdge `json:"edges"`
}
CytoscapeElements contains nodes and edges.
type CytoscapeNode ¶
type CytoscapeNode struct {
Data CytoscapeNodeData `json:"data"`
}
CytoscapeNode represents a node in Cytoscape format.
type CytoscapeNodeData ¶
type CytoscapeNodeData struct {
ID string `json:"id"`
Label string `json:"label"`
Kind string `json:"kind"`
Group string `json:"group,omitempty"`
Provider string `json:"provider,omitempty"`
Image string `json:"image,omitempty"`
Repo string `json:"repo,omitempty"`
}
CytoscapeNodeData contains node properties.
type CytoscapeOutput ¶
type CytoscapeOutput struct {
Elements CytoscapeElements `json:"elements"`
}
CytoscapeOutput is the JSON structure for Cytoscape.js.
type CytoscapeRenderer ¶
type CytoscapeRenderer struct{}
CytoscapeRenderer renders graphs to Cytoscape.js JSON format. See: https://js.cytoscape.org/
func NewCytoscapeRenderer ¶
func NewCytoscapeRenderer() *CytoscapeRenderer
NewCytoscapeRenderer creates a CytoscapeRenderer.
func (*CytoscapeRenderer) Format ¶
func (r *CytoscapeRenderer) Format() Format
Format returns the output format.
type D2Renderer ¶
type D2Renderer struct {
// Direction of the diagram (right, down, left, up)
Direction string
}
D2Renderer renders graphs to D2 diagram language. See: https://d2lang.com/
func NewD2Renderer ¶
func NewD2Renderer() *D2Renderer
NewD2Renderer creates a D2Renderer with default settings.
type DOTRenderer ¶
type DOTRenderer struct {
// Rankdir: LR, TB, RL, BT
Rankdir string
}
DOTRenderer renders graphs to GraphViz DOT format. See: https://graphviz.org/
func NewDOTRenderer ¶
func NewDOTRenderer() *DOTRenderer
NewDOTRenderer creates a DOTRenderer with default settings.
func (*DOTRenderer) Format ¶
func (r *DOTRenderer) Format() Format
Format returns the output format.
type Format ¶
type Format string
Format identifies the output format.
func SupportedFormats ¶
func SupportedFormats() []Format
SupportedFormats returns all supported output formats.
type MermaidRenderer ¶
type MermaidRenderer struct {
// Direction: LR (left-right), TB (top-bottom), RL, BT
Direction string
}
MermaidRenderer renders graphs to Mermaid diagram syntax. See: https://mermaid.js.org/
func NewMermaidRenderer ¶
func NewMermaidRenderer() *MermaidRenderer
NewMermaidRenderer creates a MermaidRenderer with default settings.
func (*MermaidRenderer) Format ¶
func (r *MermaidRenderer) Format() Format
Format returns the output format.
type Renderer ¶
type Renderer interface {
// Format returns the output format identifier.
Format() Format
// Render converts the graph to the output format.
Render(g *graph.Graph) ([]byte, error)
}
Renderer converts a Graph to a specific output format.
type Renderers ¶
type Renderers struct {
D2 *D2Renderer
Mermaid *MermaidRenderer
Cytoscape *CytoscapeRenderer
Sigma *SigmaRenderer
DOT *DOTRenderer
}
Renderers provides access to all available renderers. This is a concrete struct, not a registry with interface{}.
func NewRenderers ¶
func NewRenderers() *Renderers
NewRenderers creates a Renderers instance with default settings.
type SigmaEdge ¶
type SigmaEdge struct {
ID string `json:"id"`
Source string `json:"source"`
Target string `json:"target"`
Label string `json:"label,omitempty"`
Size float64 `json:"size"`
Color string `json:"color"`
Kind string `json:"kind"`
Protocol string `json:"protocol,omitempty"`
Port int `json:"port,omitempty"`
}
SigmaEdge represents an edge in Sigma format.
type SigmaNode ¶
type SigmaNode struct {
ID string `json:"id"`
Label string `json:"label"`
X float64 `json:"x"`
Y float64 `json:"y"`
Size float64 `json:"size"`
Color string `json:"color"`
Kind string `json:"kind"`
Attributes map[string]string `json:"attributes,omitempty"`
}
SigmaNode represents a node in Sigma format.
type SigmaOutput ¶
SigmaOutput is the JSON structure for Sigma.js.
type SigmaRenderer ¶
type SigmaRenderer struct {
// Width of the layout canvas
Width float64
// Height of the layout canvas
Height float64
}
SigmaRenderer renders graphs to Sigma.js JSON format. Optimized for large graphs with force-directed layout hints. See: https://www.sigmajs.org/
func NewSigmaRenderer ¶
func NewSigmaRenderer() *SigmaRenderer
NewSigmaRenderer creates a SigmaRenderer with default settings.
func (*SigmaRenderer) Format ¶
func (r *SigmaRenderer) Format() Format
Format returns the output format.