From 737b9239f8421dbad3e1474308e9fcc63020a976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20R=C3=BCger?= Date: Wed, 30 Aug 2023 14:50:53 +0200 Subject: [PATCH] feat: Allow scaling of mermaid rendering --- README.md | 1 + go.mod | 14 +++++++------- go.sum | 39 +++++++++++++++------------------------ main.go | 10 ++++++++-- pkg/mark/markdown.go | 10 ++++++---- pkg/mark/markdown_test.go | 2 +- pkg/mark/mermaid.go | 4 ++-- pkg/mark/mermaid_test.go | 5 +++-- 8 files changed, 43 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 81c7d87e..cf1ea3dd 100644 --- a/README.md +++ b/README.md @@ -765,6 +765,7 @@ GLOBAL OPTIONS: --parents value A list containing the parents of the document separated by parents-delimiter (default: '/'). These will be preprended to the ones defined in the document itself. [$MARK_PARENTS] --parents-delimiter value The delimiter used for the nested parent (default: "/") [$MARK_PARENTS_DELIMITER] --mermaid-provider value defines the mermaid provider to use. Supported options are: cloudscript, mermaid-go. (default: "cloudscript") [$MARK_MERMAID_PROVIDER] + --mermaid-scale value defines the scaling factor for mermaid renderings. (default: 1) [$MARK_MERMAID_SCALE] --help, -h show help --version, -v print the version ``` diff --git a/go.mod b/go.mod index e5546679..f4e6e4f8 100644 --- a/go.mod +++ b/go.mod @@ -3,34 +3,34 @@ module github.com/kovetskiy/mark go 1.19 require ( - github.com/dreampuf/mermaid.go v0.0.12-0.20230731032734-dba0c2677d8c + github.com/dreampuf/mermaid.go v0.0.12 github.com/kovetskiy/gopencils v0.0.0-20230119081704-a73db75b2f69 github.com/kovetskiy/lorg v1.2.0 github.com/reconquest/karma-go v1.2.0 - github.com/reconquest/pkg v1.3.0 + github.com/reconquest/pkg v1.3.1-0.20230331080542-242a3690a7bc github.com/reconquest/regexputil-go v0.0.0-20160905154124-38573e70c1f4 github.com/stretchr/testify v1.8.4 github.com/urfave/cli/v2 v2.25.7 - github.com/yuin/goldmark v1.5.5 + github.com/yuin/goldmark v1.5.6 golang.org/x/tools v0.12.0 gopkg.in/yaml.v3 v3.0.1 ) require ( github.com/BurntSushi/toml v1.3.2 // indirect - github.com/chromedp/cdproto v0.0.0-20230722233645-dbf72f61037f // indirect - github.com/chromedp/chromedp v0.9.1 // indirect + github.com/chromedp/cdproto v0.0.0-20230816033919-17ee49f3eb4f // indirect + github.com/chromedp/chromedp v0.9.3-0.20230819034837-d11f1305b56f // indirect github.com/chromedp/sysutil v1.0.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/gobwas/httphead v0.1.0 // indirect github.com/gobwas/pool v0.2.1 // indirect - github.com/gobwas/ws v1.1.0 // indirect + github.com/gobwas/ws v1.2.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/reconquest/cog v0.0.0-20210820140837-c5c4e8f49c65 // indirect + github.com/reconquest/cog v0.0.0-20230331074503-900980efda0b // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/zazab/zhash v0.0.0-20210630080733-6e809466f8d3 // indirect diff --git a/go.sum b/go.sum index 0301f83a..f3b82605 100644 --- a/go.sum +++ b/go.sum @@ -1,32 +1,29 @@ -github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/chromedp/cdproto v0.0.0-20230220211738-2b1ec77315c9/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= -github.com/chromedp/cdproto v0.0.0-20230722233645-dbf72f61037f h1:ljpWjHX/BhkOLdQs6q02bmGJFwel98RHPTKPIKrK+0k= -github.com/chromedp/cdproto v0.0.0-20230722233645-dbf72f61037f/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= -github.com/chromedp/chromedp v0.9.1 h1:CC7cC5p1BeLiiS2gfNNPwp3OaUxtRMBjfiw3E3k6dFA= -github.com/chromedp/chromedp v0.9.1/go.mod h1:DUgZWRvYoEfgi66CgZ/9Yv+psgi+Sksy5DTScENWjaQ= +github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/cdproto v0.0.0-20230816033919-17ee49f3eb4f h1:v7OMnSAQ5JMloUZ8ocuHetMXouJSM96MFHd/xa3Ibb0= +github.com/chromedp/cdproto v0.0.0-20230816033919-17ee49f3eb4f/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/chromedp v0.9.3-0.20230819034837-d11f1305b56f h1:IqXiO2Zgu2Kl8BGJBr834QCpwmhTqcwoUrM3z9Bw/NY= +github.com/chromedp/chromedp v0.9.3-0.20230819034837-d11f1305b56f/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic= github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dreampuf/mermaid.go v0.0.12-0.20230731032734-dba0c2677d8c h1:XJ2sgF1ZWL4nclIjTipQJmVMwtOZuBmBiViOb3MUNpM= -github.com/dreampuf/mermaid.go v0.0.12-0.20230731032734-dba0c2677d8c/go.mod h1:tY7yAs8zz4zVR1i1RURmDdYt1KSDbP6dM562nTh6V0E= +github.com/dreampuf/mermaid.go v0.0.12 h1:lVQR7jENfhaeILBur/qYSSr/1LOJwpOit3e8BIUizUo= +github.com/dreampuf/mermaid.go v0.0.12/go.mod h1:klgfID5992TUL5hpPuSrhAdoNT+9IdBJ2+jiG5O1cg0= github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= -github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= +github.com/gobwas/ws v1.2.1 h1:F2aeBZrm2NDsc7vbovKrWSogd4wvfAxg0FQ89/iqOTk= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/kovetskiy/gopencils v0.0.0-20230119081704-a73db75b2f69 h1:vn82v0gKhTTm67znr7nxYBNW4mJ8zfY7dywZivUy3tY= github.com/kovetskiy/gopencils v0.0.0-20230119081704-a73db75b2f69/go.mod h1:t7LFI5v8Q5+nl9sqId9PS0C9H9F4c5d4XlhkLve1MCM= -github.com/kovetskiy/lorg v0.0.0-20200107130803-9a7136a95634/go.mod h1:B8HeKAukXULNzWWsW5k/SQyDkiQZPn7lTBJDB46MZ9I= github.com/kovetskiy/lorg v1.2.0 h1:wNIUT/VOhcjKOmizDClZLvchbKFGW+dzf9fQXbSVS5E= github.com/kovetskiy/lorg v1.2.0/go.mod h1:rdiamaIRUCkX9HtFZd0D9dQqUbad21hipHk+sat7Z6s= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -42,32 +39,28 @@ github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzb github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/reconquest/cog v0.0.0-20210820140837-c5c4e8f49c65 h1:IiAAeijD0sU3C6OO9vy/0WUUfRabZ1aH7hijCBteJC4= -github.com/reconquest/cog v0.0.0-20210820140837-c5c4e8f49c65/go.mod h1:iin2k2yhKESAy14B2fXK8gpf1nofl7dTXH5U+VdIlss= -github.com/reconquest/karma-go v0.0.0-20200928103525-22da92476de6/go.mod h1:yuQiKpTdmXSX7E+h+3dD4jx09P/gHc67mRxN3eFLt7o= +github.com/reconquest/cog v0.0.0-20230331074503-900980efda0b h1:bSRchKi3G7DiuT8PDW8bAFfaak8uGKxEzCYN7vvsdqk= +github.com/reconquest/cog v0.0.0-20230331074503-900980efda0b/go.mod h1:Mex8CRMmLSF0LgX9sl0F/CIXp3t5GgMFM1mzzz5QgZ4= github.com/reconquest/karma-go v1.2.0 h1:Z4VMBYWeZPsMWDWUCDvHGL+2M/r759g7UhwKSL2z3i0= github.com/reconquest/karma-go v1.2.0/go.mod h1:52XRXXa2ec/VNrlCirwasdJfNmjI1O87q098gmqILh0= -github.com/reconquest/pkg v1.3.0 h1:Yuoxiw92rP/srKXMo5qSML2InhJ+xAqHJIx3/y/2zh8= -github.com/reconquest/pkg v1.3.0/go.mod h1:hUQ0SzzBlFRSbo6lFYG2tSpLMjqOuUqm2LtpjR/+1sg= +github.com/reconquest/pkg v1.3.1-0.20230331080542-242a3690a7bc h1:iiaYDdb51TCvbFGoo0bch1PNo0285Wv5vDPvBSBT99g= +github.com/reconquest/pkg v1.3.1-0.20230331080542-242a3690a7bc/go.mod h1:P4zc2rqU1DvQHhw8JQejUiQWbuh2I7M5n7eyMu7eSeI= github.com/reconquest/regexputil-go v0.0.0-20160905154124-38573e70c1f4 h1:bcDXaTFC09IIg13Z8gfQHk4gSu001ET7ssW/wKRvPzg= github.com/reconquest/regexputil-go v0.0.0-20160905154124-38573e70c1f4/go.mod h1:OI1di2iiFSwX3D70iZjzdmCPPfssjOl+HX40tI3VaXA= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -github.com/yuin/goldmark v1.5.5 h1:IJznPe8wOzfIKETmMkd06F8nXkmlhaHqFRM9l1hAGsU= -github.com/yuin/goldmark v1.5.5/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.5.6 h1:COmQAWTCcGetChm3Ig7G/t8AFAN00t+o8Mt4cf7JpwA= +github.com/yuin/goldmark v1.5.6/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zazab/zhash v0.0.0-20210630080733-6e809466f8d3 h1:BhVaeQJc3xalHGONn215FylzuxdQBIT3d/aRjDg4nXQ= github.com/zazab/zhash v0.0.0-20210630080733-6e809466f8d3/go.mod h1:NtepZ8TEXErPsmQDMUoN72f8aIy4+xNinSJ3f1giess= -golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -77,7 +70,5 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/main.go b/main.go index 31c1e5cf..3828e1b2 100644 --- a/main.go +++ b/main.go @@ -159,6 +159,12 @@ var flags = []cli.Flag{ Usage: "defines the mermaid provider to use. Supported options are: cloudscript, mermaid-go.", EnvVars: []string{"MARK_MERMAID_PROVIDER"}, }), + altsrc.NewFloat64Flag(&cli.Float64Flag{ + Name: "mermaid-scale", + Value: 1.0, + Usage: "defines the scaling factor for mermaid renderings.", + EnvVars: []string{"MARK_MERMAID_SCALE"}, + }), } func main() { @@ -376,7 +382,7 @@ func processFile( ) } - html, _ := mark.CompileMarkdown(markdown, stdlib, file, cCtx.String("mermaid-provider"), cCtx.Bool("drop-h1")) + html, _ := mark.CompileMarkdown(markdown, stdlib, file, cCtx.String("mermaid-provider"), cCtx.Float64("mermaid-scale"), cCtx.Bool("drop-h1")) fmt.Println(html) os.Exit(0) } @@ -452,7 +458,7 @@ func processFile( ) } - html, inlineAttachments := mark.CompileMarkdown(markdown, stdlib, file, cCtx.String("mermaid-provider"), cCtx.Bool("drop-h1")) + html, inlineAttachments := mark.CompileMarkdown(markdown, stdlib, file, cCtx.String("mermaid-provider"), cCtx.Float64("mermaid-scale"), cCtx.Bool("drop-h1")) // Resolve attachements detected from markdown _, err = mark.ResolveAttachments( diff --git a/pkg/mark/markdown.go b/pkg/mark/markdown.go index d80fbac4..085eb430 100644 --- a/pkg/mark/markdown.go +++ b/pkg/mark/markdown.go @@ -53,18 +53,20 @@ type ConfluenceRenderer struct { Stdlib *stdlib.Lib Path string MermaidProvider string + MermaidScale float64 DropFirstH1 bool LevelMap BlockQuoteLevelMap Attachments []Attachment } // NewConfluenceRenderer creates a new instance of the ConfluenceRenderer -func NewConfluenceRenderer(stdlib *stdlib.Lib, path string, mermaidProvider string, dropFirstH1 bool, opts ...html.Option) renderer.NodeRenderer { +func NewConfluenceRenderer(stdlib *stdlib.Lib, path string, mermaidProvider string, mermaidScale float64, dropFirstH1 bool, opts ...html.Option) renderer.NodeRenderer { return &ConfluenceRenderer{ Config: html.NewConfig(), Stdlib: stdlib, Path: path, MermaidProvider: mermaidProvider, + MermaidScale: mermaidScale, DropFirstH1: dropFirstH1, LevelMap: nil, Attachments: []Attachment{}, @@ -397,7 +399,7 @@ func (r *ConfluenceRenderer) renderFencedCodeBlock(writer util.BufWriter, source } if lang == "mermaid" && r.MermaidProvider == "mermaid-go" { - attachment, err := processMermaidLocally(title, lval) + attachment, err := processMermaidLocally(title, lval, r.MermaidScale) if err != nil { return ast.WalkStop, err } @@ -645,10 +647,10 @@ func (r *ConfluenceRenderer) goldmarkRenderHTMLBlock(w util.BufWriter, source [] return ast.WalkContinue, nil } -func CompileMarkdown(markdown []byte, stdlib *stdlib.Lib, path string, mermaidProvider string, dropFirstH1 bool) (string, []Attachment) { +func CompileMarkdown(markdown []byte, stdlib *stdlib.Lib, path string, mermaidProvider string, mermaidScale float64, dropFirstH1 bool) (string, []Attachment) { log.Tracef(nil, "rendering markdown:\n%s", string(markdown)) - confluenceRenderer := NewConfluenceRenderer(stdlib, path, mermaidProvider, dropFirstH1) + confluenceRenderer := NewConfluenceRenderer(stdlib, path, mermaidProvider, mermaidScale, dropFirstH1) converter := goldmark.New( goldmark.WithExtensions( diff --git a/pkg/mark/markdown_test.go b/pkg/mark/markdown_test.go index e8332513..79edc82c 100644 --- a/pkg/mark/markdown_test.go +++ b/pkg/mark/markdown_test.go @@ -36,7 +36,7 @@ func TestCompileMarkdown(t *testing.T) { if err != nil { panic(err) } - actual, _ := CompileMarkdown(markdown, lib, filename, "", false) + actual, _ := CompileMarkdown(markdown, lib, filename, "", 1.0, false) test.EqualValues(string(html), actual, filename+" vs "+htmlname) } } diff --git a/pkg/mark/mermaid.go b/pkg/mark/mermaid.go index 73df4a55..81b75cb8 100644 --- a/pkg/mark/mermaid.go +++ b/pkg/mark/mermaid.go @@ -11,7 +11,7 @@ import ( var renderTimeout = 60 * time.Second -func processMermaidLocally(title string, mermaidDiagram []byte) (attachement Attachment, err error) { +func processMermaidLocally(title string, mermaidDiagram []byte, scale float64) (attachement Attachment, err error) { ctx, cancel := context.WithTimeout(context.TODO(), renderTimeout) defer cancel() @@ -21,7 +21,7 @@ func processMermaidLocally(title string, mermaidDiagram []byte) (attachement Att return Attachment{}, err } - pngBytes, boxModel, err := renderer.RenderAsPng(string(mermaidDiagram)) + pngBytes, boxModel, err := renderer.RenderAsScaledPng(string(mermaidDiagram), scale) if err != nil { return Attachment{}, err } diff --git a/pkg/mark/mermaid_test.go b/pkg/mark/mermaid_test.go index 13a24c5b..072ce939 100644 --- a/pkg/mark/mermaid_test.go +++ b/pkg/mark/mermaid_test.go @@ -11,10 +11,11 @@ func TestExtractMermaidImage(t *testing.T) { tests := []struct { name string markdown []byte + scale float64 want Attachment wantErr assert.ErrorAssertionFunc }{ - {"example", []byte("graph TD;\n A-->B;"), Attachment{ + {"example", []byte("graph TD;\n A-->B;"), 1.0, Attachment{ // This is only the PNG Magic Header FileBytes: []byte{0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa}, Filename: "example.png", @@ -29,7 +30,7 @@ func TestExtractMermaidImage(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, err := processMermaidLocally(tt.name, tt.markdown) + got, err := processMermaidLocally(tt.name, tt.markdown, tt.scale) if !tt.wantErr(t, err, fmt.Sprintf("processMermaidLocally(%v, %v)", tt.name, string(tt.markdown))) { return }