...

Package d2svg

import "oss.terrastruct.com/d2/d2renderers/d2svg"
Overview
Index
Subdirectories

Overview ▾

d2svg implements an SVG renderer for d2 diagrams. The input is d2exporter's output

Constants

const (
    DEFAULT_PADDING = 100
)

Variables

var BaseStylesheet string
var DEFAULT_DARK_THEME *int64 = nil // no theme selected
var LinkIcon string
var MarkdownCSS string
var TooltipIcon string

func EmbedFonts

func EmbedFonts(buf *bytes.Buffer, diagramHash, source string, fontFamily *d2fonts.FontFamily, corpus string)

func Render

func Render(diagram *d2target.Diagram, opts *RenderOpts) ([]byte, error)

func RenderMultiboard

func RenderMultiboard(diagram *d2target.Diagram, opts *RenderOpts) ([][]byte, error)

func RenderText

func RenderText(text string, x, height float64) string

func ThemeCSS

func ThemeCSS(diagramHash string, themeID *int64, darkThemeID *int64, overrides, darkOverrides *d2target.ThemeOverrides) (stylesheet string, err error)

TODO include only colors that are being used to reduce size

type DiagramObject

type DiagramObject interface {
    GetID() string
    GetZIndex() int
}

type RenderOpts

type RenderOpts struct {
    Pad                *int64
    Sketch             *bool
    Center             *bool
    ThemeID            *int64
    DarkThemeID        *int64
    ThemeOverrides     *d2target.ThemeOverrides
    DarkThemeOverrides *d2target.ThemeOverrides
    Font               string
    // the svg will be scaled by this factor, if unset the svg will fit to screen
    Scale *float64

    // MasterID is passed when the diagram should use something other than its own hash for unique targeting
    // Currently, that's when multi-boards are collapsed
    MasterID string
}

Subdirectories

Name Synopsis
..
appendix