package svgtemplate import ( "io" "os" "path/filepath" "text/template" ) const svgTemplate = ` ` var tmpl = template.Must( template.New("svg").Funcs(template.FuncMap{ "appendBleed": func(bleed, mark float64) float64 { return bleed + mark }, "add": func(a, b float64) float64 { return a + b }, "addThree": func(a, b, c float64) float64 { return a + b + c }, }).Parse(svgTemplate), ) // Write renders the SVG template to w. func Write(w io.Writer, data Data) error { return tmpl.Execute(w, data) } // OutputDir is the directory where generated SVG files are written. const OutputDir = "svg_template" // WriteFile renders the SVG template into OutputDir. func WriteFile(path string, data Data) error { outPath := filepath.Join(OutputDir, filepath.Base(filepath.Clean(path))) if err := os.MkdirAll(OutputDir, 0o755); err != nil { return err } file, err := os.Create(outPath) if err != nil { return err } defer file.Close() if err := Write(file, data); err != nil { return err } return file.Close() }