Fix detection of "first row, not headline" (#63)
Improved handling of "first row, not headline". Works for tables with 1) neither thead nor tbody 2) tbody but no thead
This commit is contained in:
@@ -370,8 +370,13 @@ class MarkdownConverter(object):
|
|||||||
if is_headrow and not el.previous_sibling:
|
if is_headrow and not el.previous_sibling:
|
||||||
# first row and is headline: print headline underline
|
# first row and is headline: print headline underline
|
||||||
underline += '| ' + ' | '.join(['---'] * len(cells)) + ' |' + '\n'
|
underline += '| ' + ' | '.join(['---'] * len(cells)) + ' |' + '\n'
|
||||||
elif not el.previous_sibling and not el.parent.name != 'table':
|
elif (not el.previous_sibling
|
||||||
# first row, not headline, and the parent is sth. like tbody:
|
and (el.parent.name == 'table'
|
||||||
|
or (el.parent.name == 'tbody'
|
||||||
|
and not el.parent.previous_sibling))):
|
||||||
|
# first row, not headline, and:
|
||||||
|
# - the parent is table or
|
||||||
|
# - the parent is tbody at the beginning of a table.
|
||||||
# print empty headline above this row
|
# print empty headline above this row
|
||||||
overline += '| ' + ' | '.join([''] * len(cells)) + ' |' + '\n'
|
overline += '| ' + ' | '.join([''] * len(cells)) + ' |' + '\n'
|
||||||
overline += '| ' + ' | '.join(['---'] * len(cells)) + ' |' + '\n'
|
overline += '| ' + ' | '.join(['---'] * len(cells)) + ' |' + '\n'
|
||||||
|
|||||||
@@ -139,6 +139,26 @@ table_missing_head = """<table>
|
|||||||
</tr>
|
</tr>
|
||||||
</table>"""
|
</table>"""
|
||||||
|
|
||||||
|
table_body = """<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Firstname</td>
|
||||||
|
<td>Lastname</td>
|
||||||
|
<td>Age</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Jill</td>
|
||||||
|
<td>Smith</td>
|
||||||
|
<td>50</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Eve</td>
|
||||||
|
<td>Jackson</td>
|
||||||
|
<td>94</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>"""
|
||||||
|
|
||||||
|
|
||||||
def test_table():
|
def test_table():
|
||||||
assert md(table) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
assert md(table) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
@@ -148,3 +168,4 @@ def test_table():
|
|||||||
assert md(table_head_body) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
assert md(table_head_body) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
assert md(table_missing_text) == '\n\n| | Lastname | Age |\n| --- | --- | --- |\n| Jill | | 50 |\n| Eve | Jackson | 94 |\n\n'
|
assert md(table_missing_text) == '\n\n| | Lastname | Age |\n| --- | --- | --- |\n| Jill | | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
assert md(table_missing_head) == '\n\n| | | |\n| --- | --- | --- |\n| Firstname | Lastname | Age |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
assert md(table_missing_head) == '\n\n| | | |\n| --- | --- | --- |\n| Firstname | Lastname | Age |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
|
assert md(table_body) == '\n\n| | | |\n| --- | --- | --- |\n| Firstname | Lastname | Age |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
|
|||||||
Reference in New Issue
Block a user