Skip to content

Commit 5151dcd

Browse files
committed
fix: Preserve emoji indentation in GitLab markdown
1 parent d40da16 commit 5151dcd

2 files changed

Lines changed: 12 additions & 11 deletions

File tree

internal/output/markdown.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ func sortedKeys[V any](m map[string]V) []string {
4343
}
4444

4545
func writeEmojiEntry(sb *strings.Builder, emoji, body string) {
46-
// Keep each entry on a separate rendered markdown line without dash bullets.
47-
sb.WriteString(" ")
46+
// GitLab markdown collapses leading spaces in normal paragraphs, so use
47+
// non-breaking spaces for visible indentation and a hard line break suffix.
48+
sb.WriteString("  ")
4849
sb.WriteString(emoji)
4950
sb.WriteString(" ")
5051
sb.WriteString(body)
@@ -113,7 +114,7 @@ func renderTeamMarkdown(result diff.DiffResult) string {
113114

114115
// Config changes (global scope)
115116
if len(result.Config) > 0 {
116-
sb.WriteString("**Config:**\n")
117+
sb.WriteString("**Config:** \n")
117118
for _, c := range result.Config {
118119
if c.Old == "" {
119120
writeEmojiEntry(&sb, "➕", fmt.Sprintf("`%s.%s` = `%s`", c.Section, c.Key, c.New))
@@ -144,7 +145,7 @@ func renderResourceMarkdown(name string, rd diff.ResourceDiff) string {
144145
}
145146

146147
var sb strings.Builder
147-
sb.WriteString(fmt.Sprintf("**%s:**\n", name))
148+
sb.WriteString(fmt.Sprintf("**%s:** \n", name))
148149

149150
for _, c := range rd.Added {
150151
entry := fmt.Sprintf("`%s`", c.Name)

internal/output/markdown_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func TestRenderDiffMarkdown(t *testing.T) {
5050
wantAll: []string{
5151
"### Workstations",
5252
"**Policies:**",
53-
"\n ➕",
53+
"  ➕",
5454
"`[macOS] FileVault`",
5555
"1 added",
5656
},
@@ -79,7 +79,7 @@ func TestRenderDiffMarkdown(t *testing.T) {
7979
}},
8080
wantAll: []string{
8181
"`Disk Usage`",
82-
"\n 🔶",
82+
"  🔶",
8383
"`interval`",
8484
"`3600`",
8585
"`7200`",
@@ -94,7 +94,7 @@ func TestRenderDiffMarkdown(t *testing.T) {
9494
Deleted: []diff.ResourceChange{{Name: "OldApp", Warning: "in use by 10 hosts"}},
9595
},
9696
}},
97-
wantAll: []string{"`OldApp`", "\n ❌", "⚠️", "in use by 10 hosts"},
97+
wantAll: []string{"`OldApp`", "  ❌", "⚠️", "in use by 10 hosts"},
9898
wantNone: []string{"\n- ❌"},
9999
},
100100
{
@@ -103,7 +103,7 @@ func TestRenderDiffMarkdown(t *testing.T) {
103103
Team: "BadTeam",
104104
Errors: []string{"parse error in team YAML"},
105105
}},
106-
wantAll: []string{"parse error in team YAML", "\n ⚠️"},
106+
wantAll: []string{"parse error in team YAML", "  ⚠️"},
107107
wantNone: []string{"**WARNING**", "\n- ⚠️"},
108108
},
109109
{
@@ -117,8 +117,8 @@ func TestRenderDiffMarkdown(t *testing.T) {
117117
}},
118118
wantAll: []string{
119119
"### Labels",
120-
"\n 🏷️",
121-
"\n 🚫",
120+
"  🏷️",
121+
"  🚫",
122122
"`x86-64`",
123123
"100 hosts",
124124
"`Ghost Label`",
@@ -152,7 +152,7 @@ func TestRenderDiffMarkdown(t *testing.T) {
152152
}},
153153
wantAll: []string{
154154
"**Policies:**", "**Queries:**", "**Software:**", "**Profiles:**",
155-
"\n ➕", "\n 🔶", "\n ❌",
155+
"  ➕", "  🔶", "  ❌",
156156
},
157157
wantNone: []string{"\n- ➕", "\n- 🔶", "\n- ❌"},
158158
},

0 commit comments

Comments
 (0)