add AutoSize() too determine optimal width and height

This commit is contained in:
Fahmi Akbar Wildana 2025-02-23 07:00:40 +07:00
parent 24a413a737
commit d94491dc22
No known key found for this signature in database
GPG key ID: 7A0CD14F54006AAE
7 changed files with 669 additions and 457 deletions

View file

@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"math" "math"
"sort"
"strings" "strings"
"oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/d2target"
@ -63,14 +64,7 @@ func Render(diagram *d2target.Diagram, opts *RenderOpts) ([]byte, error) {
} }
} }
const ( // common terminal size width, height = canvas.AutoSize()
maxWidth = 120
maxHeight = 90
) // TODO: detect smallest shape then make it as a baseline
width = min(canvas.w, maxWidth)
height = min(canvas.h, maxHeight)
fmt.Println("==== ", canvas.w, canvas.h, "====") fmt.Println("==== ", canvas.w, canvas.h, "====")
fmt.Println("==== ", width, height, "====") fmt.Println("==== ", width, height, "====")
canvas.ReScale(width, height) canvas.ReScale(width, height)
@ -332,6 +326,130 @@ func (c *Canvas) TrimBytes() []byte {
return buf.Bytes() return buf.Bytes()
} }
func (c *Canvas) AutoSize() (width, height int) {
type boxInfo struct {
x, y, w, h int
text string
hasUp, hasDown bool
hasLeft, hasRight bool
}
boxes := make([]boxInfo, 0)
maxX := 0 // Track rightmost position
// Collect boxes and connections
for _, pos := range c.textPositions {
up, down, left, right := false, false, false, false
// Vertical connections
for x := pos.x; x < pos.x+pos.w; x++ {
if pos.y > 0 && c.grid[pos.y-1][x] == '|' {
up = true
}
if pos.y+pos.h < c.h && c.grid[pos.y+pos.h][x] == '|' {
down = true
}
maxX = max(maxX, x+1) // Track rightmost position
}
// Horizontal connections
for y := pos.y; y < pos.y+pos.h; y++ {
if pos.x > 0 && c.grid[y][pos.x-1] == '-' {
left = true
}
if pos.x+pos.w < c.w && c.grid[y][pos.x+pos.w] == '-' {
right = true
}
}
boxes = append(boxes, boxInfo{
x: pos.x, y: pos.y,
w: pos.w, h: pos.h,
text: pos.text,
hasUp: up, hasDown: down,
hasLeft: left, hasRight: right,
})
}
// Sort for vertical processing
yBoxes := make([]boxInfo, len(boxes))
copy(yBoxes, boxes)
sort.Slice(yBoxes, func(i, j int) bool {
return yBoxes[i].y < yBoxes[j].y
})
// Calculate vertical layout
currY := 0
yMapping := make(map[int]int)
for i, box := range yBoxes {
lines := strings.Split(box.text, "\n")
minHeight := len(lines) + 2 // text + borders
if i == 0 {
yMapping[box.y] = 0
currY = minHeight
continue
}
spacing := 1 // minimum spacing
if yBoxes[i-1].hasDown && box.hasUp {
spacing = 2 // space for connections
}
yMapping[box.y] = currY + spacing
currY = yMapping[box.y] + minHeight
}
// Calculate final height
maxH := 0
for _, box := range yBoxes {
newY := yMapping[box.y]
lines := strings.Split(box.text, "\n")
boxHeight := len(lines) + 2
maxH = max(maxH, newY+boxHeight)
}
// Add padding for edge connections
for x := 0; x < c.w; x++ {
if c.grid[0][x] != ' ' || c.grid[c.h-1][x] != ' ' {
maxH++
break
}
}
// Find actual rightmost content
actualMaxX := 0
for y := 0; y < c.h; y++ {
for x := c.w - 1; x >= 0; x-- {
if c.grid[y][x] != ' ' {
actualMaxX = max(actualMaxX, x+1)
break
}
}
}
// Add minimal padding for edges
if actualMaxX > 0 {
actualMaxX += 1 // Right padding
}
// Find leftmost content to determine if we need left padding
needLeftPad := false
for y := 0; y < c.h; y++ {
if c.grid[y][0] != ' ' {
needLeftPad = true
break
}
}
if needLeftPad {
actualMaxX += 1
}
// Return optimized dimensions
return actualMaxX, maxH
}
// ReScale reduces the size of ASCII art using a pixel-like sampling technique // ReScale reduces the size of ASCII art using a pixel-like sampling technique
func (c *Canvas) ReScale(targetWidth, targetHeight int) { func (c *Canvas) ReScale(targetWidth, targetHeight int) {
scaleX := float64(targetWidth) / float64(c.w) scaleX := float64(targetWidth) / float64(c.w)

View file

@ -1,74 +1,23 @@
|-----------------| |------------|
| | //|ans Niemann |
| Hans Niemann | //////////// -||||----||||//////////
| | |||||// || || //||
/ | | ||| || |
/////+-----|------|----// ||--------------|||----------------|| ||
///// || | //// | |--------------| || |
//// || | /// | +-------|------+ || |
///// || | ////
||// | | /|
||| || | ||
|| | || |
| | | |
| | | ||
| | | |
| | | ||
| || | |
|-|---------------------||---------------------|| |
| ||| || |
| |--------------|---| || |
| | | || |
| | | || |
| | Magnus Carlsen | || |
| | | || |
| +---------|--------+ || |
| | || | | | || |
| | || | | | || |
| | || | | --------|-------+ || |
| | || | | P|ay Magnus Group| || |
| | || | | --------|-------+ || |
| | || | | | ||| |
| | || | | |||endants /////||| |
| | || | | |--|--------|//// | |
| | || | | |Chess..om | | |
| | || | | +------|----+ | |
| |----------|----------| || | | | | /||||
| | | || | | ||| ///////////
| | Play Magnus Group | || | | |-----|---------|//|
| | | || | | +---------------+ |
| | | || | -----------------------------------+
| +----------|----------+ || |
| | || |
| | || |
| | || |
| | || |
| || defendants ||| |
| || /|| | |
| || /// | |
| || /// | |
| || /// | |
| |---|----------|/ | |
| | | | |
| | | | |
| | Chess.com | | |
| | | | |
| +-------|------+ | |
| | | |
| | | |
| | | |
| | | ||
| || | ||
| | | /||
| | | ////
| | | ////
| | |///
| |-------|------------|///|
| | | |
| | | |
| | Hikaru Nakamura | |
| | | |
| +--------------------+ |
| |
| |
+----------------------------------------------+

View file

@ -1,60 +1,16 @@
+-------------------------------+ |----------------------------------------------------|
| | | |----------------------------------------------| |
| |
| |
| |--------------------------| |
| | | | | | | |
| | | | | | |----| |----| |----| |----| | | |------------------------------|
| | | | | | +----+ +----+ +----+ +----+ | | | |-------| |
| | | | |--------------------------------------------------------------| | | | | | ------ | |
| | | | | |---------| | | | |----| |----| |----| |----| | | | ||||/ +-------+ |
| | | | | |//-----| linked |----///|| +----------+ | | | +----+ +----+ +----+ +----+ | | | |----||| |
| | | | | |---------|||| +---------+ |||| | | | | |----| |----|est |----| |----| |-|----------------|---+----|| Release |
| | |--| |--| |--| |--| | | | |source | Build | |--|----------------|---| +----+ +----+ +----+ +----+ | | | |||/ |-------| |
| | | | | | | | | | | | +-----------------+ | ----------+|| |---------| ||| | | | | | | | /-----| | |
| | | | | | | | | | | | | | | ||//-----| assets |----///|||| +----------+ | | | |----| |----| |----| |----| | | | +-------+ |
| | | | | | | | | | | | | | | +---------+ | | | +----+ +----+ +----+ +----+ | | +------------------------------+
| | | | | | | | | | | | | | +--------------------------------------------------------------+ | | | |
| | ---+ +--+ ---+ +--+ | | | |----|| | -----------------------------------------------+ |
| | | | | | || +----------------------------------------------------+
+------------------------------------+ | | | | | | ||
| | | | | | | | ||
| | | | | | | --- ||
| | | | |--| |--| |--| |--| | | | // | ||
| +-----+ | | | | | | | | | | | | | | || | ||
| | | | | | | | | | | | | | | | | | | ||
| | | | | | | | | | | | | | | | | || +----+|
| | | | | | | | | | | | | | | | | | |
| | | | | | ---+ +--+ ---+ +--+ | | | --+| |
| /--|linke|--// | | | | | | | | |
| |/ | | | +------+ | | | | | | | | |
| | | | || | | | | Test |-|--------|--| |Release |
| | | | || | | | | | | | | | |
| |-----| +-----+ | | | | | ---+ +--+ ---+ +--+ | | | --| |
| | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | |----||
| | | | | | | | | | | | | | | | | | | | | ||
| |sourc| Build | |-|--------|--| | | | | | | | | | | | | | ||
| | | | | | | | ---+ +--+ ---+ +--+ | | | / | ||
| | | | | | | | | | | /--- ||
| | | +-----+ | | | | | | | | | ||
| +-----+| | | | | | | | | | | | ||
| || | | || | | | | | | | | ||
| | | | ||+------+ | | | ---+ +--+ ---+ +--+ | | | +----+|
| // |asset| /| | | | | | | | | | | | | | | |
| --| |--/ | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | +-----------------+
| +-----+ | | | ---+ +--+ ---+ +--+ | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+------------------------------------+ | | | |
| | | |
| | | |
| ---------------------------+ |
| |
| |
| |
+-------------------------------+

View file

@ -1,78 +1,161 @@
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| |----------||-----------|----------|----------||----------|-----------||-----------|----------|----------||----------|-----------|-----------|
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | |北 海 道 | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | 北 海 道 |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | |青 森 | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | |秋 田 | 岩 手 | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| +----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | 川 | |新 潟 |山 形 | 宮 城 | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | 青 森 | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | 井 | 山 |群 馬 |栃 木 | 福 島 | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | |----------||-----------|----------|----------||----------|-----------||-----------|----------|----------||----------|-----------|-----------|
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | |山 口 |島 根 ||鳥 取 |兵 庫 || 京 都 | 賀 | 野 |山 梨 |埼 玉 | 茨 城 | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | 秋 田 | 岩 手 |
| | | |広 島 ||岡 山 |大 阪 || 奈 良 | 阜 | 知 |静 岡 |TOKYO | 千 葉 | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | +----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| | | | || | || | | | | | | | || | | || | || | | || | | |
| 崎 | 佐 賀 |福 岡 | || | ||和 歌 山 | 重 | | | 奈 川 | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | 石 川 | || 新 潟 | 山 形 | 宮 城 |
| | 熊 本 |大 分 | ||愛 媛 |香 川 || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
|-------|--------|-------|-------||-------|-------||--------|-------|-------|--------|-------|--------| | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | +----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| |鹿 児 島 |宮 崎 | ||高 知 |徳 島 || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | 福 井 | 富 山 || 群 馬 | 栃 木 | 福 島 |
| 縄 | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
| | | | || | || | | | | | | | || | | || | || | | || | | |
--------+--------+-------+-------++-------+-------++------------------------+----------------+--------+ | || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
|----------||-----------|----------|----------||----------|-----------||-----------|----------|----------||----------|-----------|-----------|
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | 山 口 | 島 根 || 鳥 取 | 兵 庫 || 京 都 | 滋 賀 | 長 野 || 山 梨 | 埼 玉 | 茨 城 |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | 広 島 || 岡 山 | 大 阪 || 奈 良 | 岐 阜 | 愛 知 || 静 岡 | TOKYO | 千 葉 |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| 長 崎 || 佐 賀 | 福 岡 | || | || 和 歌 山 | 三 重 | || | 神 奈 川 | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
|----------||-----------|----------|----------||----------|-----------||-----------|----------|----------||----------|-----------|-----------|
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || 熊 本 | 大 分 | || 愛 媛 | 香 川 || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || 鹿 児 島 | 宮 崎 | || 高 知 | 徳 島 || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| 沖 縄 || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+----------++-----------+----------+----------++----------+-----------++-----------+----------+----------++----------+-----------+-----------+

View file

@ -1,83 +1,128 @@
|-----| |-----| |-----| |--------------| |--------------| |--------------|
| | | | | | | | | | | |
| | | | | | | | | | | |
|ndroi| |phone| | Web | | Android | | Iphone | | Web |
| | | | | | | | | | | |
+-----+ ------+ +-----+ | | | | | |
| | | | | |
+--------------+ +--------------+ +--------------+
| | | | | |
|| | || || | ||
|||| | |||
||| | ||| ||| | |||
||||-----||| |||| |-------|------| ||||
|| | |||| ||||
| | | |
Tw////| Fron/end | |
////// | |/// |witter Fronten|
//////// ------+ /// //////| /
////// /// //////////// | |///////
|| | ////////// | | /////
/////////// +--------------+ //////
////////// ////
||////// ////|
||| ||
|| || || ||
|| | ||| |||
--------------------------------------------------------+ || ||
||| ||
+-----------------|----------------------------------------------------------------------------------------------------------------------|---------+
| | | | | | | |
| | |-----|| | | +-------|-------+ |
||----------| |---------------------| | || | | | | |
TLS-AP||(-eing/dep|ec|ted)/ hydration, visi|ility filt//ingQL|| | |-------------|-------------| | | |
|+-----|----+ ----------------------+ F////////|Strat||/olumn | | | |----------------------------------------------------------| | | |
| | /////// | ||//// | |TLS--PI (being deprecated) | | ## Tweet//ser content hydration, visibility filtering | | GraphQL | |
| | //////// ------+| //// | | | +----------------------------------------------------------+ ////////|rated Strato Co/u|n
-------||---------------//------------------------------+ | | +-------------|-------------+ /////////// | |/|////
|| |/ || | | ///////////// | | | ///////
||| ///// || | | /////////// +---------------+ | ///////
///////// | | | /////////// | /////
/////// ///////// | | || /////// | ||
|///// |--------------/------------------------------------|| +-------------------|||--------------------------------------///////-------------------------------------------------------------------------------+ ||
| | |------------| | || | ||
||| // ||
|||| //////////////// |||
//////////////// |
//////////// ///////////// |
////////////// /////////////// |
|////////// |---------------------------------------//------------------------------------------------------------------------------------------------|--|
| | |
| | |--------------------------------| |
| | | | | | | | | |
| | | | | | | | | |
|-----| | ## *|Timeline mix|r** | | | | | |
H/|e mix|r | - Inject ads,|wh--t--follo|, onboard|ng |-------|------| | | | |
//////|-||||// | - Co|versation mo|ule | | | | -| ## **Time-in- mixer** | |
////////|| | |||/// | - Cur|oring,pagina|ion | | Home mixer | | - |nject-ads, who-to-follow, onboar|ing |
////////// ||| | || ||/// | - Tw-------------+ion | /////////+--------------/ | | - Conversation module | |
///// /// || || || || /// | - Served data logging | //////////// ||| | || |||//// | | - Cursoring,pagination | |
||| | | | | || || -|-----|----|---------|-------|--------------|-------+ //////// ///// ||| | || ||| //// | | - Tweat deduplication | |
|| | | | | | || | | | | | | //////// ////// ||| | || ||| //// | | - 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/////|/ | | || || || | | || || | | | | | |
| --/////// +-----+ ////////-----+ ---||+ || || || | || || ||| || || || | | |
| ///// /////// | || || | | || |||| |//// ////| |||| || | | |
| ///////// //// | | | | | ||| || //////// |||| || | | |
| ///////// /// | | | | | ||| ||||//// ///// || || | | |
/////|//// /// | | | | | ||| //// ||| ||// +------------+ | +--------------+ +-------------------+ |--------------|
|//// | //// | |-------------| |--------------| |--------------| |--------------| |-------------------| |----------------| ///// | |-----------| | | | | | |
| |--|-----------////-------------------------| ------+ | | | | | | | | | | | | | | | | | | | | | |
|-----| ||----| ////// |---| |--| |--| |-----| | | | | Tweety Pie | | Social graph | | Gizmoduck | | Manhattan | | Timeline Service | | Home Ranker | | Timeline | | Ad mixer | | Onboarding | |People discovery | /////Fetch |
Hom| Scor|r ||rMix|/// Ea|lyB|rd|ta| S|ac|Co|munit|e| F|ature| | | | | | | | | | | | |/////// Scorer | | | | service | | servic////////|//////| |
| | || | | | | | | | | | | /|/ | +-------------+ +--------------+ +--------------+ +--------------+ +-------------------+ +------|---------+ +-----////---+ +-----------+ +--------------+ //////---------------+ | |
||||||+ |+----+ ----+ +--+ ---+ +-----+ | /////-|--|-+ || ////////// //////////// +--------|-----+
|| || || --------------------------------------------+ //////// || | | ///////// ///////////// |
/// |// //// || || | || || //////// //////// ||
/// /// /// || | || | | ////////////// ///// |
|/// //// //// || || | | || ///////////////// ///// |
| /// /// //// || || | | | ///////////// ///// |
| //////////////////////// ||| || | | //////|/////// //// |
|----| ///////////////////////// || || || | ///////////// | ///// |
| | ///////////////////---|/|///---| |----| |-----| |///// | ////// |
Predic|ion |ervice ///////|.//|/| ////|//|hatt|n | | | +-------|--------------------------------------///------------------------------------------------------------------+ |
| | | |M|mcache| | | S|oring| | | || ///////// | |---------------|
| | ----+ -------+ -----+ ------+ |----------------| | |-----------| ///////////// |-----------| |-------| |---------| |----------------| | | |
-----+ | | | | | ///////// | | | | | | | | | | |
| Home Scorer | | | CrMixer | | EarlyBird | | Utag | | Space | | Communities | | | Feature |
| | | | | | | | | | | | | | ///// |
+--||--||---|----+ | +-----------+ +-----------+ +-------+ +---------+ +----------------+ | ////// /// |
||| ||| || | | ////// ////+--|--------|---+
||| |||| ||| +-------------------------------------------------------------------------------------------------------------------+ //////// ///// || ||
/ | // |// ||// |/ || ||
//// | ///// ///// || | | |
//// //// ///// || | || |
|//// //// ///// ||| | | |
| //// //// ///// || | | |
| ///// ////// ////// || || | |
| //////// ////////// ////////// || || | |
| ///////////////////////////////////////////////// ||| || | |
+-------|-------+ /////////////////////////////////////////////////// ||| || || |
| | //////////////////////////////////////////////////////// ||| || | +---------------+
| | //////////////////////////////////// /////+---------/|/// |-------------|--| +-------|-----+ | |
| | ///////////////// ////////|/////////| //|///////////////// | | | |
P|ediction Servic| //////////| ...etc |//////| Memcache |///////| Manhattan | | Scoring |
| | | | | | | | | |
| | +---------+ | | +-------------+ | |
| | +----------------+ +------|--------+
+---------------+ |
| |
| |
| |
|-----| |
| | |
Predic|ion S|rvice |------|-------|
| | | |
| | | |
------+ | |
P|ediction Servi|e
| |
| |
| |
+--------------+

View file

@ -1,76 +1,184 @@
|-------------------------------------------------------------------------------------------------------------| +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | |
| | | |
| | | |
| |------------------------------------------------| |------------| | | |
| |
| |
| |
| |
| |
| |
| |-----------------------------------------------------------------------------------------------------------------------------------| |----------------------------------| |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | Ran|o| Matrix Gene|ator |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| -------------------------------------------------+ -------------+ | | | | | | |
| | | | | |
| | | | | |
| | | | Random Matrix Generator | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| +-----------------------------------------------------------------------------------------------------------------------------------+ +----------------|-----------------+ |
| | |
| | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
------------------------------------------------------------|-------------------------------------------------+
|
--------------------------------------------------------------------------------------------------------------+
| || | | || |
| | | | | |
| | | | | |
| | | | | |
| |-----------------------------| |---------||------------|----------||----| |-----------------------------| | +----------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------+
| | | | || | || | | | | |
| | | | || | || | | | | |
| | | | || | || | | | | |
| | | | |----| || | || | | | | |
| | | | | | || || | | | | |
| | +--+-------+-+-------+---+ | | | | || ----+--------+----+ || | | +------+----------+------+ | | |
| | | | | | || | || | | | | | || | || | | | || | | | | | | | || | | | | +----------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------+
| | | | | | || | || | | | | | || | || | | | || | | | | | | | || | | | | | | |
| | | | | | || | || | | | | | || | || | | | || | | | | | | | || | | | | | | |
| | |..|..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| | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | | | || | || | | | || || | | | | | | | || | | | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | | | || | || | | | || || | | | | | | | || | | | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | +--+-------+-+-------+---+ | | || || | | +------+----------+------+ | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || || | | | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || || | | | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || || | | | | | | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || || | | | | | | | . | . |------------ |------------- . || . | | | | | | | | . || . | . || . | | | | | | . | . |------------- ------------- . | . | | |
| ------------------------------+ ----------++-----------------------++----+ ------------------------------+ | | | |0.62 | 0.15 || n-si|en Ve||or | 0.91 || 0.48 | | | | | | | | 0.41 || 0.32 | 0.92 || 0.13 | | | | | | 0.62 | 0.15 || m-si|edmVec|or || 0.91 | 0.48 | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | +------------+ | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | --------+--------++----------+-----++-----------+-------++--------+ | | | | +-----------++----------+-----------++----------+ | | | | +--------+-------++-----------+------+----------++--------+--------+ | |
| | | | | | | || | || | | | | | | |
| | | | |---------| | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | +-+ | | | | || | || | | | | | | |
| | | | | | | | | | | || | || | | | | | | |
| | | | |ot |r|duc| | | | 0.74 || 0.15 | 0.53 || 0.21 | | | | | | |
| | | | | | | | | | | || | || | | | | | | |
| | | | | +-+ | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | --------+--------++----------+-----++-----------+-------++--------+ | | | | | | | || | || | | | | | +--------+-------++-----------+------+----------++--------+--------+ | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | +---------+ | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | +-----------++----------+-----------++----------+ | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | |----|----------|----| | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | . | . |------------ |------------- . || . | | | | | | || | || | | | | | | . | . |------------- ------------- . | . | | |
| | |0.62 | 0.15 || n-si|en Ve||or | 0.91 || 0.48 | | | | | | || | || | | | | | | 0.62 | 0.15 || m-si|edmVec|or || 0.91 | 0.48 | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | . || . | . || . | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | 0.97 || 0.45 | 0.11 || 0.05 | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | --------+--------++----------+-----++-----------+-------++--------+ | | | | | || | || | | | | | +--------+-------++-----------+------+----------++--------+--------+ | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | +-----------++----------+-----------++----------+ | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | --------+--------++----------+-----++-----------+-------++--------+ | | | | | || | || | | | | | +--------+-------++-----------+------+----------++--------+--------+ | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | . || . | . || . | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | 0.61 || 0.77 | 0.59 || 0.83 | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | . | . || - | || | . || . | | | | | | || | || | | | | | | . | . || - | | || . | . | | |
| | |0.62 | 0.15 ||----------|en Ve||-----------| 0.91 || 0.48 | | | | | | || | || | | | | | | 0.62 | 0.15 ||-----------|edmVec|----------|| 0.91 | 0.48 | | |
| | | | || | || | || | | | | | +-----------++----------+-----------++----------+ | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | --------+--------++----------+-----++-----------+-------++--------+ | | | | | | | | +--------+-------++-----------+------+----------++--------+--------+ | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| +--------------------------------------------------------------------------------+ +--------------------------+ +--------------------------------------------------------------+ +----------+ +--------------------------------------------------------------------------------+ |
| | | |
| | | |
| | | |
--------------------------------------------------------------------------------------------------------------+ | |
| |
| |
| |
| |
| |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

View file

@ -1,78 +1,31 @@
|------------| |---------|
| | |inputFile|
| inputFile | +-----|---+
| |
+------|-----+
|
|
|
|
|
|------|-----|
| |
| d2parser |
| |
+------|-----+
|
|
| |
|-----|---|
|d2parser |
+-----|---+
| |
|---|---|
| d2ast |
+---|---+
| |
|-----|----|
|2compiler |
------|----+
| |
|----|----| |----|----|
| | | d2graph |
| d2ast |
| |
+----|----+ +----|----+
| |
|----------|----------|
|2layouts/d2dagrelayou|
+----------|----------+
| |
|-----|----|
|2exporter |
------|----+
| |
| |----|----|
| |d2target |
|-------|------| +---------+
| |
| d2compiler |
| |
+-------|------+
|
|
|
|
|
|
|-----|------|
| |
| d2graph |
| |
+-----|------+
|
|
|
|
|
|-------------|-------------|
| |
| d2layouts/d2dagrelayout |
| |
+-------------|-------------+
|
|
|
|
|
+-------|------+
| |
| d2exporter |
| |
+-------|------+
|
|
|
|
|
|
|-----|------|
| |
| d2target |
| |
+------------+