...
1 package d2cli
2
3 import (
4 "path/filepath"
5 )
6
7 type exportExtension string
8
9 const GIF exportExtension = ".gif"
10 const PNG exportExtension = ".png"
11 const PPTX exportExtension = ".pptx"
12 const PDF exportExtension = ".pdf"
13 const SVG exportExtension = ".svg"
14
15 var SUPPORTED_EXTENSIONS = []exportExtension{SVG, PNG, PDF, PPTX, GIF}
16
17 func getExportExtension(outputPath string) exportExtension {
18 ext := filepath.Ext(outputPath)
19 for _, kext := range SUPPORTED_EXTENSIONS {
20 if kext == exportExtension(ext) {
21 return exportExtension(ext)
22 }
23 }
24
25 return exportExtension(SVG)
26 }
27
28 func (ex exportExtension) supportsAnimation() bool {
29 return ex == SVG || ex == GIF
30 }
31
32 func (ex exportExtension) requiresAnimationInterval() bool {
33 return ex == GIF
34 }
35
36 func (ex exportExtension) requiresPNGRenderer() bool {
37 return ex == PNG || ex == PDF || ex == PPTX || ex == GIF
38 }
39
40 func (ex exportExtension) supportsDarkTheme() bool {
41 return ex == SVG
42 }
43
View as plain text