...

Source file src/oss.terrastruct.com/d2/d2cli/export.go

Documentation: oss.terrastruct.com/d2/d2cli

     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  	// default is svg
    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