diff --git a/reader/rewrite/rewrite_functions.go b/reader/rewrite/rewrite_functions.go index 9ed36ca0..1d34a6ea 100644 --- a/reader/rewrite/rewrite_functions.go +++ b/reader/rewrite/rewrite_functions.go @@ -342,25 +342,26 @@ func removeTables(entryContent string) string { return entryContent } - var table *goquery.Selection + selectors := []string{"table", "tbody", "thead", "td", "th", "td"} - for { - table = doc.Find("table").First() + var loopElement *goquery.Selection - if table.Length() == 0 { - break + for _, selector := range selectors { + for { + loopElement = doc.Find(selector).First() + + if loopElement.Length() == 0 { + break + } + + innerHtml, err := loopElement.Html() + if err != nil { + break + } + + loopElement.Parent().AppendHtml(innerHtml) + loopElement.Remove() } - - td := table.Find("td").First() - - if td.Length() == 0 { - break - } - - tdHtml, _ := td.Html() - - table.Parent().AppendHtml(tdHtml) - table.Remove() } output, _ := doc.Find("body").First().Html() diff --git a/reader/rewrite/rewriter_test.go b/reader/rewrite/rewriter_test.go index 8f8aeb0a..7d3306b1 100644 --- a/reader/rewrite/rewriter_test.go +++ b/reader/rewrite/rewriter_test.go @@ -327,8 +327,8 @@ func TestRewriteBase64DecodeArgs(t *testing.T) { } func TestRewriteRemoveTables(t *testing.T) { - content := `

Test

Hello World!
` - expected := `

Test

Hello World!` + content := `

Test

Hello World!

Test

` + expected := `

Test

Hello World!

Test

` output := Rewriter("https://example.org/article", content, `remove_tables`) if expected != output {