From 2f57ea5ca2f3f96f82b8955fb0900c45185edcc0 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Wed, 29 Mar 2023 17:20:41 -0700 Subject: [PATCH] accept font input --- ci/release/changelogs/next.md | 1 + ci/release/template/man/d2.1 | 9 ++ d2cli/main.go | 65 ++++++++++- d2cli/watch.go | 4 +- d2renderers/d2fonts/d2fonts.go | 75 +++++++++++++ e2etests-cli/RockSalt-Regular.ttf | Bin 0 -> 119328 bytes e2etests-cli/main_test.go | 13 +++ .../testdata/TestCLI_E2E/with-font.exp.svg | 102 ++++++++++++++++++ 8 files changed, 263 insertions(+), 6 deletions(-) create mode 100644 e2etests-cli/RockSalt-Regular.ttf create mode 100644 e2etests-cli/testdata/TestCLI_E2E/with-font.exp.svg diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index a7c04cccd..0b8099e21 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -1,5 +1,6 @@ #### Features 🚀 +- Flags to set a custom font are supported. See [docs](https://d2lang.com/todo). [#1108](https://github.com/terrastruct/d2/pull/1108) - `--animate-interval` can be passed as a flag to animate multi-board diagrams. See [docs](https://d2lang.com/todo). [#1088](https://github.com/terrastruct/d2/pull/1088) - `paper` is available as a `fill-pattern` option [#1070](https://github.com/terrastruct/d2/pull/1070) - fonts are now subsetted to reduce svg file size [#1089](https://github.com/terrastruct/d2/pull/1089) diff --git a/ci/release/template/man/d2.1 b/ci/release/template/man/d2.1 index f3c0d6303..81bc4e895 100644 --- a/ci/release/template/man/d2.1 +++ b/ci/release/template/man/d2.1 @@ -80,6 +80,15 @@ Renders the diagram to look like it was sketched by hand .It Fl -center Ar flag Center the SVG in the containing viewbox, such as your browser screen .Ns . +.It Fl -font-regular +Path to .ttf file to use for the regular font. If none provided, Source Sans Pro Regular is used +.Ns . +.It Fl -font-italic +Path to .ttf file to use for the italic font. If none provided, Source Sans Pro Regular-Italic is used +.Ns . +.It Fl -font-bold +Path to .ttf file to use for the bold font. If none provided, Source Sans Pro Bold is used +.Ns . .It Fl -pad Ar 100 Pixels padded around the rendered diagram .Ns . diff --git a/d2cli/main.go b/d2cli/main.go index b10e7f64e..ae2446c95 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -95,6 +95,10 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { return err } + fontRegularFlag := ms.Opts.String("D2_FONT_REGULAR", "font-regular", "", "", "path to .ttf file to use for the regular font. If none provided, Source Sans Pro Regular is used.") + fontItalicFlag := ms.Opts.String("D2_FONT_ITALIC", "font-italic", "", "", "path to .ttf file to use for the italic font. If none provided, Source Sans Pro Regular-Italic is used.") + fontBoldFlag := ms.Opts.String("D2_FONT_BOLD", "font-bold", "", "", "path to .ttf file to use for the bold font. If none provided, Source Sans Pro Bold is used.") + ps, err := d2plugin.ListPlugins(ctx) if err != nil { return err @@ -114,6 +118,11 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { return nil } + fontFamily, err := loadFonts(ms, *fontRegularFlag, *fontItalicFlag, *fontBoldFlag) + if err != nil { + return xmain.UsageErrorf("failed to load specified fonts: %v", err) + } + if len(ms.Opts.Flags.Args()) > 0 { switch ms.Opts.Flags.Arg(0) { case "init-playwright": @@ -265,6 +274,7 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { bundle: *bundleFlag, forceAppendix: *forceAppendixFlag, pw: pw, + fontFamily: fontFamily, }) if err != nil { return err @@ -275,7 +285,7 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { ctx, cancel := context.WithTimeout(ctx, time.Minute*2) defer cancel() - _, written, err := compile(ctx, ms, plugin, renderOpts, *animateIntervalFlag, inputPath, outputPath, *bundleFlag, *forceAppendixFlag, pw.Page) + _, written, err := compile(ctx, ms, plugin, renderOpts, fontFamily, *animateIntervalFlag, inputPath, outputPath, *bundleFlag, *forceAppendixFlag, pw.Page) if err != nil { if written { return fmt.Errorf("failed to fully compile (partial render written): %w", err) @@ -285,7 +295,7 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { return nil } -func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, renderOpts d2svg.RenderOpts, animateInterval int64, inputPath, outputPath string, bundle, forceAppendix bool, page playwright.Page) (_ []byte, written bool, _ error) { +func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, renderOpts d2svg.RenderOpts, fontFamily *d2fonts.FontFamily, animateInterval int64, inputPath, outputPath string, bundle, forceAppendix bool, page playwright.Page) (_ []byte, written bool, _ error) { start := time.Now() input, err := ms.ReadPath(inputPath) if err != nil { @@ -299,9 +309,10 @@ func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, rende layout := plugin.Layout opts := &d2lib.CompileOptions{ - Layout: layout, - Ruler: ruler, - ThemeID: renderOpts.ThemeID, + Layout: layout, + Ruler: ruler, + ThemeID: renderOpts.ThemeID, + FontFamily: fontFamily, } if renderOpts.Sketch { opts.FontFamily = go2.Pointer(d2fonts.HandDrawn) @@ -659,3 +670,47 @@ func initPlaywright() error { } return pw.Cleanup() } + +func loadFont(ms *xmain.State, path string) ([]byte, error) { + if filepath.Ext(path) != ".ttf" { + return nil, fmt.Errorf("expected .ttf file but %s has extension %s", path, filepath.Ext(path)) + } + ttf, err := os.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("failed to read font at %s: %v", path, err) + } + ms.Log.Info.Printf("font %s loaded", filepath.Base(path)) + return ttf, nil +} + +func loadFonts(ms *xmain.State, pathToRegular, pathToItalic, pathToBold string) (*d2fonts.FontFamily, error) { + if pathToRegular == "" && pathToItalic == "" && pathToBold == "" { + return nil, nil + } + + var regularTTF []byte + var italicTTF []byte + var boldTTF []byte + + var err error + if pathToRegular != "" { + regularTTF, err = loadFont(ms, pathToRegular) + if err != nil { + return nil, err + } + } + if pathToItalic != "" { + italicTTF, err = loadFont(ms, pathToItalic) + if err != nil { + return nil, err + } + } + if pathToBold != "" { + boldTTF, err = loadFont(ms, pathToBold) + if err != nil { + return nil, err + } + } + + return d2fonts.AddFontFamily("custom", regularTTF, italicTTF, boldTTF) +} diff --git a/d2cli/watch.go b/d2cli/watch.go index 8f3e3c398..d1a2c64f0 100644 --- a/d2cli/watch.go +++ b/d2cli/watch.go @@ -26,6 +26,7 @@ import ( "oss.terrastruct.com/util-go/xmain" "oss.terrastruct.com/d2/d2plugin" + "oss.terrastruct.com/d2/d2renderers/d2fonts" "oss.terrastruct.com/d2/d2renderers/d2svg" "oss.terrastruct.com/d2/lib/png" ) @@ -51,6 +52,7 @@ type watcherOpts struct { bundle bool forceAppendix bool pw png.Playwright + fontFamily *d2fonts.FontFamily } type watcher struct { @@ -358,7 +360,7 @@ func (w *watcher) compileLoop(ctx context.Context) error { w.pw = newPW } - svg, _, err := compile(ctx, w.ms, w.layoutPlugin, w.renderOpts, w.animateInterval, w.inputPath, w.outputPath, w.bundle, w.forceAppendix, w.pw.Page) + svg, _, err := compile(ctx, w.ms, w.layoutPlugin, w.renderOpts, w.fontFamily, w.animateInterval, w.inputPath, w.outputPath, w.bundle, w.forceAppendix, w.pw.Page) errs := "" if err != nil { if len(svg) > 0 { diff --git a/d2renderers/d2fonts/d2fonts.go b/d2renderers/d2fonts/d2fonts.go index a8e50d979..a0ae866ae 100644 --- a/d2renderers/d2fonts/d2fonts.go +++ b/d2renderers/d2fonts/d2fonts.go @@ -245,3 +245,78 @@ var D2_FONT_TO_FAMILY = map[string]FontFamily{ "default": SourceSansPro, "mono": SourceCodePro, } + +func AddFontStyle(font Font, style FontStyle, ttf []byte) error { + FontFaces[font] = ttf + + woff, err := fontlib.Sfnt2Woff(ttf) + if err != nil { + return fmt.Errorf("failed to encode ttf to woff: %v", err) + } + encodedWoff := fmt.Sprintf("data:application/font-woff;base64,%v", base64.StdEncoding.EncodeToString(woff)) + FontEncodings[font] = encodedWoff + + return nil +} + +func AddFontFamily(name string, regularTTF, italicTTF, boldTTF []byte) (*FontFamily, error) { + customFontFamily := FontFamily(name) + + regularFont := Font{ + Family: customFontFamily, + Style: FONT_STYLE_REGULAR, + } + if regularTTF != nil { + err := AddFontStyle(regularFont, FONT_STYLE_REGULAR, regularTTF) + if err != nil { + return nil, err + } + } else { + fallbackFont := Font{ + Family: SourceSansPro, + Style: FONT_STYLE_REGULAR, + } + FontFaces[regularFont] = FontFaces[fallbackFont] + FontEncodings[regularFont] = FontEncodings[fallbackFont] + } + + italicFont := Font{ + Family: customFontFamily, + Style: FONT_STYLE_ITALIC, + } + if italicTTF != nil { + err := AddFontStyle(italicFont, FONT_STYLE_ITALIC, italicTTF) + if err != nil { + return nil, err + } + } else { + fallbackFont := Font{ + Family: SourceSansPro, + Style: FONT_STYLE_ITALIC, + } + FontFaces[italicFont] = FontFaces[fallbackFont] + FontEncodings[italicFont] = FontEncodings[fallbackFont] + } + + boldFont := Font{ + Family: customFontFamily, + Style: FONT_STYLE_BOLD, + } + if boldTTF != nil { + err := AddFontStyle(boldFont, FONT_STYLE_BOLD, boldTTF) + if err != nil { + return nil, err + } + } else { + fallbackFont := Font{ + Family: SourceSansPro, + Style: FONT_STYLE_BOLD, + } + FontFaces[boldFont] = FontFaces[fallbackFont] + FontEncodings[boldFont] = FontEncodings[fallbackFont] + } + + FontFamilies = append(FontFamilies, customFontFamily) + + return &customFontFamily, nil +} diff --git a/e2etests-cli/RockSalt-Regular.ttf b/e2etests-cli/RockSalt-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0f72fe6d929b63add1cfa633cc499328c1224647 GIT binary patch literal 119328 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�r6`tL4zQORM|!lUWoF`PS&qU8I@jPM^zz&nwE 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 z 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

PKpMpZ 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 P8F~iQ$_rL+ih} b: italic font +`) + err := runTestMain(t, ctx, dir, env, "--font-bold=./RockSalt-Regular.ttf", "font.d2") + assert.Success(t, err) + svg := readFile(t, dir, "font.svg") + assert.Testdata(t, ".svg", svg) + }, + }, { name: "incompatible-animation", run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) { diff --git a/e2etests-cli/testdata/TestCLI_E2E/with-font.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/with-font.exp.svg new file mode 100644 index 000000000..8a25746ac --- /dev/null +++ b/e2etests-cli/testdata/TestCLI_E2E/with-font.exp.svg @@ -0,0 +1,102 @@ +Why do computers get sick often?Because their Windows are always open! italic font + + +