Implemented Markdown escaping for render output
All checks were successful
ci/woodpecker/tag/release Pipeline was successful

This commit is contained in:
2026-05-24 18:13:05 -05:00
parent 0dfd06c349
commit 0fc92f3643
2 changed files with 77 additions and 6 deletions

View File

@@ -108,6 +108,48 @@ func TestMarkdownRendererMetadataOnlyWhenRequested(t *testing.T) {
}
}
func TestMarkdownRendererEscapesUserProvidedMarkdown(t *testing.T) {
transcript := Transcript{
Schema: "seriatim-intermediate",
Metadata: Metadata{
Application: "seriatim *cli*",
Version: "v[test]",
},
Segments: []Segment{
{
ID: 1,
Start: 1,
End: 2,
Speaker: "Dr. *A_[1]",
Text: "Use *literal* [link](target) and `code` \\ slash!",
},
{
ID: 2,
Start: 2,
End: 3,
Speaker: "Narrator",
Text: "_aside_ with | pipe",
Categories: []string{"background"},
},
},
}
output, err := MarkdownRenderer{}.Render(transcript, Options{
Title: "# Planning [notes]",
IncludeTimestamps: false,
IncludeMetadata: true,
})
if err != nil {
t.Fatalf("render markdown: %v", err)
}
assertContains(t, output, "# \\# Planning \\[notes\\]")
assertContains(t, output, "- Application: seriatim \\*cli\\*")
assertContains(t, output, "- Version: v\\[test\\]")
assertContains(t, output, "**Dr. \\*A\\_\\[1\\]:** Use \\*literal\\* \\[link\\]\\(target\\) and \\`code\\` \\\\ slash\\!")
assertContains(t, output, "**Narrator:** *\\_aside\\_ with \\| pipe*")
}
func TestMarkdownRendererCategoryHintItalicsAndUnknownCategories(t *testing.T) {
transcript := Transcript{
Segments: []Segment{
@@ -176,3 +218,10 @@ func TestMarkdownRendererIsDeterministic(t *testing.T) {
t.Fatalf("expected HH:MM:SS timestamp formatting:\n%s", first)
}
}
func assertContains(t *testing.T, value string, want string) {
t.Helper()
if !strings.Contains(value, want) {
t.Fatalf("expected output to contain %q:\n%s", want, value)
}
}