Merge pull request #2479 from melsonic/issue-2377
feat: support for --omit-version flag
This commit is contained in:
commit
b8695b7d20
5 changed files with 49 additions and 5 deletions
|
|
@ -16,6 +16,7 @@
|
|||
- CLI:
|
||||
- Support `validate` command. [#2415](https://github.com/terrastruct/d2/pull/2415)
|
||||
- Watch mode ignores backup files (e.g. files created by certain editors like Helix). [#2131](https://github.com/terrastruct/d2/issues/2131)
|
||||
- Support for `--omit-version` flag. [#2377](https://github.com/terrastruct/d2/issues/2377)
|
||||
- Compiler:
|
||||
- `link`s can be set to root path, e.g. `/xyz`. [#2357](https://github.com/terrastruct/d2/issues/2357)
|
||||
- Parser:
|
||||
|
|
|
|||
|
|
@ -148,6 +148,9 @@ Set the output format when writing to stdout. Supported formats are: png, svg. O
|
|||
.It Fl -no-xml-tag Ar false
|
||||
Omit XML tag (<?xml ...?>) from output SVG files. Useful when generating SVGs for direct HTML embedding
|
||||
.Ns .
|
||||
.It Fl -omit-version Ar false
|
||||
omit D2 version from generated image
|
||||
.Ns .
|
||||
.El
|
||||
.Sh SUBCOMMANDS
|
||||
.Bl -tag -width Fl
|
||||
|
|
@ -218,6 +221,8 @@ See --browser flag.
|
|||
See --stdout-format flag.
|
||||
.It Ev Sy D2_NO_XML_TAG
|
||||
See --no-xml-tag flag.
|
||||
.It Ev Sy OMIT_VERSION
|
||||
See --omit-version
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr d2plugin-tala 1
|
||||
|
|
|
|||
|
|
@ -136,6 +136,11 @@ func Run(ctx context.Context, ms *xmain.State) (err error) {
|
|||
|
||||
saltFlag := ms.Opts.String("", "salt", "", "", "Add a salt value to ensure the output uses unique IDs. This is useful when generating multiple identical diagrams to be included in the same HTML doc, so that duplicate IDs do not cause invalid HTML. The salt value is a string that will be appended to IDs in the output.")
|
||||
|
||||
omitVersionFlag, err := ms.Opts.Bool("OMIT_VERSION", "omit-version", "", false, "omit D2 version from generated image")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
plugins, err := d2plugin.ListPlugins(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -331,6 +336,7 @@ func Run(ctx context.Context, ms *xmain.State) (err error) {
|
|||
Scale: scale,
|
||||
NoXMLTag: noXMLTagFlag,
|
||||
Salt: saltFlag,
|
||||
OmitVersion: omitVersionFlag,
|
||||
}
|
||||
|
||||
if *watchFlag {
|
||||
|
|
@ -884,6 +890,7 @@ func _render(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, opts
|
|||
NoXMLTag: opts.NoXMLTag,
|
||||
Salt: opts.Salt,
|
||||
Scale: scale,
|
||||
OmitVersion: opts.OmitVersion,
|
||||
}
|
||||
svg, err := d2svg.Render(diagram, renderOpts)
|
||||
if err != nil {
|
||||
|
|
@ -978,6 +985,7 @@ func renderPDF(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, opt
|
|||
DarkThemeID: opts.DarkThemeID,
|
||||
ThemeOverrides: opts.ThemeOverrides,
|
||||
DarkThemeOverrides: opts.DarkThemeOverrides,
|
||||
OmitVersion: opts.OmitVersion,
|
||||
}
|
||||
svg, err = d2svg.Render(diagram, renderOpts)
|
||||
if err != nil {
|
||||
|
|
@ -1085,6 +1093,7 @@ func renderPPTX(ctx context.Context, ms *xmain.State, presentation *pptx.Present
|
|||
DarkThemeID: opts.DarkThemeID,
|
||||
ThemeOverrides: opts.ThemeOverrides,
|
||||
DarkThemeOverrides: opts.DarkThemeOverrides,
|
||||
OmitVersion: opts.OmitVersion,
|
||||
}
|
||||
svg, err = d2svg.Render(diagram, renderOpts)
|
||||
if err != nil {
|
||||
|
|
@ -1332,6 +1341,7 @@ func renderPNGsForGIF(ctx context.Context, ms *xmain.State, plugin d2plugin.Plug
|
|||
DarkThemeID: opts.DarkThemeID,
|
||||
ThemeOverrides: opts.ThemeOverrides,
|
||||
DarkThemeOverrides: opts.DarkThemeOverrides,
|
||||
OmitVersion: opts.OmitVersion,
|
||||
}
|
||||
svg, err = d2svg.Render(diagram, renderOpts)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -93,9 +93,10 @@ type RenderOpts struct {
|
|||
|
||||
// MasterID is passed when the diagram should use something other than its own hash for unique targeting
|
||||
// Currently, that's when multi-boards are collapsed
|
||||
MasterID string
|
||||
NoXMLTag *bool
|
||||
Salt *string
|
||||
MasterID string
|
||||
NoXMLTag *bool
|
||||
Salt *string
|
||||
OmitVersion *bool
|
||||
}
|
||||
|
||||
func dimensions(diagram *d2target.Diagram, pad int) (left, top, width, height int) {
|
||||
|
|
@ -2629,8 +2630,12 @@ func Render(diagram *d2target.Diagram, opts *RenderOpts) ([]byte, error) {
|
|||
tag := "g"
|
||||
// Many things change when this is rendering for animation
|
||||
if opts.MasterID == "" {
|
||||
fitToScreenWrapperOpening = fmt.Sprintf(`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="%s" preserveAspectRatio="%s meet" viewBox="0 0 %d %d"%s>`,
|
||||
version.Version,
|
||||
dataD2Version := ""
|
||||
if opts.OmitVersion == nil || !*opts.OmitVersion {
|
||||
dataD2Version = fmt.Sprintf(`data-d2-version="%s"`, version.Version)
|
||||
}
|
||||
fitToScreenWrapperOpening = fmt.Sprintf(`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" %s preserveAspectRatio="%s meet" viewBox="0 0 %d %d"%s>`,
|
||||
dataD2Version,
|
||||
alignment,
|
||||
w, h,
|
||||
dimensions,
|
||||
|
|
|
|||
|
|
@ -1362,6 +1362,29 @@ c
|
|||
assert.Error(t, err)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "omit-version",
|
||||
run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) {
|
||||
writeFile(t, dir, "test.d2", `x -> y`)
|
||||
err := runTestMain(t, ctx, dir, env, "--omit-version", "test.d2", "no-version.svg")
|
||||
assert.Success(t, err)
|
||||
noVersionSvg := readFile(t, dir, "no-version.svg")
|
||||
assert.False(t, strings.Contains(string(noVersionSvg), "data-d2-version="))
|
||||
|
||||
writeFile(t, dir, "test.d2", `x -> y`)
|
||||
err = runTestMain(t, ctx, dir, env, "test.d2", "with-version.svg")
|
||||
assert.Success(t, err)
|
||||
withVersionSvg := readFile(t, dir, "with-version.svg")
|
||||
assert.True(t, strings.Contains(string(withVersionSvg), "data-d2-version="))
|
||||
|
||||
env.Setenv("OMIT_VERSION", "1")
|
||||
writeFile(t, dir, "test.d2", `x -> y`)
|
||||
err = runTestMain(t, ctx, dir, env, "test.d2", "no-version-env.svg")
|
||||
assert.Success(t, err)
|
||||
noVersionEnvSvg := readFile(t, dir, "no-version-env.svg")
|
||||
assert.False(t, strings.Contains(string(noVersionEnvSvg), "data-d2-version="))
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
|
|
|
|||
Loading…
Reference in a new issue