From 9cd4bbdb03614eb1ea0185e8fa8267760d47a84c Mon Sep 17 00:00:00 2001 From: Johannes Kaufmann Date: Sun, 13 Jun 2021 20:50:30 +0200 Subject: [PATCH] fix link title w. quote, multiple headings in link --- commonmark.go | 3 +++ testdata/TestCommonmark/link/input.html | 19 +++++++++++++++++++ .../TestCommonmark/link/output.inlined.golden | 6 +++++- .../link/output.referenced_collapsed.golden | 8 +++++++- .../link/output.referenced_full.golden | 8 +++++++- .../link/output.referenced_shortcut.golden | 8 +++++++- .../link/output.relative.golden | 6 +++++- 7 files changed, 53 insertions(+), 5 deletions(-) diff --git a/commonmark.go b/commonmark.go index 0a8f89b..88071d1 100644 --- a/commonmark.go +++ b/commonmark.go @@ -115,6 +115,7 @@ var commonmark = []Rule{ insideLink := selec.ParentsFiltered("a").Length() > 0 if insideLink { text := opt.StrongDelimiter + content + opt.StrongDelimiter + text = AddSpaceIfNessesary(selec, text) return &text } @@ -219,6 +220,8 @@ var commonmark = []Rule{ var title string if t, ok := selec.Attr("title"); ok { t = strings.Replace(t, "\n", " ", -1) + // escape all quotes + t = strings.Replace(t, `"`, `\"`, -1) title = fmt.Sprintf(` "%s"`, t) } diff --git a/testdata/TestCommonmark/link/input.html b/testdata/TestCommonmark/link/input.html index b7af123..21b0816 100644 --- a/testdata/TestCommonmark/link/input.html +++ b/testdata/TestCommonmark/link/input.html @@ -82,3 +82,22 @@

BeforecloseAfter


+ + + + +

Heading A

+

Heading B

+
+
+ + + + + DIW-Chef zum Grünen-Programm + "Vermögenssteuer ist aus wirtschaftlicher Sicht klug" + +
diff --git a/testdata/TestCommonmark/link/output.inlined.golden b/testdata/TestCommonmark/link/output.inlined.golden index 754a072..c030f4f 100644 --- a/testdata/TestCommonmark/link/output.inlined.golden +++ b/testdata/TestCommonmark/link/output.inlined.golden @@ -25,4 +25,8 @@ Second Text](http://multi.org/) [first left](http://first_next.com) [second right](http://second_next.com) -Before [close](http://example_close.com) After \ No newline at end of file +Before [close](http://example_close.com) After + +[**Heading A** **Heading B**](http://example.com/page.html) + +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"](http://example.com/page.html "\"Vermögenssteuer ist aus wirtschaftlicher Sicht klug\"") \ No newline at end of file diff --git a/testdata/TestCommonmark/link/output.referenced_collapsed.golden b/testdata/TestCommonmark/link/output.referenced_collapsed.golden index 41346ff..6aa799b 100644 --- a/testdata/TestCommonmark/link/output.referenced_collapsed.golden +++ b/testdata/TestCommonmark/link/output.referenced_collapsed.golden @@ -27,6 +27,10 @@ Second Text][] Before [close][] After +[**Heading A** **Heading B**][] + +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"][] + [Simple Absolute Link]: http://simple.org/ [Simple Relative Link]: http://example.com/page.html [Link with Space]: http://space.org/ @@ -45,4 +49,6 @@ Second Text]: http://list.org/ [second below]: http://second_under.com [first left]: http://first_next.com [second right]: http://second_next.com -[close]: http://example_close.com \ No newline at end of file +[close]: http://example_close.com +[**Heading A** **Heading B**]: http://example.com/page.html +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"]: http://example.com/page.html "\"Vermögenssteuer ist aus wirtschaftlicher Sicht klug\"" \ No newline at end of file diff --git a/testdata/TestCommonmark/link/output.referenced_full.golden b/testdata/TestCommonmark/link/output.referenced_full.golden index 3cbda34..49e5dc9 100644 --- a/testdata/TestCommonmark/link/output.referenced_full.golden +++ b/testdata/TestCommonmark/link/output.referenced_full.golden @@ -27,6 +27,10 @@ Second Text][7] Before [close][14] After +[**Heading A** **Heading B**][15] + +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"][16] + [1]: http://simple.org/ [2]: http://example.com/page.html [3]: http://space.org/ @@ -40,4 +44,6 @@ Before [close][14] After [11]: http://second_under.com [12]: http://first_next.com [13]: http://second_next.com -[14]: http://example_close.com \ No newline at end of file +[14]: http://example_close.com +[15]: http://example.com/page.html +[16]: http://example.com/page.html "\"Vermögenssteuer ist aus wirtschaftlicher Sicht klug\"" \ No newline at end of file diff --git a/testdata/TestCommonmark/link/output.referenced_shortcut.golden b/testdata/TestCommonmark/link/output.referenced_shortcut.golden index 662fd7c..852b1bc 100644 --- a/testdata/TestCommonmark/link/output.referenced_shortcut.golden +++ b/testdata/TestCommonmark/link/output.referenced_shortcut.golden @@ -27,6 +27,10 @@ Second Text] Before [close] After +[**Heading A** **Heading B**] + +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"] + [Simple Absolute Link]: http://simple.org/ [Simple Relative Link]: http://example.com/page.html [Link with Space]: http://space.org/ @@ -45,4 +49,6 @@ Second Text]: http://list.org/ [second below]: http://second_under.com [first left]: http://first_next.com [second right]: http://second_next.com -[close]: http://example_close.com \ No newline at end of file +[close]: http://example_close.com +[**Heading A** **Heading B**]: http://example.com/page.html +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"]: http://example.com/page.html "\"Vermögenssteuer ist aus wirtschaftlicher Sicht klug\"" \ No newline at end of file diff --git a/testdata/TestCommonmark/link/output.relative.golden b/testdata/TestCommonmark/link/output.relative.golden index f3d0f0b..6318cb5 100644 --- a/testdata/TestCommonmark/link/output.relative.golden +++ b/testdata/TestCommonmark/link/output.relative.golden @@ -25,4 +25,8 @@ Second Text](http://multi.org/) [first left](http://first_next.com) [second right](http://second_next.com) -Before [close](http://example_close.com) After \ No newline at end of file +Before [close](http://example_close.com) After + +[**Heading A** **Heading B**](/page.html) + +[DIW-Chef zum Grünen-Programm "Vermögenssteuer ist aus wirtschaftlicher Sicht klug"](/page.html "\"Vermögenssteuer ist aus wirtschaftlicher Sicht klug\"") \ No newline at end of file