diff --git a/d2renderers/d2ascii/d2ascii.go b/d2renderers/d2ascii/d2ascii.go index 038b113fd..a1ba56e1f 100644 --- a/d2renderers/d2ascii/d2ascii.go +++ b/d2renderers/d2ascii/d2ascii.go @@ -79,6 +79,11 @@ func Render(diagram *d2target.Diagram, opts *RenderOpts) ([]byte, error) { } // Canvas handles the ASCII grid and drawing operations +type TextPosition struct { + x, y, w, h int + text string +} + type Canvas struct { grid [][]rune w, h int @@ -87,6 +92,9 @@ type Canvas struct { scaleX, scaleY float64 offsetX, offsetY int pad int + + // Track text positions + textPositions []TextPosition } func NewCanvas(w, h int) *Canvas { @@ -250,6 +258,9 @@ func (c *Canvas) drawLine(x1, y1, x2, y2 int) { } func (c *Canvas) drawCenteredText(x, y, w, h int, text string) { + // Record position first + c.textPositions = append(c.textPositions, TextPosition{x, y, w, h, text}) + lines := strings.Split(text, "\n") startY := y + (h-len(lines))/2 @@ -322,62 +333,84 @@ func (c *Canvas) TrimBytes() []byte { } // ReScale reduces the size of ASCII art using a pixel-like sampling technique -// BUG: somehow the text label disappear 😂 func (c *Canvas) ReScale(targetWidth, targetHeight int) { - // Calculate sampling box size - boxWidth := float64(c.w) / float64(targetWidth) - boxHeight := float64(c.h) / float64(targetHeight) + scaleX := float64(targetWidth) / float64(c.w) + scaleY := float64(targetHeight) / float64(c.h) // Create new grid newGrid := make([][]rune, targetHeight) for i := range newGrid { newGrid[i] = make([]rune, targetWidth) + for j := range newGrid[i] { + newGrid[i][j] = ' ' + } } - // Sample characters from original grid - for y := 0; y < targetHeight; y++ { - for x := 0; x < targetWidth; x++ { - // Calculate sampling box boundaries - startX := int(float64(x) * boxWidth) - endX := int(float64(x+1) * boxWidth) - startY := int(float64(y) * boxHeight) - endY := int(float64(y+1) * boxHeight) + // First scale the borders and lines (source -> target mapping) + for y := 0; y < c.h; y++ { + targetY := int(float64(y) * scaleY) + if targetY >= targetHeight { + continue + } - // Count character occurrences in the sampling box - charCount := make(map[rune]int) - for sy := startY; sy < endY && sy < c.h; sy++ { - for sx := startX; sx < endX && sx < c.w; sx++ { - ch := c.grid[sy][sx] - charCount[ch]++ - } + for x := 0; x < c.w; x++ { + targetX := int(float64(x) * scaleX) + if targetX >= targetWidth { + continue } - // Choose the most appropriate character - var maxCount int - var dominant rune = ' ' + ch := c.grid[y][x] + if ch == '+' || ch == '-' || ch == '|' || ch == '/' || ch == '\\' || ch == '.' { + newGrid[targetY][targetX] = ch + } + } + } - // Priority order for characters - priorities := []rune{'+', '|', '-', '/', '\\', '.', ' '} - for _, ch := range priorities { - if count := charCount[ch]; count > maxCount { - maxCount = count - dominant = ch - } + // Then redraw text at scaled positions + for _, pos := range c.textPositions { + // Get box dimensions in source coordinates first + srcBoxCenterY := pos.y + pos.h/2 + + // Split text into lines + lines := strings.Split(pos.text, "\n") + textHeight := len(lines) + + // Calculate text start Y in source coordinates + srcStartY := srcBoxCenterY - textHeight/2 + + // Scale to target coordinates + newX := int(float64(pos.x) * scaleX) + newY := int(float64(srcStartY) * scaleY) + newW := int(float64(pos.w) * scaleX) + + // Draw each line centered horizontally + for i, line := range lines { + targetY := newY + i + if targetY >= targetHeight { + break + } + if targetY < 0 { + continue } - // Special cases for line preservation - hasVertical := charCount['|'] > 0 || charCount['+'] > 0 - hasHorizontal := charCount['-'] > 0 || charCount['+'] > 0 + // Center text horizontally within the scaled box + startX := newX + (newW-len(line))/2 + for j, ch := range line { + targetX := startX + j + if targetX >= targetWidth { + break + } + if targetX < 0 { + continue + } - // Determine final character - if hasVertical && hasHorizontal { - newGrid[y][x] = '+' - } else if hasVertical { - newGrid[y][x] = '|' - } else if hasHorizontal { - newGrid[y][x] = '-' - } else { - newGrid[y][x] = dominant + // Only overwrite space or existing text + existing := newGrid[targetY][targetX] + if existing == ' ' || (existing != '+' && existing != '-' && + existing != '|' && existing != '/' && existing != '\\' && + existing != '.') { + newGrid[targetY][targetX] = ch + } } } } diff --git a/docs/examples/chess/dia.txt b/docs/examples/chess/dia.txt index e6dfb888a..ce91a3a42 100644 --- a/docs/examples/chess/dia.txt +++ b/docs/examples/chess/dia.txt @@ -1,27 +1,26 @@ - +-----------------+ + |-----------------| | | + | Hans Niemann | | | - | | - | | - +-----|------|----| - || || - | || - || || - | || || - || | | | - || | || | + / | + /////+-----|------|----// + ///// || | //// + //// || | /// + ///// || | //// + ||// | | /| + ||| || | || + || | || | | | | | - | || | || + | | | || | | | | - | || || | + | | | || | || | | -+-|---------------------+|+--------------------+| | -| ||| || | -| +--------------|+--+ || | -| | | || | -| | | || | +|-|---------------------||---------------------|| | +| ||| || | +| |--------------|---| || | | | | || | | | | || | +| | Magnus Carlsen | || | | | | || | | +---------|--------+ || | | | || | @@ -33,9 +32,10 @@ | | || | | | || | | | || | -| +----------|----------+ || | -| | | || | +| | || | +| |----------|----------| || | | | | || | +| | Play Magnus Group | || | | | | || | | | | || | | +----------|----------+ || | @@ -43,32 +43,32 @@ | | || | | | || | | | || | -| || || | -| | || | | -| || | | -| || | | -| || | | -| +--+|---------- | | -| | | | | -| | | | | +| || defendants ||| | +| || /|| | | +| || /// | | +| || /// | | +| || /// | | +| |---|----------|/ | | | | | | | | | | | | +| | Chess.com | | | | | | | | | +-------|------+ | | | | | | | | | | +| | | | | | | || -| | | || -| | | || -| || | -| || | -| || | -| +------+|------------+ | -| | | | -| | | | +| || | || +| | | /|| +| | | //// +| | | //// +| | |/// +| |-------|------------|///| | | | | | | | | +| | Hikaru Nakamura | | | | | | | +--------------------+ | | | +| | +----------------------------------------------+ diff --git a/docs/examples/flipt/output.txt b/docs/examples/flipt/output.txt index d8f49498d..6cacc11d9 100644 --- a/docs/examples/flipt/output.txt +++ b/docs/examples/flipt/output.txt @@ -1,60 +1,60 @@ - +------------------------------+ - | | - | | - | +--------------------------+ | - | | | | - | | | | - | | | | - | | | | - | | | | - | | | | - | | | | - | | +--+ +--+ +--+ +--+ | | - | | | | | | | | | | | | - | | | | | | | | | | | | +-----------------+ - | | | | | | | | | | | | | | - | | | | | | | | | | | | | | - | | +--+ +--+ +--+ +--+ | | | +---+ | - | | | | | | | | - | | | | | | | | -+-----------------------------------+ | | | | | | | | -| | | | | | | | | | -| | | | +--+ +--+ +--+ +--+ | | | /---+ | | -| | | | | | | | | | | | | | | | | | | -| +-----+ | | | | | | | | | | | | | | | | | | -| | | | | | | | | | | | | | | | | | | | | -| | | | | | | | | | | | | | | | | | +---+ | -| | | | | | +--+ +--+ +--+ +--+ | | | +--+ | -| ---- ---/ | | | | | | | | | -| / | | | | | | | | | | | | -| || | | | +-----+ | | | +-+---------+-+ | | -| | | | ||| | | | | | | | | | | -| +-----| +-----+ || | | | | | | | | | | -| | | | | | | | +--+ +--+ +--+ +--+ | | | +--| | -| | | | | | | | | | | | | | | | | | | || +---+ | -| | | | | | | | | | | | | | | | | | | | | | | -| | | | +-+---------+-+ | | | | | | | | | | | || | | | -| | | | | | | | | | | | | | | | | | | | | | | -| | | | | | | | +--+ +--+ +--+ +--+ | | | / | | | -| | | | | | | | | | | ---+ | | -| +-----+ +-----+ | | | | | | | | | | | -| || | | || | | | | | | | | | | -| || | | ||+-----+ | | | | | | | | | -| | | | || | | | +--+ +--+ +--+ +--+ | | | +---+ | -| /---+ +--/ | | | | | | | | | | | | | | | -| | | | | | | | | | | | | | | | | | -| | | | | | | | | | | | | | | | | | -| | | | | | | | | | | | | | | | +-----------------+ -| +-----+ | | | +--+ +--+ +--+ +--+ | | -| | | | | | -| | | | | | -| | | | | | -+-----------------------------------+ | | | | - | | | | - | | | | - | | | | - | +--------------------------+ | - | | - | | - | | - +------------------------------+ + +-------------------------------+ + | | + | | + | | + | |--------------------------| | + | | | | + | | | | + | | | | + | | | | + | | | | + | | | | + | | | | + | | |--| |--| |--| |--| | | + | | | | | | | | | | | | +-----------------+ + | | | | | | | | | | | | | | + | | | | | | | | | | | | | | + | | | | | | | | | | | | | | + | | ---+ +--+ ---+ +--+ | | | |----|| + | | | | | | || ++------------------------------------+ | | | | | | || +| | | | | | | | || +| | | | | | | --- || +| | | | |--| |--| |--| |--| | | | // | || +| +-----+ | | | | | | | | | | | | | | || | || +| | | | | | | | | | | | | | | | | | | || +| | | | | | | | | | | | | | | | | || +----+| +| | | | | | | | | | | | | | | | | | | +| | | | | | ---+ +--+ ---+ +--+ | | | --+| | +| /--|linke|--// | | | | | | | | | +| |/ | | | +------+ | | | | | | | | | +| | | | || | | | | Test |-|--------|--| |Release | +| | | | || | | | | | | | | | | +| |-----| +-----+ | | | | | ---+ +--+ ---+ +--+ | | | --| | +| | | | | | | | | | | | | | | | | | | | | +| | | | | | | | | | | | | | | | | | | | |----|| +| | | | | | | | | | | | | | | | | | | | | || +| |sourc| Build | |-|--------|--| | | | | | | | | | | | | | || +| | | | | | | | ---+ +--+ ---+ +--+ | | | / | || +| | | | | | | | | | | /--- || +| | | +-----+ | | | | | | | | | || +| +-----+| | | | | | | | | | | | || +| || | | || | | | | | | | | || +| | | | ||+------+ | | | ---+ +--+ ---+ +--+ | | | +----+| +| // |asset| /| | | | | | | | | | | | | | | | +| --| |--/ | | | | | | | | | | | | | | | +| | | | | | | | | | | | | | | | | | +| | | | | | | | | | | | | | | | +-----------------+ +| +-----+ | | | ---+ +--+ ---+ +--+ | | +| | | | | | +| | | | | | +| | | | | | +| | | | | | ++------------------------------------+ | | | | + | | | | + | | | | + | ---------------------------+ | + | | + | | + | | + +-------------------------------+ diff --git a/docs/examples/japan-grid/japan.txt b/docs/examples/japan-grid/japan.txt index 89297af0c..577bf3082 100644 --- a/docs/examples/japan-grid/japan.txt +++ b/docs/examples/japan-grid/japan.txt @@ -1,78 +1,78 @@ -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -| || | | || | | | | || | | | -+-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+ +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | |北 海 道 | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | |青 森 | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | |秋 田 | 岩 手 | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | 川 | |新 潟 |山 形 | 宮 城 | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | 井 | 山 |群 馬 |栃 木 | 福 島 | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | |山 口 |島 根 ||鳥 取 |兵 庫 || 京 都 | 賀 | 野 |山 梨 |埼 玉 | 茨 城 | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | |広 島 ||岡 山 |大 阪 || 奈 良 | 阜 | 知 |静 岡 |TOKYO | 千 葉 | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| 崎 | 佐 賀 |福 岡 | || | ||和 歌 山 | 重 | | | 奈 川 | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | 熊 本 |大 分 | ||愛 媛 |香 川 || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| |鹿 児 島 |宮 崎 | ||高 知 |徳 島 || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +| 縄 | | | || | || | | | | | | +| | | | || | || | | | | | | +| | | | || | || | | | | | | +--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ diff --git a/docs/examples/twitter/out.txt b/docs/examples/twitter/out.txt index 58b55a5a7..82657d4ab 100644 --- a/docs/examples/twitter/out.txt +++ b/docs/examples/twitter/out.txt @@ -1,83 +1,83 @@ - +----+ +-----+ +-----+ - | | | | | | - | | | | | | - | | | | | | - | | | | | | - +----+ +-----+ +-----+ - | | | - || | | - ||| | ||| - |||+--+--+||| - || || - | | - | | - | | - +-----+ - - || || - || | - || || - || | - +------+--------------------------------------------+---+ - | | +--+--+| - | +----+----+ +----------------------+ | || - | | - | | | | || - | +----+----+ +----------------------+ | || - | | | || - | | +-----+| - +------++-----------------------------------------------+ | - || | | - || | || - || || - | - | +----------------------------------------------------++ - | | +------------+ | - | | | | | - | | | | | - +--+--+ | | | | - | | | + - -- | | - +--++++ | | | | - || |||||| | | | | - || | || || | | | | - | || | || ||| | +------------+ | - || || || | | || || +-+----+----+---------+-------+---------------+-------+ - || || | | | || || | | | | | | - | | | | | | || | | | | | | - || || || | | || || | || | | | | - | | | | || || ||| | | | | - | | | | || ||| ||| || | | | +-----+ -+--+--+ +-+--+ +--+--+ +--+-+ +--+---+ ++----+ +----+ +--+-+ +-----+ +------+ | | -| | | | | | | | | | | | | | | | | | | | | | -+-----+ +----+ +-----+ +----+ +------+ +--+--+ | | +----+ | | | | | | - || +----+ +-----+ + -----+ +--+--+ - | | - | | - | | - || | - | | | - | +--+----------------------------------------+ | - +--+--+ | ++--+ +----+ +---+ +---+ +-----+| +-----+ - | | | | | | | | | | | | || | | - | | | | | | | | | | | | || | | - +++++++ | +---+ +----+ +---+ +---+ +-----+| ++---++ - || || || +-------------------------------------------+ | | - | || || || | | | - | | || | | - | | || | | - | | | | | - | ||| || | | - +--+--+ || | || | - | | +---||+-----++ +--+-+ +-----+ - | | | | | | | | | | - | | | | | | | | | | - | | +---+ +------+ +----+ | | - +-----+ +--+--+ - | - | - | - +--+--+ - | | - | | - | | - | | - +-----+ + |-----| |-----| |-----| + | | | | | | + | | | | | | + |ndroi| |phone| | Web | + | | | | | | + +-----+ ------+ +-----+ + | | | + || | || + ||| | ||| + ||||-----||| + || | + | | + Tw////| Fron/end + ////// | |/// + //////// ------+ /// + ////// /// + || | + || || + || | + --------------------------------------------------------+ + | | | | + | | |-----|| + ||----------| |---------------------| | || + TLS-AP||(-eing/dep|ec|ted)/ hydration, visi|ility filt//ingQL|| + |+-----|----+ ----------------------+ F////////|Strat||/olumn + | | /////// | ||//// + | | //////// ------+| //// + -------||---------------//------------------------------+ | + || |/ || + ||| ///// || + ///////// | + /////// ///////// | + |///// |--------------/------------------------------------|| + | | |------------| | + | | | | | + | | | | | + |-----| | ## *|Timeline mix|r** | + H/|e mix|r | - Inject ads,|wh--t--follo|, onboard|ng + //////|-||||// | - Co|versation mo|ule | + ////////|| | |||/// | - Cur|oring,pagina|ion | + ////////// ||| | || ||/// | - Tw-------------+ion | + ///// /// || || || || /// | - Served data logging | + ||| | | | | || || -|-----|----|---------|-------|--------------|-------+ + || | | | | | || | | | | | | + || || || | | || || | || | | | | + || || | | || || |/ /| || || | | | + | | | | || || //// || || | | | + | | | | || ///| /|/|-----+ | +-----+ -------+ |----| + |----| |-----| |----| |-----| |------| |-----| /| | |----| | | | | | | +Tw|ety |ie|ial g|ap|modu|kM|nhatt|nl|ne Ser|ic| Rank|ri|elin| A| mix|On|oardi|g Peopl| disco|e/|/tch| + -----+ +-----+ -----+ +-----+ -------+ --|---+//|//er| +----+ |ervic| |e/////|/ | | + | --/////// +-----+ ////////-----+ ---||+ + | ///// /////// | + | ///////// //// | + | ///////// /// | + /////|//// /// | + |//// | //// | + | |--|-----------////-------------------------| ------+ + |-----| ||----| ////// |---| |--| |--| |-----| | | | + Hom| Scor|r ||rMix|/// Ea|lyB|rd|ta| S|ac|Co|munit|e| F|ature| + | | || | | | | | | | | | | /|/ | + ||||||+ |+----+ ----+ +--+ ---+ +-----+ | /////-|--|-+ + || || || --------------------------------------------+ //////// || | + /// |// //// || || | || + /// /// /// || | || | + |/// //// //// || || | | + | /// /// //// || || | | + | //////////////////////// ||| || | | + |----| ///////////////////////// || || || | + | | ///////////////////---|/|///---| |----| |-----| + Predic|ion |ervice ///////|.//|/| ////|//|hatt|n | | + | | | |M|mcache| | | S|oring| + | | ----+ -------+ -----+ ------+ + -----+ | + | + | + | + |-----| + | | + Predic|ion S|rvice + | | + | | + ------+ diff --git a/docs/examples/vector-grid/vector-grid.txt b/docs/examples/vector-grid/vector-grid.txt index c155d0829..3368c7823 100644 --- a/docs/examples/vector-grid/vector-grid.txt +++ b/docs/examples/vector-grid/vector-grid.txt @@ -1,76 +1,76 @@ -+--------------------------------------------------------------------------------------------------------------+ -| | -| | -| | -| +------------------------------------------------+ +------------+ | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| | | | | | -| +------------------------------------------------+ +-----+------+ | -| | | -| | | -| | | -+-----------------------------------------------------------+--------------------------------------------------+ - | - | -+-----------------------------------------------------------+--------------------------------------------------+ -| | | -| | | -| | | -| +-----------------------------+ +---------+ +------------+---------+ +---+ +-----------------------------+ | -| | | | | | | | | | | | | -| | | | | | || | | | | | | -| | | | | | | | | | | | | -| | | | +----+ | | | | | | | | | -| | | | | | | | | | | | | | -| | | | | | | | | | | | | | -| | +--+--+----+-+---+---+--+ | | | | | | +----+---+---++---+ | | | | +--+--++---+-+----+--+--+ | | -| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | +----+ +---+ | | | | | | | | | | | || | | | | | | | |+---+ +----+ | | | | -| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | +----+ | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | +--+--+----+-+---+---+--+ | | | | +----+---+---++---+ | | | | +--+--++---+-+----+--+--+ | | -| | | | +---+ | | | | | || | | | | | | | -| | | | | | | | | | | || | | | | | | | -| | | | | + | | | | | | || | | | | | | | -| | | | | + | | | | | | || | | | | | | | -| | +--+--+----+-+---+---+--+ | | | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | | -| | | | | | | | | | | | +---+ | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | +----+---+---++---+ | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | || | +-+---+-+ | | || | | | | | | | -| | | | +----+ +---+ | | | | | | | | | || | | | | | | | |+---+ +----+ | | | | -| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | +--+--+----+-+---+---+--+ | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | | -| | | | | | | | | || | | | | | | | -| | | | | | +----+---+---++---+ | | | | | | -| | | | | | | | | || | | | | | | | -| | | | | | | | | || | | | | | | | -| | +--+--+----+-+---+---+--+ | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | | -| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | | -| | | | +----+ +---+ | | | | | | | | | || | | | | | | | |+---+ +----+ | | | | -| | | | | | | | | | | | | | +----+---+---++---+ | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | | | | || | | | | | | | -| | | | | | | | | | | | | | | | | | | | || | | | | | | | -| | +--+--+----+-+---+---+--+ | | | | | | | | +--+--++---+-+----+--+--+ | | -| | | | | | | | | | | | -| | | | | | | | | | | | -| | | | | | | | | | | | -| +-----------------------------+ +---------+ +----------------------+ +---+ +-----------------------------+ | -| | -| | -| | -+--------------------------------------------------------------------------------------------------------------+ +|-------------------------------------------------------------------------------------------------------------| +| | +| | +| | +| |------------------------------------------------| |------------| | +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| | Ran|o| Matrix Gene|ator | +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| -------------------------------------------------+ -------------+ | +| | | +| | | +| | | +| | | +------------------------------------------------------------|-------------------------------------------------+ + | +--------------------------------------------------------------------------------------------------------------+ +| || | +| | | +| | | +| | | +| |-----------------------------| |---------||------------|----------||----| |-----------------------------| | +| | | | || | || | | | | +| | | | || | || | | | | +| | | | || | || | | | | +| | | | |----| || | || | | | | +| | | | | | || || | | | | +| | +--+-------+-+-------+---+ | | | | || ----+--------+----+ || | | +------+----------+------+ | | +| | | | | | || | || | | | | | || | || | | | || | | | | | | | || | | | | +| | | | | | || | || | | | | | || | || | | | || | | | | | | | || | | | | +| | | | | | || | || | | | | | || | || | | | || | | | | | | | || | | | | +| | |..|..5|---|n||---|9.||.8| | | | | || |..1||.32|..2|0.13| || | | |..0|.5|----| |---||.0|.8| | | +| | | | | | || | || | | | -----+ || | || | | | || | | | | | | | || | | | | +| | | | | | || | || | | | || | || | | | || | | | | | | | || | | | | +| | | | | | || | || | | | || | || | | | || | | | | | | | || | | | | +| | +--+-------+-+-------+---+ | | ---+ || |---||---|---|----| || | | +------+----------+------+ | | +| | | | | | || | || | | | || | | | | +| | | | | | || | || | | | || | | | | +| | |D|t ||||uct|| |..4||.15|..3|0.21| || | | | | +| | | | |++| || | || | | | || | | | | +| | |--|---|---|-||---|--||--| | | | | || | || | | | || | | |---|--|----|-|---||--|--| | | +| | | | | | || | || | | | ---+ || | || | | | || | | | | | | | || | | | | +| | | | | | || | || | | | ||ar|---||---|---|----|x --------- | | | | | || | | | | +| | | .| . ----- |----- .||. | | | || | || | | | || | | | . |. ------ ------. |. | | | +| | |.6|.15|siz|n||ec0|91||48| | | || | || | | | || | | |.60|15|size| |ect||90|48| | | +| | | | | | || | || | | | || | . ||. | . | . | || | | | | | | | || | | | | +| | | | | | || | || | | | || |.97||.45|.11|0.05| || | | | | | | | || | | | | +| | +--+-------+-+-------+---+ | | || | || | | | || | | +------+----------+------+ | | +| | | | || | || | | | || | | | | +| | | | || |---||---|---|----| || | | | | +| | | | || | || | | | || | | | | +| | | | || | || | | | || | | | | +| | |--|---|---|-||---|--||--| | | || | || | | | || | | |---|--|----|-|---||--|--| | | +| | | | | | || | || | | | || |..1||.77|..9|0.83| || | | | | | | | || | | | | +| | | | | | || | || | | | || | || | | | || | | | | | | | || | | | | +| | | | | | || | || | | | || | || | | | || | | | | | | | || | | | | +| | |..|..5|---|n||---|9.||.8| | | || ----+--------+----+ || | | |..0|.5|----| |---||.0|.8| | | +| | | | | | || | || | | | || || | | | | | | | || | | | | +| | | | | | || | || | | | || || | | | | | | | || | | | | +| | +--+-------+-+-------+---+ | | || || | | +------+----------+------+ | | +| | | | || || | | | | +| | | | || || | | | | +| | | | || || | | | | +| | | | || || | | | | +| ------------------------------+ ----------++-----------------------++----+ ------------------------------+ | +| | +| | +| | +--------------------------------------------------------------------------------------------------------------+ diff --git a/docs/flow.txt b/docs/flow.txt index 63e9b1283..d0d31b83b 100644 --- a/docs/flow.txt +++ b/docs/flow.txt @@ -1,6 +1,6 @@ - +------------+ - | | + |------------| | | + | inputFile | | | +------|-----+ | @@ -8,20 +8,20 @@ | | | + |------|-----| + | | + | d2parser | + | | +------|-----+ - | | - | | - | | - +------------+ | | | | | | - +----|----+ - | | + |----|----| | | + | d2ast | | | +----|----+ | @@ -29,20 +29,20 @@ | | | + |-------|------| + | | + | d2compiler | + | | +-------|------+ - | | - | | - | | - +-------+------+ | | | | | | - +-----|------+ - | | + |-----|------| | | + | d2graph | | | +-----|------+ | @@ -50,12 +50,11 @@ | | | +|-------------|-------------| +| | +| d2layouts/d2dagrelayout | +| | +-------------|-------------+ -| | -| | -| | -+-------------+-------------+ - | | | | @@ -63,7 +62,7 @@ | +-------|------+ | | - | | + | d2exporter | | | +-------|------+ | @@ -71,8 +70,9 @@ | | | - +-----|------+ - | | + | + |-----|------| | | + | d2target | | | +------------+