Implemented Markdown escaping for render output
All checks were successful
ci/woodpecker/tag/release Pipeline was successful
All checks were successful
ci/woodpecker/tag/release Pipeline was successful
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user