turndown-plugin-gfm icon indicating copy to clipboard operation
turndown-plugin-gfm copied to clipboard

Converting empty table with caption throws an error

Open postatum opened this issue 6 years ago • 1 comments
trafficstars

Hi. Thanks for a great library and plugin! :apple:

[email protected] [email protected]

This code produces an error. Removing <caption> from <table> makes the code work fine.

const TurndownService = require('turndown')
const turndownPluginGfm = require('turndown-plugin-gfm')

const turndownService = new TurndownService()
turndownService.use(turndownPluginGfm.gfm)

console.log(turndownService.turndown(`
  <html>
    <head>
      <title></title>
    </head>
    <body>
      <h1>something</h1>
      <table>
        <caption>Foo</caption>
      </table>
    </body>
  </html>`))
/test_proj/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.cjs.js:100
  var parentNode = tr.parentNode;
                      ^

TypeError: Cannot read property 'parentNode' of undefined
    at isHeadingRow (/test_proj/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.cjs.js:100:23)
    at Object.filter (/test_proj/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.cjs.js:77:41)
    at filterValue (/test_proj/node_modules/turndown/lib/turndown.cjs.js:364:16)
    at findRule (/test_proj/node_modules/turndown/lib/turndown.cjs.js:352:9)
    at Rules.forNode (/test_proj/node_modules/turndown/lib/turndown.cjs.js:337:17)
    at TurndownService.replacementForNode (/test_proj/node_modules/turndown/lib/turndown.cjs.js:823:25)
    at /test_proj/node_modules/turndown/lib/turndown.cjs.js:788:40
    at Proxy.reduce (<anonymous>)
    at TurndownService.process (/test_proj/node_modules/turndown/lib/turndown.cjs.js:781:17)
    at TurndownService.turndown (/test_proj/node_modules/turndown/lib/turndown.cjs.js:693:26)

postatum avatar Oct 01 '19 09:10 postatum

Created pull request #31 for this bug

guyplusplus avatar Apr 21 '21 14:04 guyplusplus