From 33b7fbaa9ec3f8e9f9d9f82f438ef45ff3dd18e6 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 27 Nov 2022 22:52:48 -0800 Subject: [PATCH] 2022-11-27 10:52:48PM --- d2renderers/d2latex/latex.go | 7 +++++-- d2renderers/d2latex/latex_test.go | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/d2renderers/d2latex/latex.go b/d2renderers/d2latex/latex.go index 574a8f4ed..2de4ae670 100644 --- a/d2renderers/d2latex/latex.go +++ b/d2renderers/d2latex/latex.go @@ -9,6 +9,7 @@ import ( "regexp" "strconv" + "oss.terrastruct.com/xdefer" v8 "rogchap.com/v8go" ) @@ -23,7 +24,8 @@ var mathjaxJS string var svgRe = regexp.MustCompile(`]+width="([0-9\.]+)ex" height="([0-9\.]+)ex"[^>]+>`) -func Render(s string) (string, error) { +func Render(s string) (_ string, err error) { + defer xdefer.Errorf(&err, "latex failed to parse") v8ctx := v8.NewContext() if _, err := v8ctx.RunScript(polyfillsJS, "polyfills.js"); err != nil { @@ -49,7 +51,8 @@ func Render(s string) (string, error) { return val.String(), nil } -func Measure(s string) (width, height int, _ error) { +func Measure(s string) (width, height int, err error) { + defer xdefer.Errorf(&err, "latex failed to parse") svg, err := Render(s) if err != nil { return 0, 0, err diff --git a/d2renderers/d2latex/latex_test.go b/d2renderers/d2latex/latex_test.go index 7f87ef742..134184f84 100644 --- a/d2renderers/d2latex/latex_test.go +++ b/d2renderers/d2latex/latex_test.go @@ -21,3 +21,10 @@ func TestRender(t *testing.T) { } } } + +func TestRenderError(t *testing.T) { + _, err := Render(`\frac{1}{2}`) + if err == nil { + t.Fatal(err) + } +}