All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fix shape.Container width, wrap to grouped objects
- Add C4 example
- Use gregoryv/web v0.25.0
- Enable scaling of diagrams and shapes, e.g. Diagram.SetScale(1.5)
- Shapes no longer implement fmt.Stringer
- Hide field Note.Text
- Hide field Label.Text
- Remove aliased types and defaults in package shape
- Hide field Diagram.Caption
- Add shape.Labeled to simplify labeling any shape
- Group.WriteSVG writes all grouped shapes
- Add draw.DefaultFontFamily used in default classes
- Add shape.Hidden for hiding shapes
- Add shape.Anchor for linking shapes
- Add shape.Group and shape.Container
- shape.Card default width is 310px
- shape.Card takes optional note and text
- Add package draw/goviz for generating frame sequence diagrams
- Update dependencies
- Improve default link label positions
- Add shap.Card
- Consider a slice struct field of any type to be an aggregate. Ie. before []*Something was considered an aggregate whereas []Something was not. Now both are considered aggregates.
- Hide X, Y fields of shapes, use SetX, SetY and Position
- Draw relations of embedded interface fields
- Add Diagram.Note helper method
- Label shape supports linebreaks
- Add shapes Process, Store
- NewStyle does not take writer, defaults to ioutil.Discard. Use Style.SetOutput
- Add SequenceDiagram.Return method for drawing dashed arrows
- Fix arrows in sequence diagram, bug introduced in v0.22.0
- Update dependencies
- Remove func draw.Inline(), moved to design as private
- Remove type Arrow, use Line
- Line and arrow Height and Width methods consider head and tail shapes
- Diamond.Position returns top left
- Triangle points upwards and Position returns top left
- Replace ActivityDiagram.If with Or when switching decision
- Replace ActivityDiagram.Then with Trans and add TransRight methods
- Activity diagram default spacing increased from 40 to 60
- Add Label.SetHref and Component.SetHref
- Rename type xy.Position to xy.Point
- Show relations between slices and structs in ClassDiagram
- Add SequenceDiagram.Skip method for adding a dashed spacing
- Replace draw.TagWriter with nexus.Printer
- Add labeled hexagon shape
- Fix label alignment
- Adjuster respects diagram style.Spacing
- NewDiagram returns a pointer to diagram
- Diagram variations embed reference to diagram
- Include slice methods in VRecord
- Remove double padding for record titles
- Improve label alignment in Diagram.Link method
- Fix Class diagram to show pointer receiver methods
- Add SequenceDiagram.Group method for grouping columns with a labeled text area
- Diagrams Stringer implementations no longer inline css, use Inline method
- Add VRecord.Slice method for slice composition and aggregates
- Fix missing relations in inlined class diagrams
- Diagrams implement stringer interface
- AdaptSize makes width and height +1 pixel
- Add Inline method to diagrams
- Add type ClassAttributes with CSS method for easy inlining in HTML
- Fix VRecord to show pointer methods if pointer to struct given
- Add shape.Internet
- Add default spacing to shape.Adjuster
- Move type shape.Style to package draw
- Rename NewSvg to NewSVG
- Moved draw/shape/design package to draw/design
- Renamed type Svg to SVG
- Renamed type SvgWriter to SVGWriter
- Renamed WriteSvg to WriteSVG
- Generic design.NewVRecord for both structs and interfaces
- Specific methods for creating struct and interface methods.
- Ganttchart weekly view
- Cylinder and database shapes
- Func shape.SetClass for setting class of many shapes
- Component and rect labels use class + "-title"
- ActivityDiagram helper methods, e.g Start, Then, If and Exit
- Mark current day by default in gantt chart
- Renamed Direction constants LR and RL to RightDir and LeftDir
- NewGanttChart constructor uses date.String
- Exposed TagWriter
- shape.Svg moved to draw.Svg
- Label positioned correctly in activity diagram for vertical arrows
- Aggregate relation when pointer to specific type is used
- Gantt chart
- Actor shape
- Label is optional when creating links with func Link
- Hide Height, Width attributes in Diagram
- shape.NewDot defaults to radius 10
- Namespace from gregoryv/go-design to gregoryv/draw. Fix your imports import "github.com/gregoryv/draw/shape/design"
- Activity diagram examples
- Labeled links in plain diagrams
- State shape
- PlaceGrid to quickly place many shapes into a grid layout
- Link method to generic diagram
- Rect, Dot, ExitDot and Component shapes
- Label and circle has an edge
- Circle shape is stroked by default
- Caption in sequence diagrams
- Default color of records is white with pale lines
- Arrows point to edge irrelevant of angle
- Diagrams have optional bottom centered caption
- Class diagram shows composition using diamond for tail
- Note shape with multiline support
- Font size decoupled from class attributes
- Arrow for realizing interface is dashed
- Label and circle position is top left corner
- Hide methods realized by visible interfaces and structs
- All shapes can have a class
- Arrows in class diagrams attach to edge and point to center
- RightOf and LeftOf adjustments sets matching y position
- Use class for non self arrows
- SvgWriterShape interface
- Sequence diagram
- Class diagram
- Record shape with fields and methods
- Arrow, line and label shapes