diff --git a/cmd/docgen/docgen.go b/cmd/docgen/docgen.go index cd035390..148867ce 100644 --- a/cmd/docgen/docgen.go +++ b/cmd/docgen/docgen.go @@ -276,5 +276,8 @@ func render(input string) (string, error) { if err := tmpl.Execute(&buf, nil); err != nil { return "", err } - return buf.String(), nil + output := buf.String() + output = strings.ReplaceAll(output, "{", "\\{") + output = strings.ReplaceAll(output, "}", "\\}") + return output, nil } diff --git a/cmd/docgen/docgen_test.go b/cmd/docgen/docgen_test.go index a07b081b..609a6801 100644 --- a/cmd/docgen/docgen_test.go +++ b/cmd/docgen/docgen_test.go @@ -171,3 +171,30 @@ func TestNewDocsCommand(t *testing.T) { return NewCommand(clients) }) } + +func Test_render(t *testing.T) { + tests := map[string]struct { + input string + expected string + }{ + "escapes curly braces for MDX compatibility": { + input: "Single arg starting with { or [: JSON", + expected: "Single arg starting with \\{ or [: JSON", + }, + "escapes closing curly braces": { + input: "view={...}", + expected: "view=\\{...\\}", + }, + "leaves text without unexpected characters unchanged": { + input: "No unexpected characters here", + expected: "No unexpected characters here", + }, + } + for name, tc := range tests { + t.Run(name, func(t *testing.T) { + result, err := render(tc.input) + require.NoError(t, err) + assert.Equal(t, tc.expected, result) + }) + } +} diff --git a/docs/reference/commands/slack_api.md b/docs/reference/commands/slack_api.md index bc134042..b50fa875 100644 --- a/docs/reference/commands/slack_api.md +++ b/docs/reference/commands/slack_api.md @@ -11,7 +11,7 @@ Parameters are passed as key=value pairs, a JSON body, or via flags. Body format is auto-detected from positional arguments: - Multiple key=value args: form-encoded (token in request body) - - Single arg starting with { or [: JSON (Bearer token in header) + - Single arg starting with \{ or [: JSON (Bearer token in header) - No args: token sent in Authorization header Use --json to explicitly send a JSON body, or --data for a form-encoded body string.