Skip to content

Commit e3ddc78

Browse files
committed
Merge branch 'develop'
2 parents 2d0cd97 + 651d5f0 commit e3ddc78

File tree

3 files changed

+94
-1
lines changed

3 files changed

+94
-1
lines changed

markdownify/__init__.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,23 @@ def convert_img(self, el, text, convert_as_inline):
252252

253253
return '![%s](%s%s)' % (alt, src, title_part)
254254

255+
def convert_table(self, el, text, convert_as_inline):
256+
rows = el.find_all('tr')
257+
text_data = []
258+
for row in rows:
259+
headers = row.find_all('th')
260+
columns = row.find_all('td')
261+
if len(headers) > 0:
262+
headers = [head.text.strip() for head in headers]
263+
text_data.append('| ' + ' | '.join(headers) + ' |')
264+
text_data.append('| ' + ' | '.join(['---'] * len(headers)) + ' |')
265+
elif len(columns) > 0:
266+
columns = [colm.text.strip() for colm in columns]
267+
text_data.append('| ' + ' | '.join(columns) + ' |')
268+
else:
269+
continue
270+
return '\n'.join(text_data)
271+
255272

256273
def markdownify(html, **options):
257274
return MarkdownConverter(**options).convert(html)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
pkgmeta = {
1111
'__title__': 'markdownify',
1212
'__author__': 'Matthew Tretter',
13-
'__version__': '0.6.6',
13+
'__version__': '0.7.0',
1414
}
1515

1616

tests/test_conversions.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,76 @@
2222
</ul>""")
2323

2424

25+
table = re.sub(r'\s+', '', """
26+
<table>
27+
<tr>
28+
<th>Firstname</th>
29+
<th>Lastname</th>
30+
<th>Age</th>
31+
</tr>
32+
<tr>
33+
<td>Jill</td>
34+
<td>Smith</td>
35+
<td>50</td>
36+
</tr>
37+
<tr>
38+
<td>Eve</td>
39+
<td>Jackson</td>
40+
<td>94</td>
41+
</tr>
42+
</table>
43+
""")
44+
45+
46+
table_head_body = re.sub(r'\s+', '', """
47+
<table>
48+
<thead>
49+
<tr>
50+
<th>Firstname</th>
51+
<th>Lastname</th>
52+
<th>Age</th>
53+
</tr>
54+
</thead>
55+
<tbody>
56+
<tr>
57+
<td>Jill</td>
58+
<td>Smith</td>
59+
<td>50</td>
60+
</tr>
61+
<tr>
62+
<td>Eve</td>
63+
<td>Jackson</td>
64+
<td>94</td>
65+
</tr>
66+
</tbody>
67+
</table>
68+
""")
69+
70+
table_missing_text = re.sub(r'\s+', '', """
71+
<table>
72+
<thead>
73+
<tr>
74+
<th></th>
75+
<th>Lastname</th>
76+
<th>Age</th>
77+
</tr>
78+
</thead>
79+
<tbody>
80+
<tr>
81+
<td>Jill</td>
82+
<td></td>
83+
<td>50</td>
84+
</tr>
85+
<tr>
86+
<td>Eve</td>
87+
<td>Jackson</td>
88+
<td>94</td>
89+
</tr>
90+
</tbody>
91+
</table>
92+
""")
93+
94+
2595
def test_chomp():
2696
assert md(' <b></b> ') == ' '
2797
assert md(' <b> </b> ') == ' '
@@ -222,6 +292,12 @@ def test_div():
222292
assert md('Hello</div> World') == 'Hello World'
223293

224294

295+
def test_table():
296+
assert md(table) == '| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |'
297+
assert md(table_head_body) == '| Firstname | Lastname | Age |\n| --- | --- | --- |\n| Jill | Smith | 50 |\n| Eve | Jackson | 94 |'
298+
assert md(table_missing_text) == '| | Lastname | Age |\n| --- | --- | --- |\n| Jill | | 50 |\n| Eve | Jackson | 94 |'
299+
300+
225301
def test_strong_em_symbol():
226302
assert md('<strong>Hello</strong>', strong_em_symbol=UNDERSCORE) == '__Hello__'
227303
assert md('<b>Hello</b>', strong_em_symbol=UNDERSCORE) == '__Hello__'

0 commit comments

Comments
 (0)