From c7098d51d8c5f2449ca501be178ac9744c6b453d Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Tue, 6 Jan 2026 20:08:53 +1100 Subject: [PATCH] added fallback --- converter.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/converter.go b/converter.go index 88b4b40..675a68e 100644 --- a/converter.go +++ b/converter.go @@ -5,6 +5,7 @@ import ( "fmt" "html" "math" + "os" "regexp" "sort" "strconv" @@ -27,6 +28,7 @@ type GliffyDiagramConverter struct { } func NewGliffyDiagramConverter(gliffyDiagramString string) (*GliffyDiagramConverter, error) { + customTrans := os.Getenv("GLIFFY_TRANSLATIONS_JSON") c := &GliffyDiagramConverter{ diagramString: gliffyDiagramString, drawioDiagram: NewMxGraph(), @@ -35,7 +37,7 @@ func NewGliffyDiagramConverter(gliffyDiagramString string) (*GliffyDiagramConver rotationPattern: regexp.MustCompile(`rotation=(\-?\w+)`), pageIDPattern: regexp.MustCompile(`pageId=([^&]+)`), namePattern: regexp.MustCompile(`name=([^&]+)`), - translator: NewStencilTranslator(""), + translator: NewStencilTranslator("").WithCustomMapping(customTrans), } if err := c.start(); err != nil { return nil, err @@ -331,6 +333,9 @@ func (c *GliffyDiagramConverter) convertGliffyObject(obj *GliffyObject, parent * isChevron := strings.Contains(obj.UID, "chevron") if translatedStyle != "" { style.WriteString("shape=" + translatedStyle + ";") + } else { + // Fallback if stencil translation is missing: render as a basic rect so the shape is visible. + style.WriteString("shape=rect;") } if !strings.Contains(style.String(), "shadow=") { style.WriteString("shadow=" + intToString(boolToInt(shape.DropShadow)) + ";")