فهرست منبع

Keep other table rows and columns

Jake Walker 3 سال پیش
والد
کامیت
8b6dd3e599
2فایلهای تغییر یافته به همراه17 افزوده شده و 16 حذف شده
  1. 15 14
      reader/rewrite/rewrite_functions.go
  2. 2 2
      reader/rewrite/rewriter_test.go

+ 15 - 14
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
-		}
-
-		td := table.Find("td").First()
+	for _, selector := range selectors {
+		for {
+			loopElement = doc.Find(selector).First()
 
-		if td.Length() == 0 {
-			break
-		}
+			if loopElement.Length() == 0 {
+				break
+			}
 
-		tdHtml, _ := td.Html()
+			innerHtml, err := loopElement.Html()
+			if err != nil {
+				break
+			}
 
-		table.Parent().AppendHtml(tdHtml)
-		table.Remove()
+			loopElement.Parent().AppendHtml(innerHtml)
+			loopElement.Remove()
+		}
 	}
 
 	output, _ := doc.Find("body").First().Html()

+ 2 - 2
reader/rewrite/rewriter_test.go

@@ -327,8 +327,8 @@ func TestRewriteBase64DecodeArgs(t *testing.T) {
 }
 
 func TestRewriteRemoveTables(t *testing.T) {
-	content := `<table class="container"><tbody><tr><td><p>Test</p><table class="row"><tbody><tr><td>Hello World!</td></tr></tbody></table></td></tr></tbody></table>`
-	expected := `<p>Test</p>Hello World!`
+	content := `<table class="container"><tbody><tr><td><p>Test</p><table class="row"><tbody><tr><td><p>Hello World!</p></td><td><p>Test</p></td></tr></tbody></table></td></tr></tbody></table>`
+	expected := `<p>Test</p><p>Hello World!</p><p>Test</p>`
 	output := Rewriter("https://example.org/article", content, `remove_tables`)
 
 	if expected != output {