You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Desktop, Cli: Fixed importing invalid tables from ENEX files
This commit is contained in:
		| @@ -7,7 +7,7 @@ | ||||
| <en-note><div>Plain note</div></en-note>]]></content><created>20201223T163948Z</created><updated>20201223T163953Z</updated><note-attributes><author>laurent22777@gmail.com</author><source>desktop.win</source><source-application>evernote.win32</source-application></note-attributes></note><note><title>Note 2</title><content><![CDATA[<?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> | ||||
|  | ||||
| <en-note><div><div><br/></div><table style="border-collapse: collapse; min-width: 100%;"><colgroup><col style="width: 130px;"/><col style="width: 130px;"/><col style="width: 130px;"/></colgroup><tbody><tr<td style="width: 130px; padding: 8px; border: 1px solid;"><div>test</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div>test</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div><br/></div></td></tr><tr><td style="width: 130px; padding: 8px; border: 1px solid;"><div>bl</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div>bla</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div>bla</div></td></tr></tbody></table><div><br/></div></div><div><br/></div></en-note>]]></content><created>20201223T164010Z</created><updated>20201223T164023Z</updated><note-attributes><author>laurent22777@gmail.com</author><source>desktop.win</source><source-application>evernote.win32</source-application></note-attributes></note><note><title>plain note 2</title><content><![CDATA[<?xml version="1.0" encoding="UTF-8"?> | ||||
| <en-note><div><div><br/></div><table style="border-collapse: collapse; min-width: 100%;"><colgroup><col style="width: 130px;"/><col style="width: 130px;"/><col style="width: 130px;"/></colgroup><tbody><tr<td style="width: 130px; padding: 8px; border: 1px solid;"><div>test</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div>test</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div><br/></div></td></tr><tr><td style="width: 130px; padding: 8px; border: 1px solid;"><div>bl</div></t><td style="width: 130px; padding: 8px; border: 1px solid;"><div>bla</div></td><td style="width: 130px; padding: 8px; border: 1px solid;"><div>bla</div></td></tr></tbody></table><div><br/></div></div><div><br/></div></en-note>]]></content><created>20201223T164010Z</created><updated>20201223T164023Z</updated><note-attributes><author>laurent22777@gmail.com</author><source>desktop.win</source><source-application>evernote.win32</source-application></note-attributes></note><note><title>plain note 2</title><content><![CDATA[<?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> | ||||
|  | ||||
| <en-note><div><br/></div></en-note>]]></content><created>20201223T164236Z</created><note-attributes><author>laurent22777@gmail.com</author><source>desktop.win</source><source-application>evernote.win32</source-application></note-attributes></note></en-export> | ||||
|   | ||||
| @@ -0,0 +1,11 @@ | ||||
| <table> | ||||
| 	<tr> | ||||
| 		<td>one</td> | ||||
| 		<td>two</td> | ||||
| 	</tr> | ||||
| 	<tr> | ||||
| 		<div></div> <!-- INVALID! --> | ||||
| 		<td>three</td> | ||||
| 		<td>four</td> | ||||
| 	</tr>	 | ||||
| </table> | ||||
| @@ -0,0 +1,4 @@ | ||||
| |     |     | | ||||
| | --- | --- | | ||||
| | one | two | | ||||
| | three | four | | ||||
| @@ -1246,6 +1246,14 @@ function drawTable(table: Section) { | ||||
| 		for (let tdIndex = 0; tdIndex < tr.lines.length; tdIndex++) { | ||||
| 			const td = tr.lines[tdIndex]; | ||||
|  | ||||
| 			if (typeof td === 'string') { | ||||
| 				// A <TR> tag should only have <TD> tags as direct children. | ||||
| 				// However certain Evernote notes can contain other random tags | ||||
| 				// such as empty DIVs. In that case we just skip the content. | ||||
| 				// See test "table_with_invalid_content.html". | ||||
| 				continue; | ||||
| 			} | ||||
|  | ||||
| 			if (flatRender) { | ||||
| 				line.push(BLOCK_OPEN); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user