Support conversion of header rows in tables without th tag (#83)
* Fixed support for header row conversion for tables without th tag
This commit is contained in:
@@ -377,7 +377,11 @@ class MarkdownConverter(object):
|
|||||||
|
|
||||||
def convert_tr(self, el, text, convert_as_inline):
|
def convert_tr(self, el, text, convert_as_inline):
|
||||||
cells = el.find_all(['td', 'th'])
|
cells = el.find_all(['td', 'th'])
|
||||||
is_headrow = all([cell.name == 'th' for cell in cells])
|
is_headrow = (
|
||||||
|
all([cell.name == 'th' for cell in cells])
|
||||||
|
or (not el.previous_sibling and not el.parent.name == 'tbody')
|
||||||
|
or (not el.previous_sibling and el.parent.name == 'tbody' and len(el.parent.parent.find_all(['thead'])) < 1)
|
||||||
|
)
|
||||||
overline = ''
|
overline = ''
|
||||||
underline = ''
|
underline = ''
|
||||||
if is_headrow and not el.previous_sibling:
|
if is_headrow and not el.previous_sibling:
|
||||||
|
|||||||
@@ -119,6 +119,28 @@ table_head_body = """<table>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>"""
|
</table>"""
|
||||||
|
|
||||||
|
table_head_body_missing_head = """<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Firstname</td>
|
||||||
|
<td>Lastname</td>
|
||||||
|
<td>Age</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Jill</td>
|
||||||
|
<td>Smith</td>
|
||||||
|
<td>50</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Eve</td>
|
||||||
|
<td>Jackson</td>
|
||||||
|
<td>94</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>"""
|
||||||
|
|
||||||
table_missing_text = """<table>
|
table_missing_text = """<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -187,6 +209,7 @@ def test_table():
|
|||||||
assert md(table_with_linebreaks) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith Jackson | 50 |\n| Eve | Jackson Smith | 94 |\n\n'
|
assert md(table_with_linebreaks) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith Jackson | 50 |\n| Eve | Jackson Smith | 94 |\n\n'
|
||||||
assert md(table_with_header_column) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
assert md(table_with_header_column) == '\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_head_body) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
|
assert md(table_head_body_missing_head) == '\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| Firstname | Lastname | Age |\n| --- | --- | --- |\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'
|
assert md(table_body) == '\n\n| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |\n\n'
|
||||||
|
|||||||
Reference in New Issue
Block a user