Commit graph

329 commits

Author SHA1 Message Date
Alexander Wang
579bbace03
print msg when png and layout in progress 2023-03-18 15:29:46 -07:00
Alexander Wang
95bc2e4fb5
fix multiple br 2023-03-18 14:45:58 -07:00
Alexander Wang
56a4ee5fff
markdown strikethrough 2023-03-18 14:00:52 -07:00
Alexander Wang
8d3bab92f3
[ci-base] bump src version 2023-03-16 16:01:01 -07:00
Gavin Nishizawa
0fe8a6b5f0
cleanup and optimization for Point.OnSegment 2023-03-15 13:29:23 -07:00
Alexander Wang
7f9bc2b033
Merge branch 'master' into elk-shim 2023-03-14 18:38:43 -07:00
Alexander Wang
108b744f3c
fix bug 2023-03-14 18:36:16 -07:00
Alexander Wang
73c35bb14b
implement s-shape 2023-03-14 14:11:51 -07:00
Gavin Nishizawa
8fe2eee56d
lint 2023-03-14 11:20:00 -07:00
Alexander Wang
0292ea2627
add exif to png 2023-03-13 17:58:47 -07:00
Alexander Wang
d1040bf4f8
save 2023-03-13 17:52:50 -07:00
Alexander Wang
2f2056da2a
embed d2 version in svg 2023-03-13 16:26:42 -07:00
Alexander Wang
e6644549be
implement internal links in PDF 2023-03-02 23:17:29 -08:00
Bernard Xie
5e2ce123fc
pass viewbox coords in 2023-02-28 14:14:38 -08:00
Bernard Xie
a85a225c73
reverts 2023-02-28 12:45:00 -08:00
Bernard Xie
e8a473f0fd
working 2023-02-28 12:40:07 -08:00
Bernard Xie
202575cb83
Merge branch 'master' into pdf-link-overlay 2023-02-28 10:19:04 -08:00
Anmol Sethi
102ed4f7ba
lib/version: Update 2023-02-27 21:42:48 -08:00
Bernard Xie
f327a23cc5
wip 2023-02-27 20:02:33 -08:00
Bernard Xie
479127b3c6
add else 2023-02-27 19:55:37 -08:00
Bernard Xie
349fac7193
Fix when using theme colors 2023-02-27 19:50:30 -08:00
Bernard Xie
48593357a5
Merge pull request #929 from berniexie/support-diagram-fill-pdf
pdf: Support diagram fill in pdf exports
2023-02-27 16:56:38 -08:00
Bernard Xie
2292ed4653
Update color.go 2023-02-27 16:46:44 -08:00
Bernard Xie
d72068d194
Update color.go 2023-02-27 16:45:25 -08:00
Bernard Xie
3427ea1717
w3 official source 2023-02-27 16:38:48 -08:00
Bernard Xie
2fb0df3563
add rebecca purple 2023-02-27 16:34:44 -08:00
Bernard Xie
8e0feef0da
color comment 2023-02-27 16:30:25 -08:00
Bernard Xie
7c295c1942
to lower on name2rgb 2023-02-27 16:27:28 -08:00
Bernard Xie
b48c2b411f
Update color.go 2023-02-27 16:22:10 -08:00
Gavin Nishizawa
4b97eefdeb
update d2 version for go install oss.terrastruct.com/d2@latest 2023-02-27 16:20:43 -08:00
Bernard Xie
63ffcba215
error 2023-02-27 16:10:00 -08:00
Bernard Xie
66083e2d98
set root fill as transparent on pdf exports 2023-02-27 16:05:41 -08:00
Bernard Xie
29e76b77b8
Merge branch 'master' into support-diagram-fill-pdf 2023-02-27 14:11:07 -08:00
Bernard Xie
fb4eb36214
Add support 2023-02-27 14:10:59 -08:00
Alexander Wang
9cdfd20ff9
changelog 2023-02-27 12:58:21 -08:00
Alexander Wang
e5eacbd499
fix theme regex 2023-02-27 12:56:04 -08:00
Anmol Sethi
5c2a80330f
docker: Install playwright dependencies on arm64
Also changed our code to only install chromium.

Closes #835
2023-02-27 10:30:59 -08:00
Bernard Xie
9eaf77aa4b
Merge branch 'master' into 120/pdf-export 2023-02-24 13:48:15 -08:00
Alexander Wang
0fe1c6d0cf
fix color codes 2023-02-23 17:15:29 -08:00
Bernard Xie
ece87708d6
fix imports 2023-02-23 15:59:50 -08:00
Bernard Xie
9dca4d93f6
Fix fonts 2023-02-23 15:50:56 -08:00
Bernard Xie
f1f95ba818
Merge branch 'master' into 120/pdf-export 2023-02-23 12:55:58 -08:00
Bernard Xie
0d1c3c019d
Merge branch 'master' into 120/pdf-export 2023-02-21 14:26:18 -08:00
Vojtěch Fošnár
732f5c241f
bgColor and fgColor are now just constants 2023-02-19 15:54:17 +01:00
Vojtěch Fošnár
331cf95284
move ThemableElement and others to d2themes, smaller fixes 2023-02-19 13:00:01 +01:00
Vojtěch Fošnár
6a89beaeb1
merge updates 2023-02-19 12:32:44 +01:00
Bernard Xie
c561de4856
reset colors 2023-02-14 17:42:44 -08:00
Bernard Xie
890a7d8b2c
pdf exports 2023-02-14 17:28:42 -08:00
Alexander Wang
156c974241
unicode tests 2023-02-14 11:41:21 -08:00
Alexander Wang
9cb7e7f396
scale multi-width unicode 2023-02-14 11:40:49 -08:00
Gavin Nishizawa
4de1f76751
limit oval shape aspect ratio 2023-02-13 11:23:30 -08:00
Gavin Nishizawa
94bf92a28b
use per-axis padding 2023-02-10 16:19:19 -08:00
Gavin Nishizawa
93fa13ab0f
add FullShape to use shape's InnerBox for placement 2023-02-10 13:52:58 -08:00
Gavin Nishizawa
6b65665b61
fix GetInsidePlacement inconsistencies 2023-02-10 13:52:58 -08:00
Gavin Nishizawa
4bfb6af7e6
Merge branch 'master' into shape-specific-inner-boxes 2023-02-02 20:25:52 -08:00
Anmol Sethi
09dc9fd12f
Merge remote-tracking branch 'upstream/master' into scenarios-a407 2023-02-02 10:33:31 -08:00
Gavin Nishizawa
1b1cdaff15
Merge branch 'master' into shape-specific-inner-boxes 2023-02-01 10:31:46 -08:00
Gavin Nishizawa
57fa903fe6
also limit person AR with width/height attributes unless both are entered 2023-01-31 16:08:06 -08:00
Vojtěch Fošnár
01928a5032
review fixes 2023-01-30 12:06:54 +01:00
Vojtěch Fošnár
61bf09107a
Merge branch 'terrastruct:master' into master 2023-01-29 23:23:22 +01:00
Vojtěch Fošnár
462bd1e23d
resolve conflicts 2023-01-27 21:08:01 +01:00
Gavin Nishizawa
bd23d0758b
update hexagon inner box 2023-01-26 16:44:20 -08:00
Gavin Nishizawa
597bc319bf
update other chopPrecision 2023-01-26 16:44:20 -08:00
Gavin Nishizawa
fed4bd2b9f
ceil dimensions to fit 2023-01-26 16:44:20 -08:00
Gavin Nishizawa
e367a007e5
chopPrecision once at end 2023-01-26 16:44:20 -08:00
Gavin Nishizawa
f30fe2c2c4
round from float32 precision 2023-01-26 16:44:20 -08:00
Gavin Nishizawa
c12e71af15
update circle fitting 2023-01-26 16:44:19 -08:00
Gavin Nishizawa
cc8c7756ab
cleanup 2023-01-26 16:44:19 -08:00
Gavin Nishizawa
d5f2ed00d5
handle person shape aspect ratio 2023-01-26 16:44:19 -08:00
Gavin Nishizawa
b1beddc9e2
Adjust padding per shape 2023-01-26 16:44:19 -08:00
Gavin Nishizawa
6f26167beb
fix class dimensions 2023-01-26 16:44:19 -08:00
Gavin Nishizawa
0311a3f7d7
use paddingX and paddingY in GetDimensionsToFit 2023-01-26 16:44:19 -08:00
Gavin Nishizawa
b76d43536d
remove debugging code 2023-01-26 16:44:18 -08:00
Gavin Nishizawa
23097370e2
set up shape specific inner bounding boxes for labels 2023-01-26 16:43:36 -08:00
Kevin David
9ba1d85d21
d2graph: check that font family is entirely loaded before using it
I tested this by removing the changes I added in `d2fonts`, which led to:
```
[21:23:54] info: compiling GetUniqueColumnName-fix.d2...
[21:23:54] err: failed to compile: ruler does not have entire font family SourceCodePro loaded, is a style missing?
```

The error was also rendered in the UI.
2023-01-24 21:25:01 -05:00
Anmol Sethi
4b50748dd0
d2ir: Final PR imports
https://github.com/terrastruct/terrastruct-backend/pull/975/files#diff-1b00307a7a2bd1ffc68527a7df7c9c83327d8cd2dd00f4741ec6bd0b96605cd4
2023-01-24 02:56:31 -08:00
Kevin David
bd7e18395e
d2renderers: d2fonts: add bold + italic styles for Source Code Pro
👋 I've been playing around with changing the entire font of a diagram to something fixed-width, starting by hand-editing `main.go`

I noticed that if I switched over the family to Source Code Pro, d2 crashed with the following stack:

```
[23:38:30] info: compiling GetUniqueColumnName-fix.d2...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x1c4 pc=0x16b562c]

goroutine 43 [running]:
github.com/golang/freetype/truetype.(*Font).Bounds(0xc000669670?, 0x0?)
        /Users/kevin/dev/go/pkg/mod/github.com/golang/freetype@v0.0.0-20170609003504-e2365dfdc4a0/truetype/truetype.go:378 +0xc
github.com/golang/freetype/truetype.NewFace(0x0, 0xc0003276c0)
        /Users/kevin/dev/go/pkg/mod/github.com/golang/freetype@v0.0.0-20170609003504-e2365dfdc4a0/truetype/face.go:199 +0x325
oss.terrastruct.com/d2/lib/textmeasure.(*Ruler).addFontSize(0xc00037c000, {{0x1bb9a34, 0xd}, {0x1b82732, 0x4}, 0x1f})
        /Users/kevin/dev/d2/lib/textmeasure/textmeasure.go:141 +0x112
oss.terrastruct.com/d2/lib/textmeasure.(*Ruler).MeasurePrecise(0xc00037c000, {{0x1bb9a34, 0xd}, {0x1b82732, 0x4}, 0x1f}, {0xc000582100, 0x1f})
        /Users/kevin/dev/d2/lib/textmeasure/textmeasure.go:157 +0xde
oss.terrastruct.com/d2/lib/textmeasure.(*Ruler).Measure(...)
        /Users/kevin/dev/d2/lib/textmeasure/textmeasure.go:151
oss.terrastruct.com/d2/d2graph.GetTextDimensions({0x0, 0x0, 0xc000657860?}, 0xc00037c000, 0xc000620280, 0xc000092020)
```

Which I tracked down to these missing styles, which appear to matter even if they aren't used.

I acquired the `ttf` files from https://fonts.google.com/specimen/Source+Code+Pro

I created the encoded fonts on my Mac with:
```
base64 -i SourceCodePro-Italic.ttf -o ../encoded/SourceCodePro-Italic.txt
```

Hopefully this is correct! Open to all feedback, especially since I think this is the first change I've ever made to a go program :)

Signed-off-by: Kevin David <kevin-david@github.com>
2023-01-23 00:35:19 -05:00
Gavin Nishizawa
1a07492517
update li measurement + h1 border-bottom 2023-01-15 23:31:06 -08:00
Vojtěch Fošnár
1e89c33cee
removed theming code from styling methods 2023-01-15 21:38:25 +01:00
Vojtěch Fošnár
66dc978418
resolved merge conflict 2023-01-15 21:36:43 +01:00
Alexander Wang
0314a74eab
unescape img hrefs 2023-01-14 14:20:08 -08:00
Gavin Nishizawa
224af99efd
add sketch versions of arrowheads 2023-01-13 18:13:28 -08:00
Gavin Nishizawa
54f34d72ad
extend previous segment to target if last segment is very short 2023-01-12 11:23:23 -08:00
Vojtěch Fošnár
19c53d5185
added missing colors conversion 2023-01-12 11:19:34 +01:00
Vojtěch Fošnár
63a0c1e2b1
vary sketch overlay color depending on the background and small refactoring 2023-01-11 22:18:14 +01:00
Vojtěch Fošnár
84e8c25e37
implemented (limited) darkening of theme colors and fixed rendering of the 3D box 2023-01-09 22:50:17 +01:00
Vojtěch Fošnár
a81ab2d73e
support for prefers-color-scheme 2023-01-09 19:16:28 +01:00
Bernard Xie
80892f9ff9
Merge pull request #601 from berniexie/540/fit-to-screen-fix
export: add fit to screen mode to exported svg
2023-01-03 17:42:01 -08:00
Bernard Xie
35c1a1633f
add script to tests 2023-01-03 16:42:39 -08:00
Anmol Sethi
296b6407e9
lib/version/version.go: Update 2023-01-03 14:13:29 -08:00
Alexander Wang
2f545e3f61
tables 2022-12-22 11:06:57 -08:00
Alexander Wang
9812ea54fb
test 2022-12-22 00:46:46 -08:00
Alexander Wang
39cc074757
cleanup 2022-12-22 00:45:32 -08:00
Alexander Wang
4ccaf4a578
ok 2022-12-21 23:57:56 -08:00
Alexander Wang
3a9a784342
wip 2022-12-21 23:13:52 -08:00
Alexander Wang
07fb1a3d86
implement sketch 2022-12-21 20:55:27 -08:00
Anmol Sethi
e79c840ef8
v0.1.2 2022-12-18 22:46:59 -08:00
Alexander Wang
b3a47c845a
bump upscale factor 2022-12-18 20:25:29 -08:00
Bernard Xie
abb86e1c53
increase png export quality by 1.5 2022-12-14 10:35:15 -08:00
Alexander Wang
8b32b0965b
make compression dict determinstic 2022-12-10 16:38:02 -08:00
Anmol Sethi
d89354a8cf
lib/version: Update whoops 2022-12-08 03:03:05 -08:00
Anmol Sethi
b72959a91f
fmt 2022-12-07 23:22:20 -08:00
Anmol Sethi
22e0ed0f9f
v0.1.0 2022-12-06 09:22:51 -08:00
Júlio César Batista
15f83d3b03
Fix page inner size 2022-12-05 19:39:09 -08:00
Júlio César Batista
2cc9405a25
Change inner path base height to 79 2022-12-05 19:16:45 -08:00
Júlio César Batista
3db0afd9c7
Change inner path base width to 66 2022-12-05 19:05:35 -08:00
Júlio César Batista
58cd8d6922
Fix page outer path 2022-12-05 18:52:08 -08:00
Anmol Sethi
d116889fc9
Switch fully to util-go 2022-12-01 11:48:49 -08:00
Anmol Sethi
07e316fac5
xmain: rm -rf 2022-12-01 11:48:49 -08:00
Anmol Sethi
820226c72b
lib/xexec: rm -rf 2022-12-01 11:48:49 -08:00
Anmol Sethi
6139c35af2
watch: Move xbrowser to util-go and fix
Closes #175
Closes #205
2022-12-01 11:48:49 -08:00
Anmol Sethi
a05ba67a36
go2: rm -rf 2022-12-01 10:49:15 -08:00
Anmol Sethi
dd4a7bc2df
lib/diff: Delete in favour of util-go 2022-12-01 10:23:48 -08:00
Anmol Sethi
207a445766
Merge pull request #309 from nhooyr/urlenc-a461
compress -> urlenc
2022-12-01 10:15:52 -08:00
Anmol Sethi
712217050b
compress -> urlenc
And associated cleanup.

Blocked until oss.terrastruct.com/util-go is importable.
2022-12-01 10:06:28 -08:00
Anmol Sethi
2df2c781e9
lib/xmain: Print usage info in separate log 2022-12-01 09:24:48 -08:00
Anmol Sethi
c4ef432daf
Move textmeasure into lib
It's not a d2renderer.
2022-12-01 06:51:17 -08:00
Anmol Sethi
4cfd7c9c03
Update cmdlog 2022-12-01 00:44:59 -08:00
Anmol Sethi
63d5a66962
lib/version: Update to include some version context 2022-11-30 15:50:53 -08:00
Anmol Sethi
e3060f6aca
lib/version: Set to HEAD when building from source instead of ????
More clear. See https://github.com/terrastruct/d2/issues/202
2022-11-30 15:38:40 -08:00
Anmol Sethi
1d2ea2bb87
imgbundler: Use time.Ticker instead 2022-11-30 14:58:52 -08:00
Anmol Sethi
e3104688a6
pr278: Review fixes 2022-11-30 14:58:52 -08:00
Anmol Sethi
fd0eba997d
imgbundler: Split bundle into three functions 2022-11-30 14:58:52 -08:00
Anmol Sethi
b8b269db0c
imgbundler: Improve mime type detection
The order of priority in detecting the mime type is now:
- Content-Type response header
- File path extension
- http.DetectContentType
2022-11-30 14:58:52 -08:00
Anmol Sethi
0edf30a6cd
imgbundler: Fixes
- Make bundle flag work
- Display error and update render at the same time in watch mode.
  Before we would just display the render and not show the error.

- Rename imgbundler.InlineX functions to BundleX
- Print imgbundler fetch/readFile errors as they happen in the workers
  instead of coalescing and printing at the end.
- Minor performance improvements by using []byte everywhere possible.
- Improved symbol naming in imgbundler code
- **major**: Ignore already bundled images instead of trying to os.ReadFile them.
2022-11-30 14:58:52 -08:00
Anmol Sethi
f8418f3a2c
xmain: Return usage errors automatically from opts 2022-11-30 14:58:52 -08:00
Alexander Wang
7cbcd88f9c
2022-11-29 05:01:15PM 2022-11-29 17:01:15 -08:00
Alexander Wang
a295af23e0
2022-11-29 04:38:26PM 2022-11-29 16:38:26 -08:00
Alexander Wang
66b6c7de56
2022-11-29 02:20:17PM 2022-11-29 14:20:17 -08:00
Alexander Wang
983b05bd9c
2022-11-29 01:50:48PM 2022-11-29 13:50:48 -08:00
Alexander Wang
fe75e7067b
2022-11-29 01:30:22PM 2022-11-29 13:30:22 -08:00
Alexander Wang
10e13c3716
fixes 2022-11-29 13:19:03 -08:00
Alexander Wang
d7fb9c16b8
2022-11-29 12:54:30PM 2022-11-29 12:54:30 -08:00
Anmol Sethi
d31ed1d3ac
imgbundler: Fixes
- Correct concurrency
- Return multierr
- Use []byte wherever possible
- Add semaphore to limit number of workers
- Separate timeout for each fetch
2022-11-29 11:40:53 -08:00
Alexander Wang
7368d15186
typo 2022-11-29 11:15:57 -08:00
Alexander Wang
6c921c9c22
bytes 2022-11-29 11:01:51 -08:00
Alexander Wang
97f7679797
2022-11-29 10:37:57AM 2022-11-29 10:37:57 -08:00
Alexander Wang
ff02459402
no passing respChan 2022-11-29 10:20:32 -08:00
Alexander Wang
a5ab1fea29
httptest 2022-11-29 10:08:18 -08:00
Alexander Wang
9259079d61
small fry 2022-11-29 08:40:05 -08:00
Alexander Wang
9ad44bdec0
2022-11-28 01:25:40PM 2022-11-28 13:25:40 -08:00
Alexander Wang
bd8a389f95
2022-11-26 06:14:41PM 2022-11-26 18:14:41 -08:00
Alexander Wang
ffcf1a05c0
2022-11-26 03:30:19PM 2022-11-26 15:30:19 -08:00
Alexander Wang
8c3b218fac
2022-11-26 03:30:13PM 2022-11-26 15:30:13 -08:00
Alexander Wang
d328b23fb6
2022-11-26 03:26:14PM 2022-11-26 15:26:14 -08:00
Alexander Wang
b0a999ecc1
2022-11-25 07:22:31PM 2022-11-25 19:22:31 -08:00
Bernard Xie
b99b741651
PR comments 2022-11-21 13:24:10 -08:00
Bernard Xie
794df257a7
typecast, fix fmt 2022-11-21 11:05:10 -08:00
Bernard Xie
e8340ff610
Merge branch 'master' into bernie/export-png 2022-11-21 11:00:26 -08:00
Bernard Xie
233fc76e7f
PR comments 2022-11-21 10:46:54 -08:00
Bernard Xie
24aa08bb2b
Update lib/png/png.go
Co-authored-by: Anmol Sethi <anmol@terrastruct.com>
2022-11-21 10:05:48 -08:00
Anmol Sethi
17dd64d89d
install.sh: Add brew integration and documentation
Updates #80
2022-11-20 18:57:34 -08:00
Bernard Xie
0f95288b5c
PR comments 2022-11-18 13:29:30 -08:00
Bernard Xie
8b453eae9a
PR comments 2022-11-17 20:39:10 -08:00
Bernard Xie
269ace1d1c
PR comments 2022-11-17 19:02:25 -08:00
Bernard Xie
3436936349
Remove maxWidth for png exports 2022-11-17 18:30:02 -08:00
Bernard Xie
6bec385811
TODO: somehow defer error reporting 2022-11-17 18:23:44 -08:00
Bernard Xie
3dc999e12c
Revert "Use xdefer to append issue creation message"
This reverts commit 49f0a049fe.
2022-11-17 18:19:00 -08:00
Bernard Xie
49f0a049fe
Use xdefer to append issue creation message 2022-11-17 17:22:08 -08:00
Bernard Xie
3f517fd1c3
obfuscate Playwright from errors 2022-11-17 16:56:38 -08:00
Bernard Xie
6a00cfb005
Report playwright installation errors 2022-11-17 16:49:07 -08:00
Bernard Xie
c2d8d17f46
Cleanup png.Playwright.Init 2022-11-17 16:41:28 -08:00
Bernard Xie
e9d915f8a8
Remove context from Playwright object 2022-11-17 14:55:43 -08:00
Bernard Xie
93ed44c978
handle cleanup error correctly 2022-11-17 14:24:59 -08:00
Bernard Xie
530c70445a
Update help, manpages, and cleanup 2022-11-17 14:13:23 -08:00
Bernard Xie
0e70c0baa5
Small tweaks 2022-11-17 11:34:14 -08:00
Bernard Xie
6ef4246565
create Playwright struct, use BrowserContext 2022-11-17 11:25:07 -08:00
Alexander Wang
052b461b03
2022-11-16 10:33:57PM 2022-11-16 22:33:57 -08:00
Bernard Xie
c3a4c9aa1c
Use Playwright to export images to png 2022-11-16 17:41:53 -08:00
Alexander Wang
d90625dc0a
2022-11-16 04:55:12PM 2022-11-16 16:55:12 -08:00
Alexander Wang
e1846b0e4a
2022-11-16 04:48:19PM 2022-11-16 16:48:19 -08:00
Alexander Wang
06fa709461
2022-11-16 04:42:39PM 2022-11-16 16:42:39 -08:00
Alexander Wang
ff800e1564
Merge branch 'master' into alixander/flag-env-var 2022-11-16 16:31:16 -08:00
Alexander Wang
bded5b13fa
[ci-base] cleanup 2022-11-14 19:05:23 -08:00
Alexander Wang
4d4a00743d
2022-11-14 04:35:22PM 2022-11-14 16:35:22 -08:00
Anmol Sethi
46f6fdad94 install.sh: Get installs working 2022-11-14 02:13:37 -08:00
Gavin Nishizawa
8cc5e733f9 render 3d keyword 2022-11-10 11:36:32 -08:00
Anmol Sethi
0ada291513 cmd/version -> lib/version 2022-11-07 11:39:27 -08:00
Alexander Wang
524c089a74 oss
Co-authored-by: Anmol Sethi <hi@nhooyr.io>
2022-11-03 06:54:49 -07:00