From 1c5165759866c3089b08c94300e617a05f361d56 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 26 Jan 2025 13:55:51 -0700 Subject: [PATCH] base64 encode d2 id, change from id to class name --- d2renderers/d2svg/d2svg.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go index 5c6407294..6b21e51d7 100644 --- a/d2renderers/d2svg/d2svg.go +++ b/d2renderers/d2svg/d2svg.go @@ -5,6 +5,7 @@ package d2svg import ( "bytes" _ "embed" + "encoding/base64" "errors" "fmt" "hash/fnv" @@ -508,7 +509,7 @@ func drawConnection(writer io.Writer, labelMaskID string, connection d2target.Co if len(connection.Classes) > 0 { classStr = fmt.Sprintf(` class="%s"`, strings.Join(connection.Classes, " ")) } - fmt.Fprintf(writer, ``, svg.EscapeText(connection.ID), opacityStyle, classStr) + fmt.Fprintf(writer, ``, base64.URLEncoding.EncodeToString([]byte(svg.EscapeText(connection.ID))), opacityStyle, classStr) var markerStart string if connection.SrcArrow != d2target.NoArrowhead { id := arrowheadMarkerID(false, connection) @@ -984,7 +985,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape if len(targetShape.Classes) > 0 { classStr = fmt.Sprintf(` class="%s"`, strings.Join(targetShape.Classes, " ")) } - fmt.Fprintf(writer, ``, svg.EscapeText(targetShape.ID), opacityStyle, classStr) + fmt.Fprintf(writer, ``, base64.URLEncoding.EncodeToString([]byte(svg.EscapeText(targetShape.ID))), opacityStyle, classStr) tl := geo.NewPoint(float64(targetShape.Pos.X), float64(targetShape.Pos.Y)) width := float64(targetShape.Width) height := float64(targetShape.Height)