diff --git a/src/tables.js b/src/tables.js
index 39318c3c8..e4fd987af 100644
--- a/src/tables.js
+++ b/src/tables.js
@@ -32,7 +32,12 @@ rules.tableRow = {
}
rules.table = {
- filter: 'table',
+ // Only convert tables with a heading row.
+ // Tables with no heading row are kept using `keep` (see below).
+ filter: function (node) {
+ return node.nodeName === 'TABLE' && isHeadingRow(node.rows[0])
+ },
+
replacement: function (content) {
// Ensure there are no blank lines
content = content.replace('\n\n', '\n')
@@ -85,5 +90,8 @@ function cell (content, node) {
}
export default function tables (turndownService) {
+ turndownService.keep(function (node) {
+ return node.nodeName === 'TABLE' && !isHeadingRow(node.rows[0])
+ })
for (var key in rules) turndownService.addRule(key, rules[key])
}
diff --git a/test/index.html b/test/index.html
index 885f738f0..f14088f61 100644
--- a/test/index.html
+++ b/test/index.html
@@ -151,6 +151,10 @@
-
| Row 1 | Row 1 |
+| Heading 1 | Heading 2 |
+| --- | --- |
+| Row 1 | Row 1 |
| Row 3 | Row 3 |
@@ -233,23 +239,6 @@
| Content |
-
-
-
| Heading | Not a heading |
-| Heading | Not a heading |
-
-