add separator for tables' header

This commit is contained in:
Mathieu PATUREL
2017-01-26 10:57:12 +11:00
parent 6f18e8e4a2
commit eae91fa428

View File

@ -2,42 +2,6 @@
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
html = """
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>56</td>
<td>Matt</td>
</tr>
<tr>
<td>42</td>
<td>Colin</td>
</tr>
<tr>
<td>23</td>
<td>Lisa</td>
</tr>
<tr>
<td>45</td>
<td>John</td>
</tr>
<tr>
<td><code>&lt;table&gt;</code></td>
<td><code>&lt;e&gt;</code></td>
</tr>
</tbody>
</table>
<p><a href="https://upload.wikimedia.org/wikipedia/en/4/4c/Sublime_Text_Logo.png">Sublime Text Logo</a></p>
"""
def python_table(s_table): def python_table(s_table):
"""Transform BeautifulSoup table into list of list""" """Transform BeautifulSoup table into list of list"""
rows = [] rows = []
@ -55,6 +19,11 @@ def pre_table(s_table):
cols_width[i] = len(cell.text) cols_width[i] = len(cell.text)
text = '<pre class="table"><code>' text = '<pre class="table"><code>'
for i, row in enumerate(rows): for i, row in enumerate(rows):
if i == 1:
for j, cell in enumerate(row):
text += '|' + '-' * (cols_width[j] + 2)
text += '|\n'
for j, cell in enumerate(row): for j, cell in enumerate(row):
text += '| ' + ''.join(str(node) for node in cell.contents) \ text += '| ' + ''.join(str(node) for node in cell.contents) \
+ ' ' * (cols_width[j] - len(cell.text) + 1) + ' ' * (cols_width[j] - len(cell.text) + 1)